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/README_python3.txt b/README_python3.txt index 56ee6af..c85cf3c 100644 --- a/README_python3.txt +++ b/README_python3.txt @@ -1,43 +1,48 @@ IDAPython comes in two flavors: -* IDAPython-for-Python2 -* IDAPython-for-Python3 +* IDAPython-for-Python2.7 +* IDAPython-for-Python3.x -# Switching between Python 2 and Python 3. +# Switching between IDAPython-for-Python2.7, and IDAPython-for-Python3.x. -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) +IDA ships with two versions of IDAPython: +* one that runs using the Python2.7 runtime +* one that runs using the Python3.x runtime -For example, to swith from Python 3 to Python 2 on Windows: +By default, IDA will load the one that runs using the Python3.x runtime. +In order to have IDA use IDAPython-on-Python2.7, the file +'use_python2' needs to be present in the 'python' subdirectory. -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 +That file will be looked for in the following places: +* IDA's install path: path/to/ida_install/python/use_python2 +* The 'IDAUSR' directory: + + ~/.idapro/python/use_python2 (on Linux/OSX) + + %APPDATA%\Hex-Rays\IDA Pro\python\use_python2 (on Windows) + + [...or any other directory if the environment variable $IDAUSR is set] +# Selecting which Python3.x install runtime to use -# 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 +The situation for IDAPython-for-Python2.7 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. +But when it comes to IDAPython-for-Python3.x, things gets more complex: +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. -If you selected IDAPython-for-Python3 at installation-time, -`idapyswitch` utility should already have been run, and selected -the most appropriate Python3 version. +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. -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..529ed9a 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-2020 Hex-Rays ALL RIGHTS RESERVED. """ import ida_ua diff --git a/Scripts/DrvsDispatch.py b/Scripts/DrvsDispatch.py index 47fcc09..7b72c51 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-2020 Hex-Rays ALL RIGHTS RESERVED. """ diff --git a/Scripts/ExchainDump.py b/Scripts/ExchainDump.py index 5356f3a..cf63ca6 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-2020 Hex-Rays ALL RIGHTS RESERVED. """ diff --git a/Scripts/FindInstructions.py b/Scripts/FindInstructions.py index 51dc175..8f78588 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-2020 Hex-Rays ALL RIGHTS RESERVED. """ from __future__ import print_function diff --git a/Scripts/SEHGraph.py b/Scripts/SEHGraph.py index f940b09..71d636f 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-2020 Hex-Rays ALL RIGHTS RESERVED. """ from __future__ import print_function diff --git a/Scripts/VaDump.py b/Scripts/VaDump.py index 124e13a..c8ad129 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-2020 Hex-Rays ALL RIGHTS RESERVED. """ diff --git a/Scripts/VirusTotal.py b/Scripts/VirusTotal.py index 2177a31..1bc8c5f 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-2020 # # Special thanks: # - VirusTotal team diff --git a/api_contents2.txt b/api_contents2.txt index 2bc759f..99da607 100644 --- a/api_contents2.txt +++ b/api_contents2.txt @@ -55,6 +55,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,6 +89,12 @@ '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_enum_bf_changed', 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', @@ -101,6 +108,7 @@ '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 +166,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', @@ -208,6 +218,8 @@ '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', @@ -285,17 +297,22 @@ '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_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 +326,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 +352,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', @@ -358,6 +376,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', @@ -373,6 +393,8 @@ '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', @@ -595,6 +617,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__', @@ -862,6 +890,7 @@ 'auto_is_ok', 'auto_make_code', 'auto_make_proc', + 'auto_make_step', 'auto_mark', 'auto_mark_range', 'auto_recreate_insn', @@ -873,12 +902,6 @@ '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', 'bit_bound_t_nbits_get', @@ -899,6 +922,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__', @@ -1262,6 +1309,7 @@ 'call_stack_t_size', 'call_stack_t_swap', 'call_stack_t_truncate', + 'callregs_t_by_slots', 'callregs_t_fpregs_get', 'callregs_t_fpregs_set', 'callregs_t_gpregs_get', @@ -1280,6 +1328,7 @@ 'can_define_item', 'can_exc_continue', 'cancel_exec_request', + 'cancel_thread_exec_requests', 'carg_t___eq__', 'carg_t___ge__', 'carg_t___gt__', @@ -1437,10 +1486,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 +1641,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 +1706,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 +1818,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', @@ -1929,6 +1985,7 @@ 'cloop_t_body_set', 'cloop_t_cleanup', 'close_chooser', + 'close_hexrays_waitbox', 'close_linput', 'close_pseudocode', 'close_widget', @@ -1950,6 +2007,7 @@ 'clr_lzero', 'clr_lzero0', 'clr_lzero1', + 'clr_module_data', 'clr_node_info', 'clr_noret', 'clr_notcode', @@ -1994,6 +2052,7 @@ 'codegen_t_mb_set', 'codegen_t_mba_get', 'codegen_t_mba_set', + 'codegen_t_microgen_completed', 'collect_stack_trace', 'compact_til', 'compare_tinfo', @@ -2022,6 +2081,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', @@ -2202,6 +2262,7 @@ '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_set', 'custom_viewer_jump', 'cwhile_t___eq__', 'cwhile_t___ge__', @@ -2385,6 +2446,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 +2454,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', @@ -2432,6 +2494,7 @@ 'delete_chain_t', 'delete_chain_visitor_t', 'delete_channel_redir_t', + 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', 'delete_cif_t', 'delete_cinsn_t', @@ -2459,8 +2522,22 @@ '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_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,6 +2561,7 @@ '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', @@ -2522,7 +2600,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', @@ -2544,10 +2621,15 @@ '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_lines_rendering_input_t', + 'delete_lines_rendering_output_t', 'delete_loader_input_t', 'delete_loader_t', 'delete_lochist_entry_t', @@ -2567,9 +2649,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', @@ -2652,13 +2735,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 +2752,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,6 +2765,8 @@ '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', @@ -2700,7 +2786,6 @@ 'delete_skipped_funcs_t', 'delete_snapshot_t', 'delete_sreg_range_t', - 'delete_stkpnt_array', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -2717,12 +2802,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 +2822,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', @@ -2755,6 +2844,7 @@ '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', @@ -2801,6 +2891,157 @@ '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_get_attrs', + 'dirspec_t_get_inode', + 'dirspec_t_get_name', + 'dirspec_t_get_size', + 'dirspec_t_nodename_get', + 'dirspec_t_nodename_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_findfirst', + 'dirtree_t_findnext', + 'dirtree_t_get_abspath', + 'dirtree_t_get_abspath__SWIG_0', + 'dirtree_t_get_abspath__SWIG_1', + 'dirtree_t_get_entry_attrs', + 'dirtree_t_get_entry_name', + 'dirtree_t_get_entry_size', + 'dirtree_t_get_nodename', + '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_nodename', + 'dirtree_t_unlink', + 'dirtree_t_unlink__SWIG_0', + 'dirtree_t_unlink__SWIG_1', 'disable_bblk_trace', 'disable_bpt', 'disable_bpt__SWIG_0', @@ -2859,18 +3100,23 @@ 'disown_UI_Hooks', 'disown_View_Hooks', 'disown_aloc_visitor_t', + 'disown_argtinfo_helper_t', 'disown_cfunc_parentee_t', 'disown_chain_visitor_t', - 'disown_codegen_t', + 'disown_choose_ioport_parser_t', 'disown_const_aloc_visitor_t', 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', + 'disown_dirspec_t', 'disown_enum_member_visitor_t', + 'disown_file_enumerator_t', 'disown_func_md_diff_handler_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', @@ -2885,6 +3131,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 +3144,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__', @@ -3091,6 +3368,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 +3516,7 @@ 'f_is_word', 'f_is_yword', 'file2base', + 'file_enumerator_t_visit_file', 'find_binary', 'find_bpt', 'find_byte', @@ -3259,6 +3538,7 @@ 'find_not_func', 'find_notype', 'find_plugin', + 'find_reg_access', 'find_regvar', 'find_regvar__SWIG_0', 'find_regvar__SWIG_1', @@ -3599,6 +3879,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 +3901,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', @@ -3753,6 +4031,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 +4062,7 @@ 'get_archive_path', 'get_arg_addrs', 'get_array_parameters', + 'get_ash', 'get_asm_inc_file', 'get_auto_display', 'get_auto_state', @@ -4034,6 +4314,7 @@ 'get_member_type', 'get_merror_desc', 'get_min_spd_ea', + 'get_module_data', 'get_module_info', 'get_mreg_name', 'get_name', @@ -4094,6 +4375,7 @@ 'get_output_cursor', 'get_output_selected_text', 'get_path', + 'get_ph', 'get_place_class', 'get_place_class_id', 'get_place_class_template', @@ -4164,6 +4446,7 @@ '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 +4455,7 @@ 'get_str_term2', 'get_str_type', 'get_str_type_code', + 'get_str_type_prefix_length', 'get_strlist_item', 'get_strlist_options', 'get_strlist_qty', @@ -4194,6 +4478,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 +4497,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', @@ -4315,6 +4601,7 @@ 'has_immd', 'has_insn_feature', 'has_lname', + 'has_mcode_seloff', 'has_name', 'has_regvar', 'has_ti', @@ -4405,9 +4692,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', @@ -4956,7 +5240,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', @@ -5105,7 +5388,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 +5403,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 +5416,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', @@ -5204,6 +5494,7 @@ 'invalidate_dbg_state', 'invalidate_dbgmem_config', 'invalidate_dbgmem_contents', + 'ioports_fallback_t_handle', 'is__bnot0', 'is__bnot1', 'is__invsign0', @@ -5462,6 +5753,9 @@ 'is_yword', 'is_zstroff', 'is_zword', + 'iterator___eq__', + 'iterator___ne__', + 'iterator___ref__', 'ivl_t___eq__', 'ivl_t___ge__', 'ivl_t___gt__', @@ -5517,13 +5811,78 @@ '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', + '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 +5917,6 @@ 'loader_t_flags_set', 'loader_t_version_get', 'loader_t_version_set', - 'lochist_entry_t___eq__', - 'lochist_entry_t___ne__', 'lochist_entry_t_acquire_place', 'lochist_entry_t_is_valid', 'lochist_entry_t_place', @@ -5824,6 +6181,7 @@ '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', @@ -5855,6 +6213,7 @@ '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', @@ -5877,6 +6236,7 @@ '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', @@ -5905,6 +6265,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', @@ -5942,195 +6305,200 @@ '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_combine_blocks', + 'mba_t_common_stkvars_stkargs', + 'mba_t_consumed_argregs_get', + 'mba_t_consumed_argregs_set', + 'mba_t_copy_block', + 'mba_t_deleted_pairs', + '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_over_chains', + 'mba_t_has_passregs', + 'mba_t_idaloc2vd', + 'mba_t_idb_node_get', + 'mba_t_idb_node_set', + '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_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_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', @@ -6741,6 +7109,7 @@ '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', @@ -6777,6 +7146,7 @@ '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', @@ -7059,6 +7429,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 +7443,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', @@ -7143,6 +7514,7 @@ 'new_chain_t__SWIG_2', 'new_chain_visitor_t', 'new_channel_redir_t', + 'new_choose_ioport_parser_t', 'new_chooser_item_attrs_t', 'new_cif_t', 'new_cif_t__SWIG_0', @@ -7167,7 +7539,6 @@ 'new_cloop_t__SWIG_1', 'new_cloop_t__SWIG_2', 'new_cnumber_t', - 'new_codegen_t', 'new_compiler_info_t', 'new_const_aloc_visitor_t', 'new_creturn_t', @@ -7189,12 +7560,30 @@ '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_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', @@ -7233,6 +7622,7 @@ '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', @@ -7295,7 +7685,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', @@ -7333,12 +7722,21 @@ '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_lines_rendering_input_t', + 'new_lines_rendering_output_t', 'new_loader_input_t', 'new_loader_t', 'new_lochist_entry_t', @@ -7368,6 +7766,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,7 +7818,6 @@ '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', @@ -7498,7 +7896,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,6 +7912,11 @@ '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_reginfovec_t', @@ -7529,7 +7931,6 @@ 'new_regval_t', 'new_regval_t__SWIG_0', 'new_regval_t__SWIG_1', - 'new_regvar_array', 'new_regvar_t', 'new_renderer_info_pos_t', 'new_renderer_info_t', @@ -7548,6 +7949,12 @@ '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', @@ -7577,7 +7984,6 @@ 'new_skipped_funcs_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', - 'new_stkpnt_array', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', @@ -7597,6 +8003,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 +8017,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 +8038,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', @@ -7660,6 +8076,7 @@ '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', @@ -7793,6 +8210,7 @@ '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', @@ -8013,6 +8431,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,6 +8457,10 @@ '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_set_bin_state', @@ -8079,6 +8503,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', @@ -8146,6 +8571,7 @@ 'place_t_beginning', 'place_t_clone', 'place_t_compare', + 'place_t_compare2', 'place_t_copyfrom', 'place_t_deserialize', 'place_t_ending', @@ -8282,6 +8708,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', @@ -8450,7 +8877,10 @@ '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', @@ -8469,6 +8899,7 @@ '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__', @@ -8482,6 +8913,7 @@ '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', @@ -8512,6 +8944,7 @@ 'qstrvec_t_set', 'qstrvec_t_size', 'qswap', + 'qthread_equal', 'quote_cmdline_arg', 'qvector_carg_t___eq__', 'qvector_carg_t___getitem__', @@ -8714,11 +9147,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 +9247,7 @@ 'rangevec_base_t_swap', 'rangevec_base_t_truncate', 'read_dbg_memory', + 'read_ioports2', 'read_range_selection', 'read_regargs', 'read_selection', @@ -8880,6 +9309,57 @@ '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', @@ -8961,6 +9441,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,11 +9520,6 @@ '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', @@ -9143,6 +9619,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 +9656,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 +9722,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', @@ -9478,6 +10035,7 @@ 'set_member_name', 'set_member_tinfo', 'set_member_type', + 'set_module_data', 'set_name', 'set_nav_colorizer', 'set_node_info', @@ -9536,6 +10094,7 @@ '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', @@ -9706,11 +10265,6 @@ 'step_into', 'step_over', 'step_until_ret', - 'stkpnt_array___getitem__', - 'stkpnt_array___len__', - 'stkpnt_array___setitem__', - 'stkpnt_array_count_get', - 'stkpnt_array_data_get', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -9774,11 +10328,11 @@ '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_has_union', 'struc_t_id_get', 'struc_t_id_set', @@ -9913,7 +10467,44 @@ '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 +10594,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', @@ -10319,8 +10942,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', @@ -10691,6 +11322,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', @@ -10832,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', @@ -11135,7 +11769,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_contents3.txt b/api_contents3.txt index c0a3857..ee25d47 100644 --- a/api_contents3.txt +++ b/api_contents3.txt @@ -55,6 +55,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,6 +89,12 @@ '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_enum_bf_changed', 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', @@ -101,6 +108,7 @@ '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 +166,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', @@ -208,6 +218,8 @@ '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', @@ -285,17 +297,22 @@ '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_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 +326,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 +352,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', @@ -358,6 +376,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', @@ -373,6 +393,8 @@ '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', @@ -595,6 +617,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__', @@ -862,6 +890,7 @@ 'auto_is_ok', 'auto_make_code', 'auto_make_proc', + 'auto_make_step', 'auto_mark', 'auto_mark_range', 'auto_recreate_insn', @@ -873,12 +902,6 @@ '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', 'bit_bound_t_nbits_get', @@ -899,6 +922,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__', @@ -1262,6 +1309,7 @@ 'call_stack_t_size', 'call_stack_t_swap', 'call_stack_t_truncate', + 'callregs_t_by_slots', 'callregs_t_fpregs_get', 'callregs_t_fpregs_set', 'callregs_t_gpregs_get', @@ -1280,6 +1328,7 @@ 'can_define_item', 'can_exc_continue', 'cancel_exec_request', + 'cancel_thread_exec_requests', 'carg_t___eq__', 'carg_t___ge__', 'carg_t___gt__', @@ -1437,10 +1486,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 +1641,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 +1706,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 +1818,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', @@ -1929,6 +1985,7 @@ 'cloop_t_body_set', 'cloop_t_cleanup', 'close_chooser', + 'close_hexrays_waitbox', 'close_linput', 'close_pseudocode', 'close_widget', @@ -1950,6 +2007,7 @@ 'clr_lzero', 'clr_lzero0', 'clr_lzero1', + 'clr_module_data', 'clr_node_info', 'clr_noret', 'clr_notcode', @@ -1994,6 +2052,7 @@ 'codegen_t_mb_set', 'codegen_t_mba_get', 'codegen_t_mba_set', + 'codegen_t_microgen_completed', 'collect_stack_trace', 'compact_til', 'compare_tinfo', @@ -2022,6 +2081,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', @@ -2202,6 +2262,7 @@ '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_set', 'custom_viewer_jump', 'cwhile_t___eq__', 'cwhile_t___ge__', @@ -2385,6 +2446,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 +2454,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', @@ -2432,6 +2494,7 @@ 'delete_chain_t', 'delete_chain_visitor_t', 'delete_channel_redir_t', + 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', 'delete_cif_t', 'delete_cinsn_t', @@ -2459,8 +2522,22 @@ '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_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,6 +2561,7 @@ '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', @@ -2522,7 +2600,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', @@ -2544,10 +2621,15 @@ '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_lines_rendering_input_t', + 'delete_lines_rendering_output_t', 'delete_loader_input_t', 'delete_loader_t', 'delete_lochist_entry_t', @@ -2567,9 +2649,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', @@ -2652,13 +2735,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 +2752,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,6 +2765,8 @@ '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', @@ -2700,7 +2786,6 @@ 'delete_skipped_funcs_t', 'delete_snapshot_t', 'delete_sreg_range_t', - 'delete_stkpnt_array', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -2717,12 +2802,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 +2822,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', @@ -2755,6 +2844,7 @@ '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', @@ -2801,6 +2891,157 @@ '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_get_attrs', + 'dirspec_t_get_inode', + 'dirspec_t_get_name', + 'dirspec_t_get_size', + 'dirspec_t_nodename_get', + 'dirspec_t_nodename_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_findfirst', + 'dirtree_t_findnext', + 'dirtree_t_get_abspath', + 'dirtree_t_get_abspath__SWIG_0', + 'dirtree_t_get_abspath__SWIG_1', + 'dirtree_t_get_entry_attrs', + 'dirtree_t_get_entry_name', + 'dirtree_t_get_entry_size', + 'dirtree_t_get_nodename', + '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_nodename', + 'dirtree_t_unlink', + 'dirtree_t_unlink__SWIG_0', + 'dirtree_t_unlink__SWIG_1', 'disable_bblk_trace', 'disable_bpt', 'disable_bpt__SWIG_0', @@ -2859,18 +3100,23 @@ 'disown_UI_Hooks', 'disown_View_Hooks', 'disown_aloc_visitor_t', + 'disown_argtinfo_helper_t', 'disown_cfunc_parentee_t', 'disown_chain_visitor_t', - 'disown_codegen_t', + 'disown_choose_ioport_parser_t', 'disown_const_aloc_visitor_t', 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', + 'disown_dirspec_t', 'disown_enum_member_visitor_t', + 'disown_file_enumerator_t', 'disown_func_md_diff_handler_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', @@ -2885,6 +3131,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 +3144,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__', @@ -3091,6 +3368,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 +3516,7 @@ 'f_is_word', 'f_is_yword', 'file2base', + 'file_enumerator_t_visit_file', 'find_binary', 'find_bpt', 'find_byte', @@ -3259,6 +3538,7 @@ 'find_not_func', 'find_notype', 'find_plugin', + 'find_reg_access', 'find_regvar', 'find_regvar__SWIG_0', 'find_regvar__SWIG_1', @@ -3599,6 +3879,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 +3901,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', @@ -3753,6 +4031,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 +4062,7 @@ 'get_archive_path', 'get_arg_addrs', 'get_array_parameters', + 'get_ash', 'get_asm_inc_file', 'get_auto_display', 'get_auto_state', @@ -4034,6 +4314,7 @@ 'get_member_type', 'get_merror_desc', 'get_min_spd_ea', + 'get_module_data', 'get_module_info', 'get_mreg_name', 'get_name', @@ -4094,6 +4375,7 @@ 'get_output_cursor', 'get_output_selected_text', 'get_path', + 'get_ph', 'get_place_class', 'get_place_class_id', 'get_place_class_template', @@ -4164,6 +4446,7 @@ '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 +4455,7 @@ 'get_str_term2', 'get_str_type', 'get_str_type_code', + 'get_str_type_prefix_length', 'get_strlist_item', 'get_strlist_options', 'get_strlist_qty', @@ -4194,6 +4478,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 +4497,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', @@ -4315,6 +4601,7 @@ 'has_immd', 'has_insn_feature', 'has_lname', + 'has_mcode_seloff', 'has_name', 'has_regvar', 'has_ti', @@ -4405,9 +4692,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', @@ -4956,7 +5240,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', @@ -5105,7 +5388,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 +5403,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 +5416,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', @@ -5204,6 +5494,7 @@ 'invalidate_dbg_state', 'invalidate_dbgmem_config', 'invalidate_dbgmem_contents', + 'ioports_fallback_t_handle', 'is__bnot0', 'is__bnot1', 'is__invsign0', @@ -5462,6 +5753,9 @@ 'is_yword', 'is_zstroff', 'is_zword', + 'iterator___eq__', + 'iterator___ne__', + 'iterator___ref__', 'ivl_t___eq__', 'ivl_t___ge__', 'ivl_t___gt__', @@ -5517,13 +5811,78 @@ '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', + '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 +5917,6 @@ 'loader_t_flags_set', 'loader_t_version_get', 'loader_t_version_set', - 'lochist_entry_t___eq__', - 'lochist_entry_t___ne__', 'lochist_entry_t_acquire_place', 'lochist_entry_t_is_valid', 'lochist_entry_t_place', @@ -5824,6 +6181,7 @@ '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', @@ -5855,6 +6213,7 @@ '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', @@ -5877,6 +6236,7 @@ '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', @@ -5905,6 +6265,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', @@ -5942,195 +6305,200 @@ '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_combine_blocks', + 'mba_t_common_stkvars_stkargs', + 'mba_t_consumed_argregs_get', + 'mba_t_consumed_argregs_set', + 'mba_t_copy_block', + 'mba_t_deleted_pairs', + '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_over_chains', + 'mba_t_has_passregs', + 'mba_t_idaloc2vd', + 'mba_t_idb_node_get', + 'mba_t_idb_node_set', + '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_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_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', @@ -6741,6 +7109,7 @@ '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', @@ -6777,6 +7146,7 @@ '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', @@ -7063,6 +7433,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 +7447,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', @@ -7147,6 +7518,7 @@ 'new_chain_t__SWIG_2', 'new_chain_visitor_t', 'new_channel_redir_t', + 'new_choose_ioport_parser_t', 'new_chooser_item_attrs_t', 'new_cif_t', 'new_cif_t__SWIG_0', @@ -7171,7 +7543,6 @@ 'new_cloop_t__SWIG_1', 'new_cloop_t__SWIG_2', 'new_cnumber_t', - 'new_codegen_t', 'new_compiler_info_t', 'new_const_aloc_visitor_t', 'new_creturn_t', @@ -7193,12 +7564,30 @@ '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_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', @@ -7237,6 +7626,7 @@ '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', @@ -7299,7 +7689,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', @@ -7337,12 +7726,21 @@ '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_lines_rendering_input_t', + 'new_lines_rendering_output_t', 'new_loader_input_t', 'new_loader_t', 'new_lochist_entry_t', @@ -7372,6 +7770,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', @@ -7423,7 +7822,6 @@ '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', @@ -7502,7 +7900,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,6 +7916,11 @@ '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_reginfovec_t', @@ -7533,7 +7935,6 @@ 'new_regval_t', 'new_regval_t__SWIG_0', 'new_regval_t__SWIG_1', - 'new_regvar_array', 'new_regvar_t', 'new_renderer_info_pos_t', 'new_renderer_info_t', @@ -7552,6 +7953,12 @@ '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', @@ -7581,7 +7988,6 @@ 'new_skipped_funcs_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', - 'new_stkpnt_array', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', @@ -7601,6 +8007,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 +8021,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 +8042,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', @@ -7664,6 +8080,7 @@ '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', @@ -7797,6 +8214,7 @@ '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', @@ -8017,6 +8435,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,6 +8461,10 @@ '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_set_bin_state', @@ -8083,6 +8507,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', @@ -8150,6 +8575,7 @@ 'place_t_beginning', 'place_t_clone', 'place_t_compare', + 'place_t_compare2', 'place_t_copyfrom', 'place_t_deserialize', 'place_t_ending', @@ -8286,6 +8712,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', @@ -8454,7 +8881,10 @@ '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', @@ -8473,6 +8903,7 @@ '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__', @@ -8486,6 +8917,7 @@ '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', @@ -8516,6 +8948,7 @@ 'qstrvec_t_set', 'qstrvec_t_size', 'qswap', + 'qthread_equal', 'quote_cmdline_arg', 'qvector_carg_t___eq__', 'qvector_carg_t___getitem__', @@ -8718,11 +9151,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 +9251,7 @@ 'rangevec_base_t_swap', 'rangevec_base_t_truncate', 'read_dbg_memory', + 'read_ioports2', 'read_range_selection', 'read_regargs', 'read_selection', @@ -8884,6 +9313,57 @@ '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', @@ -8965,6 +9445,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,11 +9524,6 @@ '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', @@ -9147,6 +9623,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 +9660,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 +9726,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', @@ -9482,6 +10039,7 @@ 'set_member_name', 'set_member_tinfo', 'set_member_type', + 'set_module_data', 'set_name', 'set_nav_colorizer', 'set_node_info', @@ -9540,6 +10098,7 @@ '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', @@ -9710,11 +10269,6 @@ 'step_into', 'step_over', 'step_until_ret', - 'stkpnt_array___getitem__', - 'stkpnt_array___len__', - 'stkpnt_array___setitem__', - 'stkpnt_array_count_get', - 'stkpnt_array_data_get', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -9778,11 +10332,11 @@ '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_has_union', 'struc_t_id_get', 'struc_t_id_set', @@ -9917,7 +10471,44 @@ '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 +10598,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', @@ -10323,8 +10946,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', @@ -10396,7 +11027,9 @@ 'uchar_array_frompointer', 'udc_filter_t_apply', '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', @@ -10695,6 +11328,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', @@ -10836,6 +11470,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', @@ -11139,7 +11775,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', @@ -11187,4 +11828,4 @@ 'xreflist_t_swap', 'xreflist_t_truncate', 'yword_flag', - 'zword_flag']} \ No newline at end of file + 'zword_flag']} diff --git a/build.py b/build.py index 333cddf..0884956 100644 --- a/build.py +++ b/build.py @@ -26,7 +26,7 @@ What follows, are example build commands python2 build.py \\ --with-hexrays \\ --swig-home C:/swigwin-2.0.12 \\ - --idc "c:/Program\ Files/IDA_7.0-171130-tests/idc/idc.idc" + --ida-install "c:/Program\ Files/IDA_7.0-171130-tests" ### Linux/OSX (assume SWiG is installed in /opt/swiglinux-2.0.12, and IDA is in /opt/my-ida-install) @@ -34,7 +34,7 @@ What follows, are example build commands python2 build.py \\ --with-hexrays \\ --swig-home /opt/swiglinux-2.0.12 \\ - --idc /opt/my-ida-install/idc/idc.idc + --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,7 +42,7 @@ 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") @@ -76,7 +76,7 @@ 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('\\', '/') for ea64 in [True, False]: if ea64: env["__EA64__"] = "1" diff --git a/examples/README.md b/examples/README.md new file mode 100644 index 0000000..b9a5c03 --- /dev/null +++ b/examples/README.md @@ -0,0 +1,32 @@ + +# 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. + diff --git a/examples/analysis/dump_func_info.py b/examples/analysis/dump_func_info.py new file mode 100644 index 0000000..c04e12f --- /dev/null +++ b/examples/analysis/dump_func_info.py @@ -0,0 +1,98 @@ +# get information about function(s) +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") + + +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..2fef928 100644 --- a/examples/core/actions.py +++ b/examples/core/actions.py @@ -1,9 +1,10 @@ from __future__ import print_function -import idaapi -class SayHi(idaapi.action_handler_t): +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): @@ -13,7 +14,7 @@ class SayHi(idaapi.action_handler_t): # 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 +26,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 +50,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 +65,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 +82,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 +93,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 +111,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..b2b5114 100644 --- a/examples/core/add_hotkey.py +++ b/examples/core/add_hotkey.py @@ -2,23 +2,25 @@ from __future__ import print_function #--------------------------------------------------------------------- # This script demonstrates the usage of hotkeys. # +# 'ida_kernwin.add_hotkey' offers a simpler alternative to +# 'ida_kernwin.register_action', but is much less flexible. # # 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_idc_hotkey.py similarity index 50% rename from examples/core/add_hotkey2.py rename to examples/core/add_idc_hotkey.py index b4062f2..34eff9d 100644 --- a/examples/core/add_hotkey2.py +++ b/examples/core/add_idc_hotkey.py @@ -1,25 +1,27 @@ 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. +# This script demonstrates the usage of hotkeys, using an alternative API. +# See also: +# add_hotkey.py +# actions.py # # Author: Gergely Erdelyi #--------------------------------------------------------------------- -import idaapi -def foo(): - print("Hotkey activated!") +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()"); }') -# 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') +ida_kernwin.add_idc_hotkey("2", 'key_2') # Press 2 to activate foo() # The hotkey can be removed with -# del_idc_hotkey('2') +# ida_kernwin.del_idc_hotkey('2') diff --git a/examples/core/create_structure_programmatically.py b/examples/core/create_structure_programmatically.py index 13f6e92..705cbde 100644 --- a/examples/core/create_structure_programmatically.py +++ b/examples/core/create_structure_programmatically.py @@ -7,44 +7,54 @@ from __future__ import print_function # # 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..c2db71e 100644 --- a/examples/core/custom_cli.py +++ b/examples/core/custom_cli.py @@ -1,77 +1,54 @@ 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 +59,7 @@ try: mycli.unregister() del mycli # remove previous handler - nw_handler(NW_TERMIDA) + nw_handler(ida_idaapi.NW_TERMIDA) except: pass finally: @@ -92,7 +69,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..ebfc4fd 100644 --- a/examples/core/custom_data_types_and_formats.py +++ b/examples/core/custom_data_types_and_formats.py @@ -3,7 +3,13 @@ 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 +17,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 +30,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 +42,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 +63,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 +71,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 +80,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 +122,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 +137,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 +162,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 +194,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 +203,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 +225,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..d3e8687 --- /dev/null +++ b/examples/core/dump_extra_comments.py @@ -0,0 +1,65 @@ +from __future__ import print_function +# ----------------------------------------------------------------------- +# This example illustrates how to use the 'get_extra_cmt' API, +# to retrieve anterior and posterior extra comments. +# +# After running this script, use Ctrl+Shift+Y when in the disassembly +# view to print previous extra comment, and Ctrl+Shift+Z to print next +# extra comments. +# +# (c) Hex-Rays + +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 + + +# ----------------------------------------------------------------------- +# 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) + +actions_variants = [ + ("previous", ida_lines.E_PREV, "Ctrl+Shift+Y"), + ("next", ida_lines.E_NEXT, "Ctrl+Shift+Z"), +] +for label, anchor, shortcut in actions_variants: + actname = dump_at_point_handler_t.compose_action_name(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" % label, + dump_at_point_handler_t(anchor), + 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..f2ceca9 100644 --- a/examples/core/dump_flowchart.py +++ b/examples/core/dump_flowchart.py @@ -1,44 +1,59 @@ +# -*- coding: utf-8 -*- + 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/extend_idc.py b/examples/core/extend_idc.py index 2799fff..bc6566f 100644 --- a/examples/core/extend_idc.py +++ b/examples/core/extend_idc.py @@ -3,19 +3,13 @@ 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..356d792 100644 --- a/examples/core/idapythonrc.py +++ b/examples/core/idapythonrc.py @@ -4,16 +4,18 @@ # Place this script to ~/.idapro/ or to # %APPDATA%\Hex-Rays\IDA Pro #--------------------------------------------------------------------- -import idaapi # 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..11603ff 100644 --- a/examples/core/install_user_defined_prefix.py +++ b/examples/core/install_user_defined_prefix.py @@ -1,41 +1,39 @@ 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_imports.py b/examples/core/list_imports.py index 73db7fd..e19e2e5 100644 --- a/examples/core/list_imports.py +++ b/examples/core/list_imports.py @@ -3,28 +3,27 @@ from __future__ import print_function # This is an example illustrating how to enumerate imports # (c) Hex-Rays # -import idaapi +import ida_nalt -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 - -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..3a71148 100644 --- a/examples/core/list_patched_bytes.py +++ b/examples/core/list_patched_bytes.py @@ -3,7 +3,8 @@ from __future__ import print_function # This is an example illustrating how to visit all patched bytes in Python # (c) Hex-Rays -import idaapi +import ida_bytes +import ida_idaapi # ------------------------------------------------------------------------- class patched_bytes_visitor(object): @@ -14,7 +15,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 +26,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 +35,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..b0376eb --- /dev/null +++ b/examples/core/list_problems.py @@ -0,0 +1,30 @@ + +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..67902a0 100644 --- a/examples/core/list_segment_functions.py +++ b/examples/core/list_segment_functions.py @@ -6,36 +6,41 @@ 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) + ref = ida_xref.get_first_cref_to(funcea) - while ref != BADADDR: - print(" called from %s(0x%x)" % (get_func_name(ref), ref)) - ref = get_next_cref_to(funcea, ref) + while ref != ida_idaapi.BADADDR: + print(" called from %s(0x%x)" % (ida_funcs.get_func_name(ref), ref)) + ref = ida_xref.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..72da004 100644 --- a/examples/core/list_segment_functions_using_idautils.py +++ b/examples/core/list_segment_functions_using_idautils.py @@ -6,23 +6,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..43fa999 --- /dev/null +++ b/examples/core/list_stkvar_xrefs.py @@ -0,0 +1,69 @@ +# +# This example demonstrates how to retrieve all xrefs to +# a stack variable within a function. +# Contrary to (in-memory) data & code xrefs, retrieving +# stack variables xrefs require a bit more work than just +# using ida_xref's first_to(), next_to() (or higher level +# utilities such as idautils.XrefsTo) +# +# Press Ctrl+Shift+F7 to invoke the action that will print xrefs +# to the variable name that's under the cursor. +# + +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: + fii = ida_funcs.func_item_iterator_t() + ok = fii.set(pfn) + while ok: + ea = fii.current() + 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)) + ok = fii.next_code() + 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/produce_c_file.py b/examples/core/produce_c_file.py new file mode 100644 index 0000000..a5fa6ad --- /dev/null +++ b/examples/core/produce_c_file.py @@ -0,0 +1,32 @@ +""" +This example demonstrates how one can automate IDA to perform auto-analysis +on a file and, as soon as it is finished, produce a .c file containing the +decompilation of all the functions that the file contains. + +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..035a671 --- /dev/null +++ b/examples/core/produce_lst_file.py @@ -0,0 +1,38 @@ +""" +This example demonstrates how one can automate IDA to perform auto-analysis +on a file and, as soon as it is finished, produce a .lst file containing 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..dfaf489 100644 --- a/examples/core/register_timer.py +++ b/examples/core/register_timer.py @@ -3,13 +3,13 @@ from __future__ import print_function # This is an example illustrating how to use timers # (c) Hex-Rays -import idaapi +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 +21,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..bd21536 100644 --- a/examples/core/trigger_actions_programmatically.py +++ b/examples/core/trigger_actions_programmatically.py @@ -1,12 +1,17 @@ from __future__ import print_function # ----------------------------------------------------------------------- -# This is an example illustrating how to use the execute_ui_requests() -# and the idautils.ProcessUiActions() +# This is an example illustrating how to use +# * 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. +# # (c) Hex-Rays # -import idaapi -import idautils -import idc + +import ida_kernwin # -------------------------------------------------------------------------- class __process_ui_actions_helper(object): @@ -34,9 +39,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 +60,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 +68,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..b37f668 --- /dev/null +++ b/examples/debugging/appcall/simple_appcall_linux.py @@ -0,0 +1,26 @@ +from __future__ import print_function +# +# This sample illustrates how to use appcall, with the +# 'simple_appcall_linux32' or 'simple_appcall_linux64' test +# programs (see subdirectories.) +# +# This example will run the test program and stop wherever +# the cursor currently is, and then perform an appcall to +# `ref4` and `ref8` +# +# 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 +# + +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..a4279ce --- /dev/null +++ b/examples/debugging/appcall/simple_appcall_win.py @@ -0,0 +1,42 @@ +from __future__ import print_function +# +# This sample illustrates how to use appcall, with the +# 'simple_appcall_win32.exe' or 'simple_appcall_win64.exe' test +# programs (see subdirectories.) +# +# This example will run the test program and stop wherever +# the cursor currently is, and then perform an appcall to +# `ref4` and `ref8` +# +# 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 +# + +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..27283ee 100644 --- a/examples/debugging/dbghooks/automatic_steps.py +++ b/examples/debugging/dbghooks/automatic_steps.py @@ -10,33 +10,41 @@ from __future__ import print_function # Maintained By: IDAPython Team # #--------------------------------------------------------------------- -from idaapi import * -class MyDbgHook(DBG_Hooks): +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 +53,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 +66,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 +105,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..53e51b4 --- /dev/null +++ b/examples/debugging/dbghooks/dbg_trace.py @@ -0,0 +1,110 @@ +""" +This script demonstrates using the low-level tracing hook (dbg_trace) +It can be run like: 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/registers_context_menu.py b/examples/debugging/misc/registers_context_menu.py new file mode 100644 index 0000000..3fccaf9 --- /dev/null +++ b/examples/debugging/misc/registers_context_menu.py @@ -0,0 +1,48 @@ + +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..0f8f9e6 100644 --- a/examples/debugging/show_debug_names.py +++ b/examples/debugging/show_debug_names.py @@ -1,15 +1,20 @@ 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/decompile_entry_points.py b/examples/hexrays/decompile_entry_points.py index 4324bc7..2fd5d51 100644 --- a/examples/hexrays/decompile_entry_points.py +++ b/examples/hexrays/decompile_entry_points.py @@ -17,8 +17,9 @@ import ida_entry ida_auto.auto_wait() ALL_DECOMPILERS = { ida_idp.PLFM_386 : ("hexrays", "hexx64"), - ida_idp.PLFM_ARM : ("hexarm", "hexarm64"), - ida_idp.PLFM_PPC : ("hexppc", "hexppc64"), + ida_idp.PLFM_ARM : ("hexarm", "hexarm64"), + ida_idp.PLFM_PPC : ("hexppc", "hexppc64"), + ida_idp.PLFM_MIPS: ("hexmips", "hexmips64"), } pair = ALL_DECOMPILERS.get(ida_idp.ph.id, None) if pair: diff --git a/examples/hexrays/vds1.py b/examples/hexrays/vds1.py index 19ab5c9..4097747 100644 --- a/examples/hexrays/vds1.py +++ b/examples/hexrays/vds1.py @@ -1,25 +1,29 @@ 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..2fbf306 100644 --- a/examples/hexrays/vds10.py +++ b/examples/hexrays/vds10.py @@ -1,6 +1,6 @@ # # Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com +# Copyright (c) 2007-2020 by Hex-Rays, support@hex-rays.com # ALL RIGHTS RESERVED. # # Sample plugin for Hex-Rays Decompiler. @@ -19,9 +19,10 @@ 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..0f3f5ea 100644 --- a/examples/hexrays/vds11.py +++ b/examples/hexrays/vds11.py @@ -1,6 +1,6 @@ # # Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com +# Copyright (c) 2007-2020 by Hex-Rays, support@hex-rays.com # ALL RIGHTS RESERVED. # # Sample plugin for Hex-Rays Decompiler. @@ -22,6 +22,7 @@ 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 +72,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 40ed73a..44f022d 100644 --- a/examples/hexrays/vds12.py +++ b/examples/hexrays/vds12.py @@ -1,9 +1,9 @@ # # Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com +# Copyright (c) 2007-2020 by Hex-Rays, support@hex-rays.com # ALL RIGHTS RESERVED. # -# Sample plugin for Hex-Rays Decompiler. +# Sample script for Hex-Rays Decompiler. # It shows list of direct references to a register from the current # instruction. # diff --git a/examples/hexrays/vds13.py b/examples/hexrays/vds13.py index 09cf178..ac14d44 100644 --- a/examples/hexrays/vds13.py +++ b/examples/hexrays/vds13.py @@ -1,9 +1,9 @@ # # Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com +# Copyright (c) 2007-2020 by Hex-Rays, support@hex-rays.com # ALL RIGHTS RESERVED. # -# Sample plugin for Hex-Rays Decompiler. +# Sample script 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. diff --git a/examples/hexrays/vds17.py b/examples/hexrays/vds17.py index b247744..60bc5b7 100644 --- a/examples/hexrays/vds17.py +++ b/examples/hexrays/vds17.py @@ -1,6 +1,6 @@ # # Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com +# Copyright (c) 2007-2020 by Hex-Rays, support@hex-rays.com # ALL RIGHTS RESERVED. # # Sample plugin for Hex-Rays Decompiler. @@ -15,6 +15,7 @@ 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..47a0d8a --- /dev/null +++ b/examples/hexrays/vds19.py @@ -0,0 +1,64 @@ +# +# Hex-Rays Decompiler project +# Copyright (c) 2007-2020 by Hex-Rays, support@hex-rays.com +# ALL RIGHTS RESERVED. +# +# Sample plugin for Hex-Rays Decompiler. +# It installs a custom microcode optimization rule: +# x | ~x => -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/vds3.py b/examples/hexrays/vds3.py index 835a6d7..0b4be26 100644 --- a/examples/hexrays/vds3.py +++ b/examples/hexrays/vds3.py @@ -7,8 +7,11 @@ This is a rewrite in Python of the vds3 example that comes with hexrays sdk. from __future__ import print_function import idautils -import idaapi -import idc + +import ida_kernwin +import ida_hexrays +import ida_netnode +import ida_idaapi import traceback @@ -16,20 +19,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 +40,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() @@ -83,12 +86,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 +107,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 @@ -149,17 +152,17 @@ 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: + if i.op == ida_hexrays.cit_if and i.ea in self.inverter.stored: self.inverter.invert_if(self.cfunc, i) except: traceback.print_exc() @@ -170,31 +173,43 @@ 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 +# 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() + return ida_idaapi.PLUGIN_KEEP # keep us in the memory + def term(self): + self.vds3_hooks.unhook() + def run(self, arg): + pass -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.') - +def PLUGIN_ENTRY(): + return my_plugin_t() diff --git a/examples/hexrays/vds4.py b/examples/hexrays/vds4.py index df261ed..153241c 100644 --- a/examples/hexrays/vds4.py +++ b/examples/hexrays/vds4.py @@ -6,15 +6,13 @@ This is a rewrite in Python of the vds4 example that comes with hexrays sdk. """ 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()) + cfunc = ida_hexrays.decompile(ida_kernwin.get_screen_ea()) if not cfunc: print('Please move the cursor into a function.') return @@ -23,31 +21,31 @@ def run(): 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), )) 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(): @@ -64,13 +62,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 +87,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..e735e06 100644 --- a/examples/hexrays/vds5.py +++ b/examples/hexrays/vds5.py @@ -1,11 +1,11 @@ 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 +296,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..6036f01 100644 --- a/examples/hexrays/vds6.py +++ b/examples/hexrays/vds6.py @@ -51,6 +51,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 +61,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 +89,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..7782f19 100644 --- a/examples/hexrays/vds7.py +++ b/examples/hexrays/vds7.py @@ -6,26 +6,16 @@ This is a rewrite in Python of the vds7 example that comes with hexrays sdk. """ 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 +24,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..c1b4c47 100644 --- a/examples/hexrays/vds8.py +++ b/examples/hexrays/vds8.py @@ -1,6 +1,6 @@ # Hex-Rays Decompiler project -# Copyright (c) 2007-2019 by Hex-Rays, support@hex-rays.com +# Copyright (c) 2007-2020 by Hex-Rays, support@hex-rays.com # ALL RIGHTS RESERVED. # # Sample script for Hex-Rays Decompiler usage of udc_filter_t diff --git a/examples/hexrays/vds_xrefs.py b/examples/hexrays/vds_xrefs.py index 28ecf01..d7f22a2 100644 --- a/examples/hexrays/vds_xrefs.py +++ b/examples/hexrays/vds_xrefs.py @@ -10,9 +10,14 @@ Show decompiler-style Xref when the X key is pressed in the Decompiler window. """ 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 +26,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 +64,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 +82,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 +115,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 +131,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.__deref__(), 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) @@ -142,10 +148,10 @@ class XrefsForm(idaapi.PluginForm): items = [] for ea in frm: try: - cfunc = idaapi.decompile(ea) + cfunc = ida_hexrays.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))) + self.items.append((ea, ida_funcs.get_func_name(cfunc.entry_ea) or "", self.get_decompiled_line(cfunc, ea))) except Exception as e: print('could not decompile: %s' % (str(e), )) @@ -160,13 +166,13 @@ 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) + cfunc = ida_hexrays.decompile(ea) except: print('Decompilation of %x failed' % (ea, )) continue @@ -175,21 +181,21 @@ class XrefsForm(idaapi.PluginForm): 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 +206,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 +215,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 +256,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 +272,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/operand_changed.py b/examples/idbhooks/operand_changed.py new file mode 100644 index 0000000..9b305be --- /dev/null +++ b/examples/idbhooks/operand_changed.py @@ -0,0 +1,66 @@ +""" +This example shows 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..f6c9433 --- /dev/null +++ b/examples/idbhooks/replay_prototypes_changes.py @@ -0,0 +1,78 @@ +""" +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..b7ef163 100644 --- a/examples/idphooks/ana_emu_out.py +++ b/examples/idphooks/ana_emu_out.py @@ -3,30 +3,34 @@ from __future__ import print_function # 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 +39,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 c20381c..248952c 100644 --- a/examples/idphooks/assemble.py +++ b/examples/idphooks/assemble.py @@ -1,5 +1,5 @@ from __future__ import print_function -import idaapi +import ida_idp import idautils """ @@ -14,7 +14,7 @@ import idautils """ #-------------------------------------------------------------------------- -class assemble_idp_hook_t(idaapi.IDP_Hooks): +class assemble_idp_hook_t(ida_idp.IDP_Hooks): def assemble(self, ea, cs, ip, use32, line): line = line.strip() if line == "xor eax, eax": diff --git a/examples/pyqt/inject_command.py b/examples/pyqt/inject_command.py new file mode 100644 index 0000000..391d12f --- /dev/null +++ b/examples/pyqt/inject_command.py @@ -0,0 +1,87 @@ +# +# This example illustrates how one can execute commands in the +# "Output window", from their own widgets. +# +# In order to do so, we have to be careful that: +# - 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 window" + 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/populate_pluginform_with_pyqt_widgets.py b/examples/pyqt/populate_pluginform_with_pyqt_widgets.py index e8fe27b..011e022 100644 --- a/examples/pyqt/populate_pluginform_with_pyqt_widgets.py +++ b/examples/pyqt/populate_pluginform_with_pyqt_widgets.py @@ -1,9 +1,7 @@ -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/lines_rendering.py b/examples/uihooks/lines_rendering.py new file mode 100644 index 0000000..2923629 --- /dev/null +++ b/examples/uihooks/lines_rendering.py @@ -0,0 +1,122 @@ +""" +This example 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..a8495a6 100644 --- a/examples/uihooks/log_misc_events.py +++ b/examples/uihooks/log_misc_events.py @@ -8,11 +8,11 @@ from __future__ import print_function # #--------------------------------------------------------------------- -import idaapi +import ida_kernwin -class MyUiHook(idaapi.UI_Hooks): +class MyUiHook(ida_kernwin.UI_Hooks): def __init__(self): - idaapi.UI_Hooks.__init__(self) + ida_kernwin.UI_Hooks.__init__(self) self.cmdname = "" def _log(self, msg): diff --git a/examples/widgets/graphs/custom_graph_with_actions.py b/examples/widgets/graphs/custom_graph_with_actions.py index 984ab92..0f3b010 100644 --- a/examples/widgets/graphs/custom_graph_with_actions.py +++ b/examples/widgets/graphs/custom_graph_with_actions.py @@ -10,6 +10,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): @@ -117,17 +120,17 @@ class MyGraph(ida_graph.GraphViewer): 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 idautils.FuncItems(f.start_ea) if (ida_ua.decode_insn(tmp, x) and ida_idp.is_call_insn(tmp))]: + for xref in idautils.XrefsFrom(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..5adf47a 100644 --- a/examples/widgets/graphs/sync_two_graphs.py +++ b/examples/widgets/graphs/sync_two_graphs.py @@ -1,6 +1,8 @@ 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 +18,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 +28,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 +79,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..b5de4fc 100644 --- a/examples/widgets/idaview/wrap_idaview.py +++ b/examples/widgets/idaview/wrap_idaview.py @@ -4,35 +4,41 @@ from __future__ import print_function # 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 +49,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..66d15fc 100644 --- a/examples/widgets/listings/custom_viewer.py +++ b/examples/widgets/listings/custom_viewer.py @@ -3,21 +3,20 @@ 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 +37,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 +46,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 +119,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 +129,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 +138,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 +147,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 +166,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/tabular_views/custom/choose_multi.py b/examples/widgets/tabular_views/custom/choose_multi.py index 0bd69c2..02e521c 100644 --- a/examples/widgets/tabular_views/custom/choose_multi.py +++ b/examples/widgets/tabular_views/custom/choose_multi.py @@ -22,6 +22,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/idapyswitch.cpp b/idapyswitch.cpp index d1de4a7..adeb39c 100644 --- a/idapyswitch.cpp +++ b/idapyswitch.cpp @@ -36,6 +36,12 @@ # undef minor #endif +#ifdef __NT__ +# define PY_MODULE_EXT ".pyd" +#else +# define PY_MODULE_EXT ".so" +#endif + //------------------------------------------------------------------------- struct user_args_t { @@ -217,17 +223,21 @@ struct pylib_entries_t return nullptr; } - pylib_entry_t &get_or_create_entry_for_version(const pylib_version_t &version) + pylib_entry_t &add_entry(const pylib_version_t &version, const qstrvec_t &paths) { - pylib_entry_t *e = get_entry_for_version(version); - if ( e == nullptr ) - { - pylib_entry_t ne(version); - entries.push_back(ne); - e = &entries.back(); - } + pylib_entry_t ne(version); + ne.paths = paths; + entries.push_back(ne); + pylib_entry_t *e = &entries.back(); return *e; } + + pylib_entry_t &add_entry(const pylib_version_t &version, const char *path) + { + qstrvec_t paths; + paths.push_back(path); + return add_entry(version, paths); + } }; #ifdef __UNIX__ @@ -238,8 +248,8 @@ static void set_preferred_pylib_version(pylib_entries_t *result); struct pyver_tool_t { static bool reverse_compare_entries( - const pylib_entry_t &e0, - const pylib_entry_t &e1) + const pylib_entry_t &e0, + const pylib_entry_t &e1) { if ( e0.preferred ) return true; @@ -252,15 +262,14 @@ struct pyver_tool_t } bool path_to_pylib_entry( - pylib_entry_t *out, - const char *path, - qstring *errbuf) const + 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 + void find_python_libs(pylib_entries_t *result) const { do_find_python_libs(result); @@ -280,10 +289,11 @@ struct pyver_tool_t } bool apply_version( - const pylib_entry_t &entry, - qstring *errbuf) const + const pylib_entry_t &entry, + qstring *errbuf) const { - return do_apply_version(entry, errbuf); + return do_pick_sip(entry, errbuf) + && do_apply_version(entry, errbuf); } private: @@ -298,12 +308,47 @@ private: // Python3 version and produce an entry with it. bool do_path_to_pylib_entry(pylib_entry_t *entry, const char *path, qstring *errbuf) const; + // Pick the right sip.so for the selected version, and + // copy it in the PyQt5 directory + bool do_pick_sip(const pylib_entry_t &entry, 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; }; +//------------------------------------------------------------------------- +bool pyver_tool_t::do_pick_sip( + const pylib_entry_t &entry, + qstring *errbuf) const +{ + const char *src_sip_subdir = entry.version.minor >= 8 ? "python_3.8" : "python_3.4"; + char src_sip_path[QMAXPATH]; + qmakepath(src_sip_path, sizeof(src_sip_path), idadir(""), + "python", "3", "PyQt5", src_sip_subdir, "sip" PY_MODULE_EXT, nullptr); + + if ( !qfileexist(src_sip_path) ) + { + errbuf->sprnt("File not found: \"%s\"", src_sip_path); + return false; + } + + char dst_sip_path[QMAXPATH]; + qmakepath(dst_sip_path, sizeof(dst_sip_path), idadir(""), + "python", "3", "PyQt5", "sip" PY_MODULE_EXT, nullptr); + out_verb("Copying \"%s\" to \"%s\"\n", src_sip_path, dst_sip_path); + const int code = qcopyfile(src_sip_path, dst_sip_path, /*overwrite=*/ true); + if ( code != 0 ) + { + errbuf->sprnt("Couldn't copy file \"%s\" to \"%s\": %s", + src_sip_path, dst_sip_path, qstrerror(-1)); + return false; + } + + return true; +} + //------------------------------------------------------------------------- // Accepts: // "3.7" @@ -473,7 +518,9 @@ static int for_all_plugin_files(file_visitor_t &dv, qstring *errbuf) if ( qfileexist(path) ) { found++; - qmakepath(path, sizeof(path), idadir(""), "plugins", is_ea64 ? "idapython64." SOSFX : "idapython." SOSFX, nullptr); + char fname[QMAXPATH]; + qsnprintf(fname, sizeof(fname), "idapython%d%s.%s", args.major_version, is_ea64 ? "_64" : "", SOSFX); + qmakepath(path, sizeof(path), idadir(""), "plugins", fname, nullptr); int ret = dv.visit_file(path); if ( ret != 0 ) return ret; @@ -543,7 +590,7 @@ static const cliopt_t _opts[] = }, #ifdef __UNIX__ - { 'k', "ignore-python-config", "Don't use python-config to find out the preferred version number", set_ignore_python_config, 0 }, + { 'k', "ignore-python-config", "Do not 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 }, @@ -576,7 +623,7 @@ static const char usage_epilog[] = "\n" " 2) The 'automatic' way\n" " ----------------------\n" - " > $ idapyswitch --auto\n" + " > $ idapyswitch --auto-apply\n" " will look on the filesystem for available Python3 installations,\n" " and automatically pick the one it deemed the most preferable.\n" "\n" diff --git a/idapyswitch_linux.cpp b/idapyswitch_linux.cpp index 73c6537..a937dd0 100644 --- a/idapyswitch_linux.cpp +++ b/idapyswitch_linux.cpp @@ -43,8 +43,7 @@ void pyver_tool_t::do_find_python_libs(pylib_entries_t *result) const { 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); + result->add_entry(version, path); } } } @@ -333,7 +332,7 @@ bool pyver_tool_t::do_apply_version( patcher_t(const qstring &_soname, qstring *_errbuf) : lsoname(_soname), lerrbuf(_errbuf) {} - virtual int visit_file(const char *path) + virtual int visit_file(const char *path) override { return patch_dt_needed(path, lsoname, lerrbuf) ? 0 : -1; } diff --git a/idapyswitch_mac.cpp b/idapyswitch_mac.cpp index 49d0d97..c05043e 100644 --- a/idapyswitch_mac.cpp +++ b/idapyswitch_mac.cpp @@ -82,7 +82,10 @@ static bool get_pylib_entry_for_macho( { 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) + virtual int visit_dylib( + const struct dylib_command *dl, + const char *begin, + const char *end) override { if ( dl->cmd == LC_ID_DYLIB ) { @@ -119,7 +122,7 @@ static int extract_pylib_bin(pylib_entries_t *result, const char *version_dir) { pylib_entries_t *result; pylib_finder_t(pylib_entries_t *_result) : result(_result) {} - virtual int visit_file(const char *bin) + virtual int visit_file(const char *bin) override { qstring errbuf; pylib_version_t dummy; @@ -150,7 +153,7 @@ static void extract_pylib_versions(pylib_entries_t *result, const char *framewor { pylib_entries_t *result; version_visitor_t(pylib_entries_t *_result) : result(_result) {} - virtual int visit_file(const char *version_dir) + virtual int visit_file(const char *version_dir) override { extract_pylib_bin(result, version_dir); return 0; @@ -182,7 +185,7 @@ void pyver_tool_t::do_find_python_libs(pylib_entries_t *result) const { pylib_entries_t *result; python_framework_finder_t(pylib_entries_t *_result) : result(_result) {} - virtual int visit_file(const char *framework) + virtual int visit_file(const char *framework) override { extract_pylib_versions(result, framework); return 0; @@ -277,7 +280,10 @@ static bool get_python_lc_info(python_lc_info_t *plc, const char *path, qstring { plc->off = sizeof(mach_header_64); } - virtual int visit_any_load_command(const struct load_command *lc, const char *begin, const char *end) + virtual int visit_any_load_command( + const struct load_command *lc, + const char *begin, + const char *end) override { if ( lc->cmd == LC_LOAD_DYLIB ) { @@ -433,7 +439,7 @@ bool pyver_tool_t::do_apply_version( 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) + virtual int visit_file(const char *path) override { return patch_python_dylib_cmd(path, entry, lerrbuf) ? 0 : -1; } diff --git a/idapyswitch_win.cpp b/idapyswitch_win.cpp index 75028e8..79f5603 100644 --- a/idapyswitch_win.cpp +++ b/idapyswitch_win.cpp @@ -401,8 +401,7 @@ static void enum_python_key(pylib_entries_t *result, const HKEY hkey, qstring *_ &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()); + pylib_entry_t &e = result->add_entry(version, paths); e.display_name = displayname; } else @@ -587,9 +586,9 @@ bool pyver_tool_t::do_apply_version( } // Now, let's handle sip.pyd - out_verb("Handling sip.pyd\n"); + out_verb("Handling sip" PY_MODULE_EXT "\n"); char path[QMAXPATH]; - qmakepath(path, sizeof(path), idadir(""), "python", "3", "PyQt5", "sip.pyd", nullptr); + qmakepath(path, sizeof(path), idadir(""), "python", "3", "PyQt5", "sip" PY_MODULE_EXT, nullptr); linput_t *linput = open_linput(path, /*remote=*/ false); if ( linput == nullptr ) { diff --git a/idapython.cpp b/idapython.cpp index f1f3507..2612554 100644 --- a/idapython.cpp +++ b/idapython.cpp @@ -39,12 +39,16 @@ GCC_DIAG_OFF(write-strings) # 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 +69,19 @@ 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; + return idapython_plugin_t::get_instance(); } -#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 get_plugin_instance()->config.autoimport_compat_ida695; } //------------------------------------------------------------------------- @@ -161,10 +100,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 @@ -344,11 +283,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), @@ -423,26 +362,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 +397,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; } //------------------------------------------------------------------------- @@ -508,29 +440,6 @@ 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() -{ - 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) { @@ -538,111 +447,6 @@ static const char *bomify(qstring *out) 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 +454,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); @@ -678,7 +482,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; @@ -698,112 +502,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("AUTOIMPORT_COMPAT_IDA695", idapython_plugin_config_t, autoimport_compat_ida695, 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) @@ -833,125 +540,6 @@ static bool return_python_result( 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: @@ -978,9 +566,882 @@ static bool parse_py_modname( return p != NULL; } +//------------------------------------------------------------------------- +static void wrap_in_function(qstring *out, const qstring &body, const char *name) +{ + qstrvec_t lines; + lines.push_back().sprnt("def %s():\n", name); + + qstring buf(body); + while ( !buf.empty() && qisspace(buf.last()) ) // dont copy trailing whitespace(s) + buf.remove_last(); + + char *ctx; + for ( char *p = qstrtok(buf.begin(), "\n", &ctx); + p != NULL; + p = qstrtok(NULL, "\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) ) + { + lines.insert(lines.begin(), p); + } + else + { + qstring &s = lines.push_back(); + s.append(" ", 4); + s.append(p); + } + } + out->qclear(); + for ( size_t i = 0; i < lines.size(); ++i ) + { + if ( i > 0 ) + out->append('\n'); + out->append(lines[i]); + } +} + +//------------------------------------------------------------------------- +struct python_highlighter_t : public ida_syntax_highlighter_t +{ + python_highlighter_t() : ida_syntax_highlighter_t() + { + open_strconst = '"'; + close_strconst = '"'; + open_chrconst = '\''; + close_chrconst = '\''; + escape_char = '\\'; + preprocessor_char = char(1); + literal_closer = '\0'; + text_color = HF_DEFAULT; + comment_color = HF_COMMENT; + string_color = HF_STRING; + preprocessor_color = HF_KEYWORD1; + style = HF_DEFAULT; + set_open_cmt("#"); + add_multi_line_comment("\"\"\"", "\"\"\""); + add_multi_line_comment("'''", "'''"); + add_keywords( + "and|as|assert|break|class|continue|def|" + "del|elif|else|except|exec|finally|" + "for|from|global|if|import|in|" + "is|lambda|not|or|pass|print|" + "raise|return|try|while|with|yield|" + "None|True|False",HF_KEYWORD1); + add_keywords("self", HF_KEYWORD2); + add_keywords("def", HF_KEYWORD3); + } +}; +static python_highlighter_t python_highlighter; + +extlang_t extlang_python = +{ + sizeof(extlang_t), + 0, // flags + 0, // refcnt + "Python", // name + "py", // filext + &python_highlighter, + 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, +}; + +//------------------------------------------------------------------------- +idaman void ida_export enable_extlang_python(bool enable) +{ + if ( enable ) + select_extlang(&extlang_python); + else + select_extlang(NULL); +} + +//------------------------------------------------------------------------- +static const cli_t cli_python = +{ + sizeof(cli_t), + 0, + "Python", + "Python - IDAPython plugin", + "Enter any Python expression", + idapython_plugin_t::cli_execute_line, + NULL, + NULL, + 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 != NULL ) + { + 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); + } + } + + // 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); +} + +//------------------------------------------------------------------------- +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(); + } + } +} + +//------------------------------------------------------------------------- +#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' ) + { + 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(); +} +#endif // PY3 + + +//------------------------------------------------------------------------- +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() +{ + if ( !initialized || Py_IsInitialized() == 0 ) + return; + + QASSERT(30616, instance == this); + + 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); + } + + instance = nullptr; +} + +//------------------------------------------------------------------------- +// 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 != NULL ) + { + *lastslash = 0; +# ifdef PY3 + utf8_wchar_t(&pyhomepath, utf8_pyhomepath); +# else + pyhomepath = utf8_pyhomepath; +# endif + 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; + } + } + + // Start the interpreter + Py_InitializeEx(0 /* Don't catch SIGPIPE, SIGXFZ, SIGXFSZ & SIGINT signals */); + + if ( !Py_IsInitialized() ) + { + warning("IDAPython: Py_InitializeEx() failed"); + 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, + config.remove_cwd_sys_path ? "True" : "False", + idadir(NULL), + sizeof(ea_t)*8, + config.autoimport_compat_idaapi ? "True" : "False", +#ifdef BC695 + config.autoimport_compat_ida695 ? "True" : "False" +#else + "False" +#endif + ); + + if ( extapi.PyRun_SimpleString_ptr(init_code.c_str()) != 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_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); + 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 == 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" ) + { + 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 == "AUTOIMPORT_COMPAT_IDA695" ) + { + qstring imp(sep); + if ( imp == "YES" ) + config.autoimport_compat_ida695 = true; + else if ( imp == "NO" ) + config.autoimport_compat_ida695 = false; + else + warning("Unknown 'AUTOIMPORT_COMPAT_IDA695' 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 ) + { + ref_t py_sys(PyW_TryImportModule("sys")); + if ( py_sys != NULL ) + 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_SimpleString_ptr(qbuf.c_str()); + } + + // 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_SimpleString_ptr("print_banner()"); + 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); +} + +//------------------------------------------------------------------------- +// 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 = 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 _extlang_call_func(&result, name, NULL, 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 != 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; +} + +//------------------------------------------------------------------------- +// 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 == 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; +} + +//------------------------------------------------------------------------ +// Executes a simple string +bool idapython_plugin_t::_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; +} + //------------------------------------------------------------------------- // Run callback for Python external language evaluator -static bool idaapi IDAPython_extlang_call_func( +bool idapython_plugin_t::_extlang_call_func( idc_value_t *result, const char *name, const idc_value_t args[], @@ -1052,207 +1513,83 @@ static bool idaapi IDAPython_extlang_call_func( } //------------------------------------------------------------------------- -static void wrap_in_function(qstring *out, const qstring &body, const char *name) +static bool is_instance_of(PyObject *obj, PyObject *mod, const char *cls_name) { - qstrvec_t lines; - lines.push_back().sprnt("def %s():\n", name); - - qstring buf(body); - while ( !buf.empty() && qisspace(buf.last()) ) // dont copy trailing whitespace(s) - buf.remove_last(); - - char *ctx; - for ( char *p = qstrtok(buf.begin(), "\n", &ctx); - p != NULL; - p = qstrtok(NULL, "\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) ) - { - lines.insert(lines.begin(), p); - } - else - { - qstring &s = lines.push_back(); - s.append(" ", 4); - s.append(p); - } - } - out->qclear(); - for ( size_t i = 0; i < lines.size(); ++i ) - { - if ( i > 0 ) - out->append('\n'); - out->append(lines[i]); - } + ref_t py_plugin_t_cls(PyW_TryGetAttrString(mod, cls_name)); + return py_plugin_t_cls != NULL && PyObject_IsInstance(obj, py_plugin_t_cls.o); } //------------------------------------------------------------------------- -// Compile callback for Python external language evaluator -static bool idaapi IDAPython_extlang_compile_expr( - const char *name, - ea_t /*current_ea*/, - const char *expr, +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; - PyObject *globals = get_module_globals(); - bool isfunc = false; - - qstring qstr(expr); - PyObject *code = Py_CompileString(bomify(&qstr), "", Py_eval_input); - if ( code == NULL ) + // Check for unsupported usage of call_method. + // Mainly a method call requires an object and a method. + if ( method_name == 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); + *errbuf = "call_method does not support this operation"; 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; + // Behave like run() + else if ( idc_obj == NULL ) { 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); + return _extlang_call_func(result, method_name, args, nargs, errbuf); } - 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; + // Holds conversion status of input object + int obj_cvt; 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 ) + // Convert input object + ref_t py_obj; + obj_cvt = idcvar_to_pyvar(*idc_obj, &py_obj); + if ( obj_cvt < CIP_OK ) { - errbuf->sprnt("Could not import module '%s'!", modname); + *errbuf = "Failed to convert input object to Python value"; 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 ) + ref_t py_method(PyW_TryGetAttrString(py_obj.o, method_name)); + if ( py_method == NULL || !PyCallable_Check(py_method.o) ) { -#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 + errbuf->sprnt("The input object does not have a callable method called '%s'", method_name); + break; } - else + + // 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") ) { - // Get the class reference - ref_t py_cls(PyW_TryGetAttrString(py_mod.o, clsname)); - if ( py_cls == NULL ) + ref_t py_ida_idaapi_mod(PyW_TryImportModule(S_IDA_IDAAPI_MODNAME)); + if ( py_ida_idaapi_mod != NULL ) { - errbuf->sprnt("Could not find class type '%s'!", clsname); - break; + 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; + } } - - // 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); + 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() ? NULL : pargs[0].o)); + ok = return_python_result(result, py_res, errbuf); + } } while ( false ); return ok; @@ -1260,7 +1597,7 @@ static bool idaapi IDAPython_extlang_create_object( //------------------------------------------------------------------------- // Returns the attribute value of a given object from the global scope -static bool idaapi IDAPython_extlang_get_attr( +bool idapython_plugin_t::_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 @@ -1372,7 +1709,7 @@ static bool idaapi IDAPython_extlang_get_attr( //------------------------------------------------------------------------- // Returns the attribute value of a given object from the global scope //lint -e{818} -static bool idaapi IDAPython_extlang_set_attr( +bool idapython_plugin_t::_extlang_set_attr( idc_value_t *obj, // in: object name (may be NULL) const char *attr, // in: attribute name const idc_value_t &value) @@ -1421,173 +1758,9 @@ static bool idaapi IDAPython_extlang_set_attr( 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 -{ - python_highlighter_t() : ida_syntax_highlighter_t() - { - open_strconst = '"'; - close_strconst = '"'; - open_chrconst = '\''; - close_chrconst = '\''; - escape_char = '\\'; - preprocessor_char = char(1); - literal_closer = '\0'; - text_color = HF_DEFAULT; - comment_color = HF_COMMENT; - string_color = HF_STRING; - preprocessor_color = HF_KEYWORD1; - style = HF_DEFAULT; - set_open_cmt("#"); - add_multi_line_comment("\"\"\"", "\"\"\""); - add_multi_line_comment("'''", "'''"); - add_keywords( - "and|as|assert|break|class|continue|def|" - "del|elif|else|except|exec|finally|" - "for|from|global|if|import|in|" - "is|lambda|not|or|pass|print|" - "raise|return|try|while|with|yield|" - "None|True|False",HF_KEYWORD1); - add_keywords("self", HF_KEYWORD2); - add_keywords("def", HF_KEYWORD3); - } -}; -static python_highlighter_t python_highlighter; - -extlang_t extlang_python = -{ - sizeof(extlang_t), - 0, // flags - 0, // refcnt - "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, -}; - -//------------------------------------------------------------------------- -idaman void ida_export enable_extlang_python(bool enable) -{ - if ( enable ) - select_extlang(&extlang_python); - else - select_extlang(NULL); -} - //------------------------------------------------------------------------- // 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; @@ -1630,14 +1803,75 @@ 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(Py_CompileString(bomify(&qstr), "", Py_eval_input)); + if ( py_code == NULL || PyErr_Occurred() ) + { + // Not an expression? + PyErr_Clear(); + + // Run as a string + extapi.PyRun_SimpleString_ptr(line); + } + 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(idapython_plugin_t::get_instance()->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"); + } + } + } } 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, @@ -1661,273 +1895,156 @@ 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 == NULL ) { - 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(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_executor_func.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; } //------------------------------------------------------------------------- -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*/ NULL, &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], NULL); + 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")); + borref_t path(PySys_GetObject((char *) "path")); if ( path == nullptr || !PySequence_Check(path.o) ) return; @@ -1963,296 +2080,123 @@ static void prepare_sys_path() } //------------------------------------------------------------------------- -// 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, MAXSTR, idapython_dir.c_str(), S_INIT_PY, NULL); -#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 == NULL ) 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; - } + contents.resize(fpsz); + qfread(fp, contents.begin(), fpsz); - // 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); + newref_t code(Py_CompileString(contents.c_str(), path, Py_file_input)); + if ( code == NULL ) return false; - } - // Init pywraps and notify_when - if ( !init_pywraps() ) - { - warning("IDAPython: init_pywraps() failed!"); - remove_extlang(&extlang_python); - return false; - } + newref_t result(PyEval_EvalCode( + PYCODE_OBJECT_TO_PYEVAL_ARG(code.o), + __main__globals, + __main__globals)); + return result != NULL && !PyErr_Occurred(); +} -#ifdef ENABLE_PYTHON_PROFILING - extapi.PyEval_SetTrace_ptr(tracefunc, NULL); -#endif - - // 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 == NULL || modname[0] == '\0' ) + modname = S_MAIN; + PyObject *module = PyImport_AddModule(modname); + return module == NULL ? NULL : 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 != 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; } -#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 NULL; } //------------------------------------------------------------------------- // 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 +2205,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 NULL. + nullptr, // invoke plugin S_IDAPYTHON, // long comment about the plugin // it could appear in the status line // or as a hint 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..c54abd5 100644 --- a/idapython.script +++ b/idapython.script @@ -29,6 +29,7 @@ global: 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 +44,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..2e149e8 100644 --- a/idapython_implib.def +++ b/idapython_implib.def @@ -22,6 +22,7 @@ EXPORTS 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 @@ -65,4 +66,3 @@ EXPORTS idapython_hide_wait_box register_module_lifecycle_callbacks prepare_programmatic_plugin_load - pycim_lookup_info DATA 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..fb3b39c 100644 --- a/makefile +++ b/makefile @@ -1,8 +1,8 @@ -ifeq ($(PYTHON_VERSION_MAJOR),3) - OBJDIR=obj/$(SYSDIR)/3 -else +ifeq ($(PYTHON_VERSION_MAJOR),2) OBJDIR=obj/$(SYSDIR)/2 +else + OBJDIR=obj/$(SYSDIR)/3 endif include ../../allmake.mak @@ -24,8 +24,8 @@ 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 +all: configs modules pyfiles deployed_modules idapython_modules api_contents pydoc_injections pyqt sip bins # public_tree test_idc docs ifeq ($(OUT_OF_TREE_BUILD),) BINS += $(IDAPYSWITCH) @@ -59,18 +59,14 @@ endif # 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 +88,20 @@ CONFIGS += idapython.cfg #---------------------------------------------------------------------- # the 'modules' target is in $(IDA)module.mak -MODULE = $(call module_dll,idapython) +ifeq ($(PYTHON_VERSION_MAJOR),3) + ifdef __EA64__ + MODULE_NAME_STEM:=idapython3_ + else + MODULE_NAME_STEM:=idapython3 + endif +else + ifdef __EA64__ + MODULE_NAME_STEM:=idapython2_ + else + MODULE_NAME_STEM:=idapython2 + endif +endif +MODULE = $(call module_dll,$(MODULE_NAME_STEM)) MODULES += $(MODULE) #---------------------------------------------------------------------- @@ -110,9 +119,9 @@ else IDAPYSWITCH_MODULE_DEP := $(IDAPYSWITCH) ifndef __CODE_CHECKER__ # this is for idapython[64].so - POSTACTION=$(IDAPYSWITCH) --split-debug-and-expand-libpython3-dtneeded-room $(MODULE) + POSTACTION=$(Q)$(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 + POSTACTION_IDA_X_SO=$(Q)$(IDAPYSWITCH) --split-debug-and-expand-libpython3-dtneeded-room endif endif endif @@ -121,18 +130,16 @@ 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) @@ -173,7 +180,6 @@ ifdef DO_IDAMAKE_SIMPLIFY endif #---------------------------------------------------------------------- -IDA_CMD=TVHEADLESS=1 $(R)idat$(SUFF64) ST_SWIG=$(F)swig ST_PYW=$(F)pywraps ST_WRAP=$(F)wrappers @@ -197,51 +203,73 @@ endif ifeq ($(OUT_OF_TREE_BUILD),) TEST_IDC=test_idc IDC_BC695_IDC_SOURCE?=$(DEPLOY_PYDIR)/../../idc/idc.idc + IDAT_PATH?=$(R)/idat +else + IDC_BC695_IDC_SOURCE?=$(IDA_INSTALL)/idc/idc.idc + IDAT_PATH?=$(IDA_INSTALL)/idat endif +IDAT_CMD=TVHEADLESS=1 $(IDAT_PATH)$(SUFF64) + +ifneq ($(OUT_OF_TREE_BUILD),) + # envvar HAS_HEXRAYS must have been set by build.py if needed +else + ifeq ($(BUILD_VD),1) + HAS_HEXRAYS=1 # force hexrays bindings + endif +endif # 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)/%) + SDK_SOURCES+=$(IDA_INCLUDE)/dirtree.hpp 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 +else + USE_PYTHON2_ENVVAR := USE_PYTHON2=1 endif 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 + ifdef BC695 + CMP_API = 1 + endif + # Warning: adding an empty HEXRAYS_MODNAME will lead to idaapy trying to load + # a module called ida_. + MODULES_NAMES += $(HEXRAYS_MODNAME) +endif + +ifeq ($(CMP_API),) + 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 @@ -264,6 +292,10 @@ MODULES_NAMES += lines MODULES_NAMES += loader ifdef TESTABLE_BUILD MODULES_NAMES += lumina + # when dirtree.hpp makes it into the SDK, add all relevant scripts + # that are currently in tests/ui/, into plugins/idapython/examples/. + # Grep for 'dirtree' and 'dirspec' to spot those. + MODULES_NAMES += dirtree endif MODULES_NAMES += moves MODULES_NAMES += nalt @@ -286,9 +318,9 @@ MODULES_NAMES += xref 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) @@ -331,6 +363,79 @@ pyfiles: $(DEPLOY_IDAUTILS_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 + + ifeq ($(PYTHON_VERSION_MAJOR),3) + # 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 + 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) + else + # sip for Python 2.7 + DEST_SIP27_DIR:=$(DEST_PYQT_DIR) + DEST_SIP27_PYDLL:=$(DEST_SIP27_DIR)/$(SIP_PYDLL_FNAME) + DEST_SIP27_PYI:=$(DEST_SIP27_DIR)/$(SIP_PYI_FNAME) + $(DEST_SIP27_PYDLL): $(wildcard $(SIP27_TREE)/lib/python*/PyQt5/$(SIP_PYDLL_FNAME)) | $(DEST_SIP27_DIR) + $(Q)$(CP) $? $@ + $(DEST_SIP27_PYI): $(wildcard $(SIP27_TREE)/lib/python*/PyQt5/$(SIP_PYI_FNAME)) | $(DEST_SIP27_DIR) + $(Q)$(CP) $? $@ + DEST_SIP += $(DEST_SIP27_PYDLL) $(DEST_SIP27_PYI) + endif + + # And pick the right sip.so now (Python3 only; for Python2, we already put it in the right place) + ifeq ($(PYTHON_VERSION_MAJOR),3) + 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 + $(DEST_PYQT_DIR)/$(SIP_PYDLL_FNAME): $(DEST_INSTALL_SIP_PYDLL) + $(Q)$(CP) $? $@ + $(Q)chmod +w $@ + DEST_SIP += $(DEST_PYQT_DIR)/$(SIP_PYDLL_FNAME) + endif +endif + +pyqt: $(DEST_PYQT) +sip: $(DEST_SIP) + GENHOOKS=tools/genhooks/ $(DEPLOY_INIT_PY): python/init.py @@ -399,14 +504,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,64 +540,58 @@ $(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 \ + -x $(ST_PARSED_HEADERS) \ -q "ui_notification_t::" \ - -r void -n 0 -m hookgenUI \ - -R $(GENHOOKS)recipe_uihooks.py \ - -d "ui_dbg_,ui_obsolete" -D "ui:" -s "ui_" + -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 += $(DEF_TYPE_TABLE) CC_DEFS += $(WITH_HEXRAYS_DEF) @@ -499,10 +601,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__ @@ -565,10 +665,14 @@ SWIG_IFACE_funcs=range SWIG_IFACE_gdl=range SWIG_IFACE_hexrays=pro typeinf xref SWIG_IFACE_idd=range +SWIG_IFACE_idp=bitrange SWIG_IFACE_segment=range SWIG_IFACE_segregs=range SWIG_IFACE_typeinf=idp SWIG_IFACE_tryblks=range +# ifdef TESTABLE_BUILD +# SWIG_IFACE_kernwin=dirtree +# endif MODULE_LIFECYCLE_hexrays=--lifecycle-aware MODULE_LIFECYCLE_bytes=--lifecycle-aware @@ -624,7 +728,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) \ @@ -671,7 +774,7 @@ $(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 @@ -685,14 +788,14 @@ 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) $(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) +$(DEPLOY_LIBDIR)/_ida_%$(PYDLL_EXT): $(F)_ida_%$(PYDLL_EXT) $(Q)$(CP) $< $@ ifdef __LINUX__ ifndef __CODE_CHECKER__ @@ -715,7 +818,7 @@ api_contents: $(ST_API_CONTENTS) $(ST_API_CONTENTS): $(ALL_ST_WRAP_CPP) $(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 + 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)) ***" && \ @@ -733,22 +836,24 @@ endif ST_PYDOC_INJECTIONS = $(F)$(PYDOC_INJECTIONS) .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 +ifdef __EA64__ + DUMPDOC_IS_64:=True +else + DUMPDOC_IS_64:=False +endif + +PYDOC_INJECTIONS_IDAT_CMD=$(USE_PYTHON2_ENVVAR) $(IDAT_CMD) $(BATCH_SWITCH) "-OIDAPython:AUTOIMPORT_COMPAT_IDA695=NO" -S"$< $@ $(ST_WRAP) $(DUMPDOC_IS_64)" -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 $@ -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) +ifeq ($(or $(__CODE_CHECKER__),$(NO_CMP_API),$(__ASAN__)),) + $(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 +else $(Q)touch $@ - endif endif #---------------------------------------------------------------------- @@ -759,7 +864,7 @@ tools/docs/hrdoc.cfg: tools/docs/hrdoc.cfg.in # the html files are produced in docs\hr-html directory docs: tools/docs/hrdoc.py tools/docs/hrdoc.cfg tools/docs/hrdoc.css ifndef __NT__ - TVHEADLESS=1 $(R)idat -Stools/docs/hrdoc.py -t > /dev/null + $(IDAT_CMD) -Stools/docs/hrdoc.py -t > /dev/null else $(R)ida -Stools/docs/hrdoc.py -t endif @@ -781,7 +886,7 @@ $(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 @@ -801,18 +906,18 @@ ifeq ($(OUT_OF_TREE_BUILD),) (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)) #---------------------------------------------------------------------- @@ -830,19 +935,18 @@ $(MODULE): LDFLAGS += $(PYTHON_LDFLAGS) $(PYTHON_LDFLAGS_RPATH_MAIN) # 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)exehdr.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)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 \ @@ -901,9 +1005,10 @@ $(F)idapyswitch$(O): $(I)auto.hpp $(I)bitrange.hpp $(I)bytes.hpp \ ../../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/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 \ 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 5f036e9..b493c28 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 index 07d958a..162ac42 100644 --- a/pydoc_injections2.txt +++ b/pydoc_injections2.txt @@ -1,41 +1,34 @@ 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) + auto_apply_tail(tail_ea, parent_ea) + @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) + auto_apply_type(caller, callee) + @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) + auto_cancel(ea1, ea2) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) Help on class auto_display_t in module ida_auto: @@ -79,154 +72,129 @@ class auto_display_t(__builtin__.object) 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) + auto_get(type, lowEA, highEA) -> 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) - 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) + auto_make_code(ea) + @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. + auto_make_proc(ea) + @param ea (C++: ea_t) + +Help on function auto_make_step in module ida_auto: + +auto_make_step(*args) + Analyze one address in the specified range and return true. - @param ea (C++: ea_t) + auto_make_step(ea1, ea2) -> bool + @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) - auto_mark(ea, type) - - Put single address into a queue. Queues keep addresses sorted. - - @param ea (C++: ea_t) - @param type (C++: atype_t) + auto_mark(ea, type) + @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) + auto_mark_range(start, end, type) + @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 + auto_recreate_insn(ea) -> int + @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) + auto_unmark(start, end, type) + @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) + auto_wait_range(ea1, ea2) -> ssize_t + @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 + enable_auto(enable) -> bool + @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 *) + get_auto_display(auto_display) -> bool + @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). @@ -234,150 +202,266 @@ get_auto_state(*args) 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 + peek_auto_queue(low_ea, type) -> ea_t + @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) + plan_and_wait(ea1, ea2, final_pass=True) -> int + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + @param final_pass (C++: bool) + @retval: 1 - ok + @retval: 0 - Ctrl-Break was pressed Help on function plan_ea in module ida_auto: plan_ea(*args) - plan_ea(ea) - - Plan to perform reanalysis. - - @param ea (C++: ea_t) + plan_ea(ea) + @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) + plan_range(sEA, eEA) + @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) + reanalyze_callers(ea, noret) + @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) + revert_ida_decisions(ea1, ea2) + @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 + set_auto_state(new_state) -> atype_t + @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 + set_ida_state(st) -> idastate_t + @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) + show_addr(ea) + @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) + show_auto(ea, type=AU_NONE) + @param ea: linear address being analyzed (C++: ea_t) + @param type: autoanalysis type (see Autoanalysis queues ) (C++: + atype_t) + +Help on class bitrange_t in module ida_bitrange: + +class bitrange_t(__builtin__.object) + | Proxy of C++ bitrange_t class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: bitrange_t const & + | + | __ge__(self, *args) + | __ge__(self, r) -> bool + | r: bitrange_t const & + | + | __gt__(self, *args) + | __gt__(self, r) -> bool + | r: bitrange_t const & + | + | __init__(self, *args) + | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t + | bit_ofs: uint16 + | size_in_bits: uint16 + | + | __le__(self, *args) + | __le__(self, r) -> bool + | r: bitrange_t const & + | + | __lt__(self, *args) + | __lt__(self, r) -> bool + | r: bitrange_t const & + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: bitrange_t const & + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) + | __str__(self) -> qstring + | + | apply_mask(self, *args) + | Apply mask to a bitrange + | + | apply_mask(self, subrange) -> bool + | @param subrange: 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] (C++: const bitrange_t &) + | @return: success + | + | bitoff(self, *args) + | Get offset of 1st bit. + | + | bitsize(self, *args) + | Get size of the value in bits. + | + | bytesize(self, *args) + | Size of the value in bytes. + | + | compare(self, *args) + | compare(self, r) -> int + | r: bitrange_t const & + | + | create_union(self, *args) + | Create union of 2 ranges including the hole between them. + | + | create_union(self, r) + | @param r (C++: const bitrange_t &) + | + | empty(self, *args) + | Is the bitrange empty? + | + | extract(self, *args) + | extract(self, src, is_mf) -> bool + | src: void const * + | is_mf: bool + | + | has_common(self, *args) + | Does have common bits with another bitrange? + | + | has_common(self, r) -> bool + | @param r (C++: const bitrange_t &) + | + | init(self, *args) + | Initialize offset and size to given values. + | + | init(self, bit_ofs, size_in_bits) + | @param bit_ofs (C++: uint16) + | @param size_in_bits (C++: uint16) + | + | inject(self, *args) + | inject(self, dst, src, is_mf) -> bool + | dst: void * + | src: bytevec_t const & + | is_mf: bool + | + | intersect(self, *args) + | Intersect two ranges. + | + | intersect(self, r) + | @param r (C++: const bitrange_t &) + | + | mask64(self, *args) + | Convert to mask of 64 bits. + | + | reset(self, *args) + | Make the bitrange empty. + | + | shift_down(self, *args) + | Shift range down (left) + | + | shift_down(self, cnt) + | @param cnt (C++: uint) + | + | shift_up(self, *args) + | Shift range up (right) + | + | shift_up(self, cnt) + | @param cnt (C++: uint) + | + | sub(self, *args) + | Subtract a bitrange. + | + | sub(self, r) -> bool + | @param r (C++: const bitrange_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_bitrange_t(self) Help on function __walk_types_and_formats in module ida_bytes: @@ -387,132 +471,113 @@ __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) + add_byte(ea, value) + @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) + add_dword(ea, value) + @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 + add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + @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 + add_mapping(_from, to, size) -> bool + @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) + add_qword(ea, value) + @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) + add_word(ea, value) + @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 + append_cmt(ea, str, rptble) -> bool + @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) + attach_custom_data_format(dtid, dfid) -> bool + @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) + @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) - bin_flag() -> flags_t - - Get number flag of the base, regardless of current processor - better to use 'num_flag()' @@ -520,87 +585,75 @@ Help on function bin_search in module ida_bytes: bin_search(*args) bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + start_ea: ea_t + end_ea: ea_t + image: bytevec_t const & + imask: bytevec_t const & + step: int + flags: int 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) + bytesize(ea) -> int + @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) + calc_def_align(ea, mina, maxa) -> int + @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 + @param f (C++: flags_t) + @param force (C++: bool) 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) + calc_max_align(endea) -> int + @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'. + calc_max_item_end(ea, how=15) -> ea_t + @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) + calc_min_align(length) -> int + @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 @@ -608,353 +661,279 @@ can_define_item(*args) 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 + can_define_item(ea, length, flags) -> bool + @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 + change_storage_type(start_ea, end_ea, stt) -> error_t + @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. + chunk_size(ea) -> asize_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) - 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. + chunk_start(ea) -> ea_t + @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) + clr_lzero(ea, n) -> bool + @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 + clr_op_type(ea, n) -> bool + @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' + '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) + create_16bit_data(ea, length) -> bool + @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) + create_32bit_data(ea, length) -> bool + @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) + create_align(ea, length, alignment) -> bool + @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) + create_byte(ea, length, force=False) -> 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) - 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) + create_custdata(ea, length, dtid, fid, force=False) -> 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) - 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 + create_data(ea, dataflag, size, tid) -> bool + @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) + create_double(ea, length, force=False) -> 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) - create_dword(ea, length, force=False) -> bool - - Convert to dword. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + create_dword(ea, length, force=False) -> 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) - create_float(ea, length, force=False) -> bool - - Convert to float. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + create_float(ea, length, force=False) -> 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) - 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) + create_oword(ea, length, force=False) -> 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) - 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) + create_packed_real(ea, length, force=False) -> 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) - create_qword(ea, length, force=False) -> bool - - Convert to quadword. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + create_qword(ea, length, force=False) -> 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) - 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 + create_strlit(start, len, strtype) -> bool + @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) + create_struct(ea, length, tid, force=False) -> 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) - create_tbyte(ea, length, force=False) -> bool - - Convert to tbyte. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + create_tbyte(ea, length, force=False) -> 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) - create_word(ea, length, force=False) -> bool - - Convert to word. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + create_word(ea, length, force=False) -> 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) - 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) + create_yword(ea, length, force=False) -> 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) - 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) + create_zword(ea, length, force=False) -> 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) - 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: @@ -968,6 +947,13 @@ class data_format_t(__builtin__.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 + | self: PyObject * + | name: char const * + | value_size: asize_t + | menu_name: char const * + | props: int + | hotkey: char const * + | text_width: int32 | | __repr__ = _swig_repr(self) | @@ -975,7 +961,7 @@ class data_format_t(__builtin__.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) - | is_present_in_menus(self) -> bool + | Should this format be shown in UI menus | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1027,6 +1013,13 @@ class data_type_t(__builtin__.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 + | self: PyObject * + | name: char const * + | value_size: asize_t + | menu_name: char const * + | hotkey: char const * + | asm_keyword: char const * + | props: int | | __repr__ = _swig_repr(self) | @@ -1034,7 +1027,7 @@ class data_type_t(__builtin__.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) - | is_present_in_menus(self) -> bool + | Should this type be shown in UI menus | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1078,558 +1071,470 @@ class data_type_t(__builtin__.object) 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 + del_hidden_range(ea) -> bool + @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 + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + @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) + del_mapping(ea) + @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) + del_value(ea) + @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) + detach_custom_data_format(dtid, dfid) -> bool + @param dtid: data type id to detach data format from (C++: int) + @param dfid: data format id to detach (C++: int) + @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) - 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 + disable_flags(start_ea, end_ea) -> error_t + @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 + enable_flags(start_ea, end_ea, stt) -> error_t + @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) + equal_bytes(ea, image, mask, len, sense_case) -> bool + @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 == nullptr, 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) + @retval: 1 - equal + @retval: 0 - not equal Help on function f_has_cmt in module ida_bytes: f_has_cmt(*args) f_has_cmt(f, arg2) -> bool + @param f (C++: flags_t) + arg2: void * 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) + f_has_dummy_name(f, arg2) -> bool + @param f (C++: flags_t) + arg2: void * Help on function f_has_extra_cmts in module ida_bytes: f_has_extra_cmts(*args) f_has_extra_cmts(f, arg2) -> bool + @param f (C++: flags_t) + arg2: void * 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) + f_has_name(f, arg2) -> bool + @param f (C++: flags_t) + arg2: void * 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) + f_has_user_name(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_has_xref(f, arg2) -> bool + @param f (C++: flags_t) + arg2: void * 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) + f_is_align(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_byte(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_code(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_custom(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_data(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_double(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_dword(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_float(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_head(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_not_tail(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_oword(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_pack_real(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_qword(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_strlit(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_struct(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_tail(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_tbyte(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_word(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_yword(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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 + find_byte(sEA, size, value, bin_search_flags) -> ea_t + @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 + find_byter(sEA, size, value, bin_search_flags) -> ea_t + @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 + find_custom_data_format(name) -> int + @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 + find_custom_data_type(name) -> int + @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 + free_chunk(bottom, size, step) -> ea_t + @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() + get_16bit(ea) -> uint32 + @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); + get_32bit(ea) -> uint32 + @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); + get_64bit(ea) -> uint64 + @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 * + @param ea (C++: ea_t *) + @param v (C++: uint32 *) + @param nbit (C++: int *) 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) + get_byte(ea) -> uchar + @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 @@ -1639,8 +1544,6 @@ 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 @@ -1651,380 +1554,305 @@ get_bytes_and_mask(*args) 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 + get_cmt(ea, rptble) -> str + @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 + get_custom_data_format(dfid) -> data_format_t + @param dfid: data format id (C++: int) + @return: data format definition or nullptr 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 + get_custom_data_formats(out, dtid) -> int + @param out: buffer for the output. may be nullptr (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 + get_custom_data_type(dtid) -> data_type_t + @param dtid: data type id (C++: int) + @return: data type definition or nullptr 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 + get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int + @param out: buffer for the output. may be nullptr (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... + get_data_elsize(ea, F, ti=None) -> asize_t + @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 nullptr). If + specified as nullptr, 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 + get_data_value(v, ea, size) -> bool + @param v: pointer to the result. may be nullptr (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) + get_db_byte(ea) -> uchar + @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) + get_dword(ea) -> uint32 + @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 + get_enum_id(ea, n) -> enum_t + @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) + get_flags(ea) -> flags_t + @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) + get_flags_by_size(size) -> flags_t + @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) + get_flags_ex(ea, how) -> flags_t + @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 + get_forced_operand(ea, n) -> str + @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 *) + get_full_data_elsize(ea, F, ti=None) -> asize_t + @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 + get_full_flags(ea) -> flags_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) - 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) + get_hidden_range(ea) -> hidden_range_t + @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) + get_hidden_range_num(ea) -> int + @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) + get_item_end(ea) -> ea_t + @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) + get_item_flag(_from, n, ea, appzero) -> flags_t + @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) + get_item_head(ea) -> ea_t + @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) + get_item_size(ea) -> asize_t + @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 + get_manual_insn(ea) -> str + @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 + get_mapping(n) -> bool + @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) + 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. + 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) + @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 + get_next_hidden_range(ea) -> hidden_range_t + @param ea: any address in the program (C++: ea_t) + @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) - 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: @@ -2038,148 +1866,124 @@ get_octet(*args) '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 *) + get_octet(ea, v, nbit) -> PyObject * + @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 + get_opinfo(buf, ea, n, flags) -> opinfo_t + @param buf: buffer to receive the result. may not be nullptr (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: nullptr 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) + get_optype_flags0(F) -> flags_t + @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) + get_optype_flags1(F) -> flags_t + @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) + get_original_byte(ea) -> uint64 + @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) + get_original_dword(ea) -> uint64 + @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) + get_original_qword(ea) -> uint64 + @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) + get_original_word(ea) -> uint64 + @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 + get_predef_insn_cmt(ins) -> str + @param ins: current instruction information - an ida_ua.insn_t, or an + address (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 + get_prev_hidden_range(ea) -> hidden_range_t + @param ea: any address in the program (C++: ea_t) + @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) - 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) + get_qword(ea) -> uint64 + @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 + get_radix(F, n) -> int + @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. @@ -2199,214 +2003,167 @@ get_strlit_contents(*args) 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 + get_stroff_path(path, delta, ea, n) -> int + @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) + get_wide_byte(ea) -> uint64 + @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) + get_wide_dword(ea) -> uint64 + @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) + get_wide_word(ea) -> uint64 + @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) + get_word(ea) -> ushort + @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 + get_zero_ranges(zranges, range) -> bool + @param zranges: pointer to the return value. cannot be nullptr (C++: + rangeset_t *) + @param range: the range of addresses to verify. can be nullptr - 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) + getn_hidden_range(n) -> hidden_range_t + @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) + has_any_name(F) -> bool + @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) + has_auto_name(F) -> bool + @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) + has_cmt(F) -> bool + @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) + has_dummy_name(F) -> bool + @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) + has_extra_cmts(F) -> bool + @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) + has_immd(F) -> bool + @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) + has_name(F) -> bool + @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) + has_user_name(F) -> bool + @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) + has_value(F) -> bool + @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) + has_xref(F) -> bool + @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()' @@ -2459,43 +2216,66 @@ class hidden_range_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -2519,830 +2299,631 @@ class hidden_range_t(ida_range.range_t) Help on function is_align in module ida_bytes: is_align(*args) + 'FF_ALIGN' + is_align(F) -> bool - - - 'FF_ALIGN' - - - @param F (C++: flags_t) + @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 + @param dtid (C++: int) + @param dfid (C++: int) 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) + is_bnot(ea, F, n) -> bool + @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) + 'FF_BYTE' + is_byte(F) -> bool - - - 'FF_BYTE' - - - @param F (C++: flags_t) + @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) + is_char(F, n) -> bool + @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) + is_char0(F) -> bool + @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) + is_char1(F) -> bool + @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) + is_code(F) -> bool + @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) + is_custfmt(F, n) -> bool + @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) + is_custfmt0(F) -> bool + @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) + is_custfmt1(F) -> bool + @param F (C++: flags_t) Help on function is_custom in module ida_bytes: is_custom(*args) + 'FF_CUSTOM' + is_custom(F) -> bool - - - 'FF_CUSTOM' - - - @param F (C++: flags_t) + @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) + is_data(F) -> bool + @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) + is_defarg(F, n) -> bool + @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) + is_defarg0(F) -> bool + @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) + is_defarg1(F) -> bool + @param F (C++: flags_t) Help on function is_double in module ida_bytes: is_double(*args) + 'FF_DOUBLE' + is_double(F) -> bool - - - 'FF_DOUBLE' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_dword in module ida_bytes: is_dword(*args) + 'FF_DWORD' + is_dword(F) -> bool - - - 'FF_DWORD' - - - @param F (C++: flags_t) + @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) + is_enum(F, n) -> bool + @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) + is_enum0(F) -> bool + @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) + is_enum1(F) -> bool + @param F (C++: flags_t) Help on function is_float in module ida_bytes: is_float(*args) + 'FF_FLOAT' + is_float(F) -> bool - - - 'FF_FLOAT' - - - @param F (C++: flags_t) + @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) + is_float0(F) -> bool + @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) + is_float1(F) -> bool + @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) + is_flow(F) -> bool + @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) + is_fltnum(F, n) -> bool + @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) + is_forced_operand(ea, n) -> bool + @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) + is_func(F) -> bool + @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) + is_head(F) -> bool + @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) + is_invsign(ea, F, n) -> bool + @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) + is_loaded(ea) -> bool + @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) + is_lzero(ea, n) -> bool + @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) + is_manual(F, n) -> bool + @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) + is_manual_insn(ea) -> bool + @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) + is_mapped(ea) -> bool + @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) + is_not_tail(F) -> bool + @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) + is_numop(F, n) -> bool + @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) + is_numop0(F) -> bool + @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) + is_numop1(F) -> bool + @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) + is_off(F, n) -> bool + @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) + is_off0(F) -> bool + @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) + is_off1(F) -> bool + @param F (C++: flags_t) Help on function is_oword in module ida_bytes: is_oword(*args) + 'FF_OWORD' + is_oword(F) -> bool - - - 'FF_OWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_pack_real in module ida_bytes: is_pack_real(*args) + 'FF_PACKREAL' + is_pack_real(F) -> bool - - - 'FF_PACKREAL' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_qword in module ida_bytes: is_qword(*args) + 'FF_QWORD' + is_qword(F) -> bool - - - 'FF_QWORD' - - - @param F (C++: flags_t) + @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) + is_same_data_type(F1, F2) -> bool + @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) + is_seg(F, n) -> bool + @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) + is_seg0(F) -> bool + @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) + is_seg1(F) -> bool + @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) + is_stkvar(F, n) -> bool + @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) + is_stkvar0(F) -> bool + @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) + is_stkvar1(F) -> bool + @param F (C++: flags_t) Help on function is_strlit in module ida_bytes: is_strlit(*args) + 'FF_STRLIT' + is_strlit(F) -> bool - - - 'FF_STRLIT' - - - @param F (C++: flags_t) + @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) + is_stroff(F, n) -> bool + @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) + is_stroff0(F) -> bool + @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) + is_stroff1(F) -> bool + @param F (C++: flags_t) Help on function is_struct in module ida_bytes: is_struct(*args) + 'FF_STRUCT' + is_struct(F) -> bool - - - 'FF_STRUCT' - - - @param F (C++: flags_t) + @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) + is_suspop(ea, F, n) -> bool + @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) + is_tail(F) -> bool + @param F (C++: flags_t) Help on function is_tbyte in module ida_bytes: is_tbyte(*args) + 'FF_TBYTE' + is_tbyte(F) -> bool - - - 'FF_TBYTE' - - - @param F (C++: flags_t) + @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) + is_unknown(F) -> bool + @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 *) + is_varsize_item(ea, F, ti=None, itemsize=None) -> int + @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 nullptr). If + specified as nullptr, will be automatically retrieved from + the database (C++: const opinfo_t *) + @param itemsize: if not nullptr and the item is varsize, itemsize will + contain the calculated item size (for struct types, + the minimal size is returned) (C++: asize_t *) + @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) + 'FF_WORD' + is_word(F) -> bool - - - 'FF_WORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_yword in module ida_bytes: is_yword(*args) + 'FF_YWORD' + is_yword(F) -> bool - - - 'FF_YWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_zword in module ida_bytes: is_zword(*args) + 'FF_ZWORD' + is_zword(F) -> bool - - - 'FF_ZWORD' - - - @param F (C++: flags_t) + @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) + leading_zero_important(ea, n) -> bool + @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 + nbits(ea) -> int + @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. + next_addr(ea) -> ea_t + @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. + next_chunk(ea) -> ea_t + @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. + next_head(ea, maxea) -> ea_t + @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) + next_inited(ea, maxea) -> 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) - next_not_tail(ea) -> ea_t - - Get address of next non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + next_not_tail(ea) -> ea_t + @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. @@ -3354,213 +2935,168 @@ next_that(*args) 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) + next_unknown(ea, maxea) -> ea_t + @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) + op_adds_xrefs(F, n) -> bool + @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) + op_bin(ea, n) -> bool + @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) + op_chr(ea, n) -> bool + @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) + op_custfmt(ea, n, fid) -> bool + @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) + op_dec(ea, n) -> bool + @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 + op_enum(ea, n, id, serial) -> bool + @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) + op_flt(ea, n) -> bool + @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) + op_hex(ea, n) -> bool + @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) + op_num(ea, n) -> bool + @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) + op_oct(ea, n) -> bool + @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 + op_seg(ea, n) -> bool + @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 + op_stkvar(ea, n) -> bool + @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 + op_stroff(insn, n, path, path_len, delta) -> bool + @param insn: the instruction - an ida_ua.insn_t, or an address (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> @@ -3575,191 +3111,175 @@ op_stroff(*args) 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) + patch_byte(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 *) + patch_bytes(ea, buf) + @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) + patch_dword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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) + patch_qword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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) + patch_word(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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. + prev_addr(ea) -> ea_t + @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. + prev_chunk(ea) -> ea_t + @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. + prev_head(ea, minea) -> ea_t + @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) + prev_inited(ea, minea) -> 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) - prev_not_tail(ea) -> ea_t - - Get address of previous non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + prev_not_tail(ea) -> ea_t + @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 . + prev_that(ea, minea, callable) -> ea_t + @param ea: start searching from this address - 1. (C++: ea_t) + @param minea: included in the search range. (C++: ea_t) + callable: PyObject * + @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) + prev_unknown(ea, minea) -> ea_t + @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 + print_strlit_type(strtype, flags=0) -> PyObject * + @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 @@ -3767,79 +3287,67 @@ put_byte(*args) '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 + put_byte(ea, x) -> bool + @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 *) + put_bytes(ea, buf) + @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) + put_dword(ea, x) + @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) + put_qword(ea, x) + @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) + put_word(ea, x) + @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: @@ -3850,8 +3358,6 @@ 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: @@ -3885,190 +3391,153 @@ register_data_types_and_formats(formats) Help on function revert_byte in module ida_bytes: revert_byte(*args) - revert_byte(ea) -> bool - - Revert patched byte - @param ea (C++: ea_t) + revert_byte(ea) -> bool + @param ea (C++: ea_t) + @retval: true - byte was patched before and reverted now 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 + set_cmt(ea, comm, rptble) -> bool + @param ea: linear address (C++: ea_t) + @param comm: comment string nullptr: 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 + set_forced_operand(ea, n, op) -> bool + @param ea: linear address (C++: ea_t) + @param n: number of operand (0, 1, 2) (C++: int) + @param op: text of operand nullptr: 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) + set_immd(ea) -> bool + @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) + set_lzero(ea, n) -> bool + @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 *) + set_manual_insn(ea, manual_insn) + @param ea: linear address of the instruction or data item (C++: ea_t) + @param manual_insn: "" - delete manual string. nullptr - 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) + set_op_type(ea, type, n) -> bool + @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) + @retval: 1 - ok + @retval: 0 - failed (applied to a tail byte) 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 + set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool + @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) + toggle_bnot(ea, n) -> bool + @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 + @param ea (C++: ea_t) + @param n (C++: int) 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) + toggle_sign(ea, n) -> bool + @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 @@ -4077,8 +3546,6 @@ 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 @@ -4092,32 +3559,26 @@ unregister_data_types_and_formats(formats) 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 + update_hidden_range(ha) -> bool + @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 + use_mapping(ea) -> ea_t + @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 @@ -4132,25 +3593,16 @@ visit_patched_bytes(*args) 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 === @@ -4716,50 +4168,118 @@ class DBG_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> DBG_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | | dbg_bpt(self, *args) + | A user defined breakpoint was reached. + | | dbg_bpt(self, tid, bptea) -> int + | @param tid (C++: thid_t) + | @param bptea (C++: ea_t) | | dbg_bpt_changed(self, *args) + | Breakpoint has been changed. + | | dbg_bpt_changed(self, bptev_code, bpt) + | @param bptev_code: Breakpoint modification events (C++: int) + | @param bpt (C++: bpt_t *) | | dbg_exception(self, *args) | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exc_code: int + | exc_can_cont: bool + | exc_ea: ea_t + | exc_info: char const * | | dbg_finished_loading_bpts(self, *args) - | dbg_finished_loading_bpts(self) + | Finished loading breakpoint info from idb. | | dbg_information(self, *args) | dbg_information(self, pid, tid, ea, info) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | info: char const * | | dbg_library_load(self, *args) | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_library_unload(self, *args) | dbg_library_unload(self, pid, tid, ea, info) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | info: char const * | | dbg_process_attach(self, *args) + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_process_detach(self, *args) + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_detach(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | ea: ea_t | | dbg_process_exit(self, *args) + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_exit(self, pid, tid, ea, exit_code) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exit_code: int | | dbg_process_start(self, *args) + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_request_error(self, *args) + | An error occurred during the processing of a request. + | | dbg_request_error(self, failed_command, failed_dbg_notification) + | @param failed_command (C++: ui_notification_t) + | @param failed_dbg_notification (C++: dbg_notification_t) | | dbg_run_to(self, *args) | dbg_run_to(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | ea: ea_t | | dbg_started_loading_bpts(self, *args) - | dbg_started_loading_bpts(self) + | Started loading breakpoint info from idb. | | dbg_step_into(self, *args) | dbg_step_into(self) @@ -4771,16 +4291,32 @@ class DBG_Hooks(__builtin__.object) | dbg_step_until_ret(self) | | dbg_suspend_process(self, *args) - | dbg_suspend_process(self) + | The process is now suspended.This event notification is also an + | asynchronous function result notification for 'suspend_process()' ! | | dbg_thread_exit(self, *args) | dbg_thread_exit(self, pid, tid, ea, exit_code) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exit_code: int | | dbg_thread_start(self, *args) | dbg_thread_start(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | ea: ea_t | | dbg_trace(self, *args) + | A step occurred (one instruction was executed). This event + | notification is only generated if step tracing is enabled. + | | dbg_trace(self, tid, ip) -> int + | @param tid: thread ID (C++: thid_t) + | @param ip: current instruction pointer. usually points after the + | executed instruction (C++: ea_t) + | @retval: 1 - do not log this trace event + | @retval: 0 - log it | | dump_state(self, *args) | dump_state(self) -> qstring @@ -4812,54 +4348,64 @@ class DBG_Hooks(__builtin__.object) 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) + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @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) + + + add_bpt(bpt) -> bool + bpt: bpt_t const & Help on function add_path_mapping in module ida_dbg: add_path_mapping(*args) add_path_mapping(src, dst) + @param src (C++: const char *) + @param dst (C++: const char *) Help on function add_virt_module in module ida_dbg: add_virt_module(*args) add_virt_module(mod) -> bool + @param mod (C++: const modinfo_t *) 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) + attach_process(pid=pid_t(-1), event_id=-1) -> int + @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) + @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: @@ -4870,62 +4416,90 @@ class bpt_location_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: bpt_location_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: bpt_location_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: bpt_location_t const & | | __init__(self, *args) | __init__(self) -> bpt_location_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: bpt_location_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: bpt_location_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: bpt_location_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) + | 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. + | | compare(self, r) -> int + | @param r (C++: const bpt_location_t &) | | ea(self, *args) - | ea(self) -> ea_t + | Get address ( 'BPLT_ABS' ) | | is_empty_path(self, *args) - | is_empty_path(self) -> bool + | No path/filename specified? ( 'BPLT_REL' , 'BPLT_SRC' ) | | lineno(self, *args) - | lineno(self) -> int + | Get line number ( 'BPLT_SRC' ) | | offset(self, *args) - | offset(self) -> uval_t + | Get offset ( 'BPLT_REL' , 'BPLT_SYM' ) | | path(self, *args) - | path(self) -> char const * + | Get path/filename ( 'BPLT_REL' , 'BPLT_SRC' ) | | set_abs_bpt(self, *args) + | Specify an absolute address location. + | | set_abs_bpt(self, a) + | @param a (C++: ea_t) | | set_rel_bpt(self, *args) + | Specify a relative address location. + | | set_rel_bpt(self, mod, _offset) + | @param mod (C++: const char *) + | @param _offset (C++: uval_t) | | set_src_bpt(self, *args) + | Specify a source level location. + | | set_src_bpt(self, fn, _lineno) + | @param fn (C++: const char *) + | @param _lineno (C++: int) | | set_sym_bpt(self, *args) + | Specify a symbolic location. + | | set_sym_bpt(self, _symbol, _offset=0) + | @param _symbol (C++: const char *) + | @param _offset (C++: uval_t) | | symbol(self, *args) - | symbol(self) -> char const * + | Get symbol name ( 'BPLT_SYM' ) | | type(self, *args) - | type(self) -> bpt_loctype_t + | Get bpt type. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -4967,76 +4541,95 @@ class bpt_t(__builtin__.object) | __repr__ = _swig_repr(self) | | badbpt(self, *args) - | badbpt(self) -> bool + | Failed to write bpt to process memory? | | enabled(self, *args) - | enabled(self) -> bool + | Is breakpoint enabled? | | get_cnd_elang_idx(self, *args) | get_cnd_elang_idx(self) -> size_t | | get_size(self, *args) - | get_size(self) -> int + | Get bpt size. | | is_absbpt(self, *args) - | is_absbpt(self) -> bool + | Is absolute address breakpoint? | | is_active(self, *args) - | is_active(self) -> bool + | Written completely to process? | | is_compiled(self, *args) - | is_compiled(self) -> bool + | Condition has been compiled? | | is_hwbpt(self, *args) - | is_hwbpt(self) -> bool + | Is hardware breakpoint? | | is_inactive(self, *args) - | is_inactive(self) -> bool + | Not written to process at all? | | is_low_level(self, *args) - | is_low_level(self) -> bool + | Is bpt condition calculated at low level? | | is_page_bpt(self, *args) - | is_page_bpt(self) -> bool + | Page breakpoint? | | is_partially_active(self, *args) - | is_partially_active(self) -> bool + | Written partially to process? | | is_relbpt(self, *args) - | is_relbpt(self) -> bool + | Is relative address breakpoint? | | is_srcbpt(self, *args) - | is_srcbpt(self) -> bool + | Is source level breakpoint? | | is_symbpt(self, *args) - | is_symbpt(self) -> bool + | Is symbolic breakpoint? | | is_tracemodebpt(self, *args) - | is_tracemodebpt(self) -> bool + | Does breakpoint trace anything? | | is_traceoffbpt(self, *args) - | is_traceoffbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing disabled? | | is_traceonbpt(self, *args) - | is_traceonbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing enabled? | | listbpt(self, *args) - | listbpt(self) -> bool + | Include in the bpt list? | | set_abs_bpt(self, *args) + | Set bpt location to an absolute address. + | | set_abs_bpt(self, a) + | @param a (C++: ea_t) | | set_rel_bpt(self, *args) + | Set bpt location to a relative address. + | | set_rel_bpt(self, mod, o) + | @param mod (C++: const char *) + | @param o (C++: uval_t) | | set_src_bpt(self, *args) + | Set bpt location to a source line. + | | set_src_bpt(self, fn, lineno) + | @param fn (C++: const char *) + | @param lineno (C++: int) | | set_sym_bpt(self, *args) + | Set bpt location to a symbol. + | | set_sym_bpt(self, sym, o) + | @param sym (C++: const char *) + | @param o (C++: uval_t) | | set_trace_action(self, *args) + | Configure tracing options. + | | set_trace_action(self, enable, trace_types) -> bool + | @param enable (C++: bool) + | @param trace_types (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -5104,10 +4697,11 @@ class bpt_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> bpt_t + | i: size_t | | __init__(self, *args) | __init__(self) -> bpt_vec_t - | __init__(self, x) -> bpt_vec_t + | x: qvector< bpt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -5119,9 +4713,12 @@ class bpt_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: bpt_t const & | | at(self, *args) | at(self, _idx) -> bpt_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -5145,7 +4742,12 @@ class bpt_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> bpt_t + | it: qvector< bpt_t >::iterator + | + | | erase(self, first, last) -> bpt_t + | first: qvector< bpt_t >::iterator + | last: qvector< bpt_t >::iterator | | extract(self, *args) | extract(self) -> bpt_t @@ -5155,35 +4757,47 @@ class bpt_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=bpt_t()) + | x: bpt_t const & | | inject(self, *args) | inject(self, s, len) + | s: bpt_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> bpt_t + | it: qvector< bpt_t >::iterator + | x: bpt_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> bpt_t + | x: bpt_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: bpt_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< bpt_t > & | | truncate(self, *args) | truncate(self) @@ -5214,28 +4828,20 @@ bring_debugger_to_front(*args) 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 + check_bpt(ea) -> int + @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. @@ -5243,9 +4849,6 @@ clear_requests_queue(*args) 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)} @@ -5253,13 +4856,12 @@ Help on function collect_stack_trace in module ida_dbg: collect_stack_trace(*args) collect_stack_trace(tid, trace) -> bool + @param tid (C++: thid_t) + @param trace (C++: call_stack_t *) 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 @@ -5273,133 +4875,116 @@ continue_process(*args) 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) + create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * + @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 + dbg_add_bpt_tev(tid, ea, bp) -> bool + @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) + dbg_add_call_tev(tid, caller, callee) + @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 *) + dbg_add_debug_event(event) + @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 + dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool + @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 + dbg_add_many_tevs(new_tevs) -> bool + @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) + dbg_add_ret_tev(tid, ret_insn, return_to) + @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) + dbg_add_tev(type, tid, address) + @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) + dbg_add_thread(tid) + @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 + @param start_ea (C++: ea_t) + @param end_ea (C++: ea_t) + @param data (C++: const compiled_binpat_vec_t &) + @param srch_flags (C++: int) 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 @@ -5411,78 +4996,72 @@ dbg_can_query(*args) 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) + dbg_del_thread(tid) + @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 + define_exception(code, name, desc, flags) -> char const * + @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) + del_bpt(ea) -> bool + @param ea: any address in the breakpoint range (C++: ea_t) + + + del_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function del_bptgrp in module ida_dbg: del_bptgrp(*args) del_bptgrp(name) -> bool + @param name (C++: const char *) Help on function del_virt_module in module ida_dbg: del_virt_module(*args) del_virt_module(base) -> bool + @param base (C++: const ea_t) 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'. + + diff_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function disable_bblk_trace in module ida_dbg: @@ -5493,7 +5072,11 @@ Help on function disable_bpt in module ida_dbg: disable_bpt(*args) disable_bpt(ea) -> bool + @param ea (C++: ea_t) + + disable_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function disable_func_trace in module ida_dbg: @@ -5519,32 +5102,43 @@ Help on function enable_bblk_trace in module ida_dbg: enable_bblk_trace(*args) enable_bblk_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_bpt in module ida_dbg: enable_bpt(*args) enable_bpt(ea, enable=True) -> bool + @param ea (C++: ea_t) + @param enable (C++: bool) + + enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: bool) Help on function enable_func_trace in module ida_dbg: enable_func_trace(*args) enable_func_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_insn_trace in module ida_dbg: enable_insn_trace(*args) enable_insn_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_manual_regions in module ida_dbg: enable_manual_regions(*args) enable_manual_regions(enable) + @param enable (C++: bool) Help on function enable_step_trace in module ida_dbg: enable_step_trace(*args) - enable_step_trace(enable=True) -> bool + enable_step_trace(enable=1) -> bool + @param enable (C++: int) Help on class eval_ctx_t in module ida_dbg: @@ -5555,6 +5149,7 @@ class eval_ctx_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _ea) -> eval_ctx_t + | _ea: ea_t | | __repr__ = _swig_repr(self) | @@ -5582,41 +5177,30 @@ class eval_ctx_t(__builtin__.object) 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) + exist_bpt(ea) -> bool + @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 *) + find_bpt(bptloc, bpt) -> bool + @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)} @@ -5624,37 +5208,30 @@ get_bblk_trace_options(*args) 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 + get_bpt(ea, bpt) -> bool + @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 + @param bptloc (C++: const bpt_location_t &) 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 @@ -5663,38 +5240,34 @@ get_bpt_tev_ea(*args) 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. + get_bpt_tev_ea(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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) + get_bptloc_string(i) -> char const * + @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. + get_call_tev_callee(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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 + get_current_source_file() -> str Help on function get_current_source_line in module ida_dbg: @@ -5704,47 +5277,38 @@ get_current_source_line(*args) 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 + get_dbg_byte(x, ea) -> bool + @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 + @param ranges (C++: meminfo_vec_t *) 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 *) + get_dbg_reg_info(regname, ri) -> bool + @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: @@ -5756,13 +5320,11 @@ Help on function get_first_module in module ida_dbg: get_first_module(*args) get_first_module(modinfo) -> bool + @param modinfo (C++: modinfo_t *) 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)} @@ -5770,66 +5332,63 @@ Help on function get_global_var in module ida_dbg: get_global_var(*args) get_global_var(prov, ea, name, out) -> bool + @param prov (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param name (C++: const char *) + @param out (C++: source_item_ptr *) Help on function get_grp_bpts in module ida_dbg: get_grp_bpts(*args) get_grp_bpts(bpts, grp_name) -> ssize_t + @param bpts (C++: bpt_vec_t *) + @param grp_name (C++: const char *) 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 + get_insn_tev_reg_mem(n, memmap) -> bool + @param n: number of trace event, is in range 0.. get_tev_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. + get_insn_tev_reg_result(n, regname, regval) -> bool + @param n: number of trace event, is in range 0.. get_tev_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. + get_insn_tev_reg_val(n, regname, regval) -> bool + @param n: number of trace event, is in range 0.. get_tev_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)} @@ -5837,9 +5396,6 @@ get_insn_trace_options(*args) 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. @@ -5847,19 +5403,23 @@ Help on function get_local_var in module ida_dbg: get_local_var(*args) get_local_var(prov, ea, name, out) -> bool + @param prov (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param name (C++: const char *) + @param out (C++: source_item_ptr *) Help on function get_local_vars in module ida_dbg: get_local_vars(*args) get_local_vars(prov, ea, out) -> bool + @param prov (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param out (C++: source_items_t *) 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) @@ -5867,111 +5427,91 @@ Help on function get_module_info in module ida_dbg: get_module_info(*args) get_module_info(ea, modinfo) -> bool + @param ea (C++: ea_t) + @param modinfo (C++: modinfo_t *) Help on function get_next_module in module ida_dbg: get_next_module(*args) get_next_module(modinfo) -> bool + @param modinfo (C++: modinfo_t *) 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 + get_processes(proclist) -> ssize_t + @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 *) + get_reg_val(regname, regval) -> bool + @param regname (C++: const char *) + @param regval (C++: regval_t *) + + + get_reg_val(regname, ival) -> bool + @param regname (C++: const char *) + ival: uint64 * + + + get_reg_val(regname) -> PyObject * + @param regname (C++: const char *) Help on function get_reg_vals in module ida_dbg: get_reg_vals(*args) get_reg_vals(tid, clsmask, values) -> int + @param tid (C++: thid_t) + @param clsmask (C++: int) + @param values (C++: regval_t *) 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. + get_ret_tev_return(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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. @@ -5979,74 +5519,62 @@ Help on function get_srcinfo_provider in module ida_dbg: get_srcinfo_provider(*args) get_srcinfo_provider(name) -> srcinfo_provider_t * + @param name (C++: const char *) 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 + @param n (C++: int) 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". + get_tev_event(n, d) -> bool + @param n: number of trace event, is in range 0.. get_tev_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 + get_tev_info(n, tev_info) -> bool + @param n: number of trace event, is in range 0.. get_tev_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". + get_tev_memory_info(n, mi) -> bool + @param n: number of trace event, is in range 0.. get_tev_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)} @@ -6070,103 +5598,92 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) get_tev_tid(n) -> int + @param n (C++: int) Help on function get_tev_type in module ida_dbg: get_tev_type(*args) get_tev_type(n) -> int + @param n (C++: 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)} + +Help on function get_trace_dynamic_register_set in module ida_dbg: + +get_trace_dynamic_register_set(*args) + Get dynamic register set of current trace. - @return: the base address of the currently loaded trace + get_trace_dynamic_register_set(idaregs) + @param idaregs (C++: dynamic_register_set_t *) 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 *) + get_trace_file_desc(filename) -> str + @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 + getn_bpt(n, bpt) -> bool + @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. + getn_thread(n) -> thid_t + @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. + getn_thread_name(n) -> char const * + @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 + @param ev (C++: const debug_event_t *) + @param rqflags (C++: int) Help on function hide_all_bpts in module ida_dbg: @@ -6177,8 +5694,6 @@ 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. @@ -6187,25 +5702,24 @@ Help on function internal_ioctl in module ida_dbg: internal_ioctl(*args) internal_ioctl(fn, buf, poutbuf, poutsize) -> int + @param fn (C++: int) + @param buf (C++: const void *) + @param poutbuf (C++: void **) + @param poutsize (C++: ssize_t *) 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 ) + invalidate_dbg_state(dbginv) -> int + @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) @@ -6213,16 +5727,14 @@ invalidate_dbgmem_config(*args) 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) + invalidate_dbgmem_contents(ea, size) + @param ea (C++: ea_t) + @param size (C++: asize_t) Help on function is_bblk_trace_enabled in module ida_dbg: @@ -6232,9 +5744,6 @@ is_bblk_trace_enabled(*args) 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 @@ -6244,123 +5753,96 @@ is_debugger_busy(*args) 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) + is_debugger_memory(ea) -> bool + @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 + 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) - 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 *) + is_reg_custom(regname) -> bool + @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 *) + is_reg_float(regname) -> bool + @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 *) + is_reg_integer(regname) -> bool + @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 *) + is_valid_trace_file(filename) -> bool + @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 * + @param bptgrps (C++: qstrvec_t *) Help on function load_debugger in module ida_dbg: load_debugger(*args) load_debugger(dbgname, use_remote) -> bool + @param dbgname (C++: const char *) + @param use_remote (C++: 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 *) + load_trace_file(filename) -> str + @param filename (C++: const char *) Help on class memreg_info_t in module ida_dbg: @@ -6410,10 +5892,11 @@ class memreg_infos_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> memreg_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> memreg_infos_t - | __init__(self, x) -> memreg_infos_t + | 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. @@ -6425,9 +5908,12 @@ class memreg_infos_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: memreg_info_t const & | | at(self, *args) | at(self, _idx) -> memreg_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -6451,7 +5937,12 @@ class memreg_infos_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> memreg_info_t + | it: qvector< memreg_info_t >::iterator + | + | | erase(self, first, last) -> memreg_info_t + | first: qvector< memreg_info_t >::iterator + | last: qvector< memreg_info_t >::iterator | | extract(self, *args) | extract(self) -> memreg_info_t @@ -6461,35 +5952,47 @@ class memreg_infos_t(__builtin__.object) | | grow(self, *args) | grow(self, x=memreg_info_t()) + | x: memreg_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: memreg_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> memreg_info_t + | it: qvector< memreg_info_t >::iterator + | x: memreg_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> memreg_info_t + | x: memreg_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: memreg_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< memreg_info_t > & | | truncate(self, *args) | truncate(self) @@ -6516,33 +6019,30 @@ 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 + put_dbg_byte(ea, x) -> bool + @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 + @param ea (C++: ea_t) + @param buffer (C++: void *) + @param size (C++: size_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 @@ -6550,68 +6050,58 @@ Help on function rename_bptgrp in module ida_dbg: rename_bptgrp(*args) rename_bptgrp(old_name, new_name) -> bool + @param old_name (C++: const char *) + @param new_name (C++: const char *) 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. + request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @param ea (C++: ea_t) + @param size (C++: asize_t) + @param type (C++: bpttype_t) - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) + + request_add_bpt(bpt) -> bool + bpt: bpt_t const & 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) + request_attach_process(pid, event_id) -> 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) - 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. + request_del_bpt(ea) -> bool + @param ea (C++: ea_t) - @param ea (C++: ea_t) + + request_del_bpt(bptloc) -> bool + bptloc: bpt_location_t const & 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: @@ -6623,7 +6113,11 @@ Help on function request_disable_bpt in module ida_dbg: request_disable_bpt(*args) request_disable_bpt(ea) -> bool + @param ea (C++: ea_t) + + request_disable_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function request_disable_func_trace in module ida_dbg: @@ -6644,211 +6138,172 @@ Help on function request_enable_bblk_trace in module ida_dbg: request_enable_bblk_trace(*args) request_enable_bblk_trace(enable=True) -> bool + @param enable (C++: bool) Help on function request_enable_bpt in module ida_dbg: request_enable_bpt(*args) request_enable_bpt(ea, enable=True) -> bool + @param ea (C++: ea_t) + @param enable (C++: bool) + + request_enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: bool) Help on function request_enable_func_trace in module ida_dbg: request_enable_func_trace(*args) request_enable_func_trace(enable=True) -> bool + @param enable (C++: bool) Help on function request_enable_insn_trace in module ida_dbg: request_enable_insn_trace(*args) request_enable_insn_trace(enable=True) -> bool + @param enable (C++: bool) Help on function request_enable_step_trace in module ida_dbg: request_enable_step_trace(*args) - request_enable_step_trace(enable=True) -> bool + request_enable_step_trace(enable=1) -> bool + @param enable (C++: int) 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) + request_resume_thread(tid) -> int + @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) + request_run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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) + request_select_thread(tid) -> bool + @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) + request_set_bblk_trace_options(options) + @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) + request_set_func_trace_options(options) + @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) + request_set_insn_trace_options(options) + @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 *) + request_set_reg_val(regname, o) -> PyObject * + @param regname (C++: const char *) + o: PyObject * 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) + request_set_resume_mode(tid, mode) -> bool + @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) + request_set_step_trace_options(options) + @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 *) + request_start_process(path=None, args=None, sdir=None) -> int + @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) + request_suspend_thread(tid) -> int + @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) + resume_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @retval: -1 - network error + @retval: 0 - failed + @retval: 1 - ok 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 @@ -6857,24 +6312,15 @@ retrieve_exceptions(*args) 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) @@ -6882,37 +6328,33 @@ run_to(*args) 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) + run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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 *) + save_trace_file(filename, description) -> bool + @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. + select_thread(tid) -> bool + @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: @@ -6928,113 +6370,100 @@ send_dbg_command(command) 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) + set_bblk_trace_options(options) + @param options (C++: int) Help on function set_bpt_group in module ida_dbg: set_bpt_group(*args) set_bpt_group(bpt, grp_name) + @param bpt (C++: bpt_t &) + @param grp_name (C++: const char *) Help on function set_bptloc_group in module ida_dbg: set_bptloc_group(*args) set_bptloc_group(bptloc, grp_name) -> bool + @param bptloc (C++: const bpt_location_t &) + @param grp_name (C++: const char *) 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 *) + set_bptloc_string(s) -> int + @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) + set_debugger_event_cond(evcond) + @param evcond (C++: const char *) 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 + set_debugger_options(options) -> 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) - set_func_trace_options(options) - - Modify function tracing options. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - @param options (C++: int) + set_func_trace_options(options) + @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) + set_highlight_trace_options(hilight, color, diff) + @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) + set_insn_trace_options(options) + @param options (C++: int) Help on function set_manual_regions in module ida_dbg: set_manual_regions(*args) set_manual_regions(ranges) + @param ranges (C++: const meminfo_vec_t *) 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) + set_process_options(path, args, sdir, host, _pass, port) + @param path (C++: const char *) + @param args (C++: const char *) + @param sdir (C++: const char *) + @param host (C++: const char *) + pass: char const * + @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 @@ -7045,112 +6474,110 @@ set_process_state(*args) 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 ) + set_process_state(newstate, p_thid, dbginv) -> int + @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 *) + set_reg_val(regname, o) -> PyObject + @param regname (C++: const char *) + o: PyObject * + + + set_reg_val(tid, regidx, o) -> PyObject * + tid: thid_t + regidx: int + o: PyObject * 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) + set_remote_debugger(host, _pass, port=-1) + @param host: If empty, IDA will use local debugger. If NULL, the host + will not be set. (C++: const char *) + pass: char const * + @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) + set_resume_mode(tid, mode) -> bool + @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) + set_step_trace_options(options) + @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) + set_trace_base_address(ea) + @param ea (C++: ea_t) + +Help on function set_trace_dynamic_register_set in module ida_dbg: + +set_trace_dynamic_register_set(*args) + Set dynamic register set of current trace. + + set_trace_dynamic_register_set(idaregs) + @param idaregs (C++: dynamic_register_set_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 *) + set_trace_file_desc(filename, description) -> bool + @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 *) + set_trace_platform(platform) + @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) + set_trace_size(size) -> bool + @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: @@ -7185,9 +6612,6 @@ srcdbg_step_until_ret(*args) 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 @@ -7195,16 +6619,17 @@ start_process(*args) 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 *) + start_process(path=None, args=None, sdir=None) -> int + @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 *) + @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) - 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' } @@ -7212,9 +6637,6 @@ step_into(*args) 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' } @@ -7222,9 +6644,6 @@ step_over(*args) 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, @@ -7233,18 +6652,12 @@ step_until_ret(*args) 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 @@ -7257,15 +6670,16 @@ suspend_process(*args) 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) + suspend_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @retval: -1 - network error + @retval: 0 - failed + @retval: 1 - ok Help on class tev_info_reg_t in module ida_dbg: @@ -7351,6 +6765,8 @@ class tev_reg_value_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t + | _reg_idx: int + | _value: uint64 | | __repr__ = _swig_repr(self) | @@ -7387,10 +6803,11 @@ class tev_reg_values_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> tev_reg_value_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tev_reg_values_t - | __init__(self, x) -> tev_reg_values_t + | 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. @@ -7402,9 +6819,12 @@ class tev_reg_values_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: tev_reg_value_t const & | | at(self, *args) | at(self, _idx) -> tev_reg_value_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -7428,7 +6848,12 @@ class tev_reg_values_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> tev_reg_value_t + | it: qvector< tev_reg_value_t >::iterator + | + | | erase(self, first, last) -> tev_reg_value_t + | first: qvector< tev_reg_value_t >::iterator + | last: qvector< tev_reg_value_t >::iterator | | extract(self, *args) | extract(self) -> tev_reg_value_t @@ -7438,35 +6863,47 @@ class tev_reg_values_t(__builtin__.object) | | grow(self, *args) | grow(self, x=tev_reg_value_t()) + | x: tev_reg_value_t const & | | inject(self, *args) | inject(self, s, len) + | s: tev_reg_value_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> tev_reg_value_t + | it: qvector< tev_reg_value_t >::iterator + | x: tev_reg_value_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> tev_reg_value_t + | x: tev_reg_value_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: tev_reg_value_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< tev_reg_value_t > & | | truncate(self, *args) | truncate(self) @@ -7498,10 +6935,11 @@ class tevinforeg_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> tev_info_reg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tevinforeg_vec_t - | __init__(self, x) -> tevinforeg_vec_t + | 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. @@ -7513,9 +6951,12 @@ class tevinforeg_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: tev_info_reg_t const & | | at(self, *args) | at(self, _idx) -> tev_info_reg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -7539,7 +6980,12 @@ class tevinforeg_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> tev_info_reg_t + | it: qvector< tev_info_reg_t >::iterator + | + | | erase(self, first, last) -> tev_info_reg_t + | first: qvector< tev_info_reg_t >::iterator + | last: qvector< tev_info_reg_t >::iterator | | extract(self, *args) | extract(self) -> tev_info_reg_t @@ -7549,35 +6995,47 @@ class tevinforeg_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=tev_info_reg_t()) + | x: tev_info_reg_t const & | | inject(self, *args) | inject(self, s, len) + | s: tev_info_reg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> tev_info_reg_t + | it: qvector< tev_info_reg_t >::iterator + | x: tev_info_reg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> tev_info_reg_t + | x: tev_info_reg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: tev_info_reg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< tev_info_reg_t > & | | truncate(self, *args) | truncate(self) @@ -7603,9 +7061,6 @@ class tevinforeg_vec_t(__builtin__.object) 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 @@ -7620,28 +7075,30 @@ update_bpt(*args) '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 *) + update_bpt(bpt) -> bool + @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) + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + @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 + @param ea (C++: ea_t) + py_buf: PyObject * + @param size (C++: size_t) === ida_dbg EPYDOC INJECTIONS === ida_dbg.BKPT_ACTIVE @@ -7782,6 +7239,9 @@ refresh the memory layout and contents before evaluating bpt condition ida_dbg.BT_LOG_INSTS """ +specific options for basic block tracing (see +'set_bblk_trace_options()' ) + log all instructions in the current basic block """ @@ -7927,12 +7387,19 @@ display for unknown exceptions ida_dbg.FT_LOG_RET """ +specific options for function tracing (see 'set_func_trace_options()' +) + function tracing will log returning instructions """ ida_dbg.IT_LOG_SAME_IP """ -instruction tracing will log instructions whose IP doesn't change +specific options for instruction tracing (see +'set_insn_trace_options()' ) + +instruction tracing will log new instructions even when IP doesn't +change """ ida_dbg.ST_ALREADY_LOGGED @@ -7942,7 +7409,7 @@ step tracing will be disabled when IP is already logged ida_dbg.ST_DIFFERENTIAL """ -tracing: log only new instructions +tracing: log only new instructions (not previously logged) """ ida_dbg.ST_OPTIONS_MASK @@ -8000,61 +7467,1075 @@ ida_dbg.WFNE_USEC timeout is specified in microseconds """ === ida_dbg EPYDOC INJECTIONS END === +Help on class direntry_t in module ida_dirtree: + +class direntry_t(__builtin__.object) + | Proxy of C++ direntry_t class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: direntry_t const & + | + | __init__(self, *args) + | __init__(self, i=BADIDX, d=False) -> direntry_t + | i: uval_t + | d: bool + | + | __lt__(self, *args) + | __lt__(self, r) -> bool + | r: direntry_t const & + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: direntry_t const & + | + | __repr__ = _swig_repr(self) + | + | 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) + | + | idx + | direntry_t_idx_get(self) -> uval_t + | + | isdir + | direntry_t_isdir_get(self) -> bool + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | BADIDX = unsigned-ea-like-numeric-type(-1) + | + | ROOTIDX = 0 + | + | __swig_destroy__ = + | delete_direntry_t(self) + +Help on class direntry_vec_t in module ida_dirtree: + +class direntry_vec_t(__builtin__.object) + | Proxy of C++ qvector< direntry_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< direntry_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> direntry_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> direntry_vec_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< direntry_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: direntry_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: direntry_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: direntry_t const & + | + | at(self, *args) + | at(self, _idx) -> direntry_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> direntry_t + | begin(self) -> direntry_t + | + | capacity(self, *args) + | capacity(self) -> size_t + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> direntry_t + | end(self) -> direntry_t + | + | erase(self, *args) + | erase(self, it) -> direntry_t + | it: qvector< direntry_t >::iterator + | + | + | erase(self, first, last) -> direntry_t + | first: qvector< direntry_t >::iterator + | last: qvector< direntry_t >::iterator + | + | extract(self, *args) + | extract(self) -> direntry_t + | + | find(self, *args) + | find(self, x) -> direntry_t + | x: direntry_t const & + | + | + | find(self, x) -> direntry_t + | x: direntry_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=direntry_t()) + | x: direntry_t const & + | + | has(self, *args) + | has(self, x) -> bool + | x: direntry_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: direntry_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> direntry_t + | it: qvector< direntry_t >::iterator + | x: direntry_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: direntry_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: direntry_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< direntry_t > & + | + | 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_direntry_vec_t(self) + +Help on class dirspec_t in module ida_dirtree: + +class dirspec_t(__builtin__.object) + | Proxy of C++ dirspec_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self, nm=None) -> dirspec_t + | nm: char const * + | + | __repr__ = _swig_repr(self) + | + | get_attrs(self, *args) + | get_attrs(self, inode) -> qstring + | @param inode (C++: inode_t) + | + | get_inode(self, *args) + | get_inode(self, name) -> inode_t + | @param name (C++: const char *) + | + | get_name(self, *args) + | get_name(self, inode) -> bool + | @param inode (C++: inode_t) + | + | get_size(self, *args) + | get_size(self, inode) -> ssize_t + | @param inode (C++: inode_t) + | + | rename_inode(self, *args) + | rename_inode(self, inode, newname) -> bool + | @param inode (C++: inode_t) + | @param newname (C++: const char *) + | + | unlink_inode(self, *args) + | unlink_inode(self, arg0) + | arg0: inode_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | nodename + | dirspec_t_nodename_get(self) -> qstring * + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dirspec_t(self) + +Help on class dirtree_cursor_t in module ida_dirtree: + +class dirtree_cursor_t(__builtin__.object) + | Proxy of C++ dirtree_cursor_t class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: dirtree_cursor_t const & + | + | __ge__(self, *args) + | __ge__(self, r) -> bool + | r: dirtree_cursor_t const & + | + | __gt__(self, *args) + | __gt__(self, r) -> bool + | r: dirtree_cursor_t const & + | + | __init__(self, *args) + | __init__(self, _parent=BADIDX, _rank=size_t(-1)) -> dirtree_cursor_t + | _parent: diridx_t + | _rank: size_t + | + | __le__(self, *args) + | __le__(self, r) -> bool + | r: dirtree_cursor_t const & + | + | __lt__(self, *args) + | __lt__(self, r) -> bool + | r: dirtree_cursor_t const & + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: dirtree_cursor_t const & + | + | __repr__ = _swig_repr(self) + | + | compare(self, *args) + | compare(self, r) -> int + | r: dirtree_cursor_t const & + | + | is_root_cursor(self, *args) + | is_root_cursor(self) -> bool + | + | set_root_cursor(self, *args) + | set_root_cursor(self) + | + | valid(self, *args) + | valid(self) -> bool + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | root_cursor(*args) + | 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 + | dirtree_cursor_t_parent_get(self) -> diridx_t + | + | rank + | dirtree_cursor_t_rank_get(self) -> size_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dirtree_cursor_t(self) + +Help on function dirtree_cursor_t_root_cursor in module ida_dirtree: + +dirtree_cursor_t_root_cursor(*args) + dirtree_cursor_t_root_cursor() -> dirtree_cursor_t + +Help on class dirtree_cursor_vec_t in module ida_dirtree: + +class dirtree_cursor_vec_t(__builtin__.object) + | Proxy of C++ qvector< dirtree_cursor_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> dirtree_cursor_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> dirtree_cursor_vec_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< dirtree_cursor_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: dirtree_cursor_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: dirtree_cursor_t const & + | + | at(self, *args) + | at(self, _idx) -> dirtree_cursor_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> dirtree_cursor_t + | begin(self) -> dirtree_cursor_t + | + | capacity(self, *args) + | capacity(self) -> size_t + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> dirtree_cursor_t + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) + | erase(self, it) -> dirtree_cursor_t + | it: qvector< dirtree_cursor_t >::iterator + | + | + | erase(self, first, last) -> dirtree_cursor_t + | first: qvector< dirtree_cursor_t >::iterator + | last: qvector< dirtree_cursor_t >::iterator + | + | extract(self, *args) + | extract(self) -> dirtree_cursor_t + | + | find(self, *args) + | find(self, x) -> dirtree_cursor_t + | x: dirtree_cursor_t const & + | + | + | find(self, x) -> dirtree_cursor_t + | x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=dirtree_cursor_t()) + | x: dirtree_cursor_t const & + | + | has(self, *args) + | has(self, x) -> bool + | x: dirtree_cursor_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: dirtree_cursor_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> dirtree_cursor_t + | it: qvector< dirtree_cursor_t >::iterator + | x: dirtree_cursor_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: dirtree_cursor_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: dirtree_cursor_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< dirtree_cursor_t > & + | + | 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_dirtree_cursor_vec_t(self) + +Help on class dirtree_iterator_t in module ida_dirtree: + +class dirtree_iterator_t(__builtin__.object) + | Proxy of C++ dirtree_iterator_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> dirtree_iterator_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) + | + | cursor + | dirtree_iterator_t_cursor_get(self) -> dirtree_cursor_t + | + | pattern + | dirtree_iterator_t_pattern_get(self) -> qstring * + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dirtree_iterator_t(self) + +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 + | __builtin__.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> dirtree_selection_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dirtree_selection_t(self) + | + | ---------------------------------------------------------------------- + | Methods inherited from dirtree_cursor_vec_t: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> dirtree_cursor_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< dirtree_cursor_t > const & + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: dirtree_cursor_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: dirtree_cursor_t const & + | + | at(self, *args) + | at(self, _idx) -> dirtree_cursor_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> dirtree_cursor_t + | begin(self) -> dirtree_cursor_t + | + | capacity(self, *args) + | capacity(self) -> size_t + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> dirtree_cursor_t + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) + | erase(self, it) -> dirtree_cursor_t + | it: qvector< dirtree_cursor_t >::iterator + | + | + | erase(self, first, last) -> dirtree_cursor_t + | first: qvector< dirtree_cursor_t >::iterator + | last: qvector< dirtree_cursor_t >::iterator + | + | extract(self, *args) + | extract(self) -> dirtree_cursor_t + | + | find(self, *args) + | find(self, x) -> dirtree_cursor_t + | x: dirtree_cursor_t const & + | + | + | find(self, x) -> dirtree_cursor_t + | x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=dirtree_cursor_t()) + | x: dirtree_cursor_t const & + | + | has(self, *args) + | has(self, x) -> bool + | x: dirtree_cursor_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: dirtree_cursor_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> dirtree_cursor_t + | it: qvector< dirtree_cursor_t >::iterator + | x: dirtree_cursor_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: dirtree_cursor_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: dirtree_cursor_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< dirtree_cursor_t > & + | + | truncate(self, *args) + | 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) + +Help on class dirtree_t in module ida_dirtree: + +class dirtree_t(__builtin__.object) + | Proxy of C++ dirtree_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self, ds) -> dirtree_t + | ds: dirspec_t * + | + | __repr__ = _swig_repr(self) + | + | change_rank(self, *args) + | Change ordering rank of an item.All subdirectories go before all file + | entries. + | + | change_rank(self, path, rank_delta) -> dterr_t + | @param path: path to the item (C++: const char *) + | @param rank_delta (C++: ssize_t) + | @return: dterr_t error code + | + | chdir(self, *args) + | Change current directory + | + | chdir(self, path) -> dterr_t + | @param path: new current directory (C++: const char *) + | @return: dterr_t error code + | + | findfirst(self, *args) + | Start iterating over files in a directory + | + | findfirst(self, ff, pattern) -> bool + | @param ff: directory iterator. it will be initialized by the function + | (C++: dirtree_iterator_t *) + | @param pattern: pattern to search for (C++: const char *) + | @return: success + | + | findnext(self, *args) + | Continue iterating over files in a directory + | + | findnext(self, ff) -> bool + | @param ff: directory iterator (C++: dirtree_iterator_t *) + | @return: success + | + | get_abspath(self, *args) + | Get absolute path pointed by the cursorsee also 'resolve_cursor()' + | + | get_abspath(self, cursor) -> qstring + | @param cursor (C++: const dirtree_cursor_t &) + | @return: path. empty path means wrong directory part of RELPATH + | + | + | get_abspath(self, relpath) -> qstring + | relpath: char const * + | @return: path. empty path means wrong directory part of RELPATH + | + | get_entry_attrs(self, *args) + | Get entry attributes + | + | get_entry_attrs(self, de) -> qstring + | @param de: directory entry (C++: const direntry_t &) + | @return: name + | + | get_entry_name(self, *args) + | Get entry name + | + | get_entry_name(self, de) -> qstring + | @param de: directory entry (C++: const direntry_t &) + | @return: name + | + | get_entry_size(self, *args) + | Get entry size + | + | get_entry_size(self, de) -> ssize_t + | @param de: directory entry (C++: const direntry_t &) + | @return: for directories: number of items, for files: item size. if + | error, return -1 + | + | get_nodename(self, *args) + | netnode name + | + | get_parent_cursor(self, *args) + | Get parent cursor. + | + | get_parent_cursor(self, cursor) -> dirtree_cursor_t + | @param cursor: a valid ditree cursor (C++: const dirtree_cursor_t &) + | @return: cursor's parent + | + | get_rank(self, *args) + | Get ordering rank of an item. + | + | get_rank(self, diridx, de) -> ssize_t + | @param diridx: index of the parent directory (C++: diridx_t) + | @param de: directory entry (C++: const direntry_t &) + | @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) + | Get current directory + | + | isdir(self, *args) + | Is a directory? + | + | isdir(self, de) -> bool + | de: direntry_t const & + | @return: true if the specified path is a directory + | + | + | isdir(self, path) -> bool + | path: char const * + | @return: true if the specified path is a directory + | + | isfile(self, *args) + | Is a file? + | + | isfile(self, de) -> bool + | de: direntry_t const & + | @return: true if the specified path is a file + | + | + | isfile(self, path) -> bool + | path: char const * + | @return: true if the specified path is a file + | + | link(self, *args) + | Add a file item into a directory. + | + | link(self, path) -> dterr_t + | @param path: path to item to add to a directory (C++: const char *) + | @return: dterr_t error code + | + | + | link(self, inode) -> dterr_t + | inode: inode_t + | @return: dterr_t error code + | + | load(self, *args) + | Load the tree structure from the netnode. If dirspec_t::nodename 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.dirspec_t::nodename. + | + | mkdir(self, *args) + | Create a directory. + | + | mkdir(self, path) -> dterr_t + | @param path: directory to create (C++: const char *) + | @return: dterr_t error code + | + | notify_dirtree(self, *args) + | Notify dirtree about a change of an inode. + | + | notify_dirtree(self, added, inode) + | @param added (C++: bool) + | @param inode: inode in question (C++: inode_t) + | + | rename(self, *args) + | Rename a directory entry.This function can also rename the item + | + | rename(self, _from, to) -> dterr_t + | @param _from: source path (C++: const char *) + | @param to: destination path (C++: const char *) + | @return: dterr_t error code + | + | resolve_cursor(self, *args) + | Resolve cursorsee also 'get_abspath()' + | + | resolve_cursor(self, cursor) -> direntry_t + | @param cursor: to analyze (C++: const dirtree_cursor_t &) + | @return: directory entry; if the cursor is bad, the resolved entry + | will be invalid. + | + | resolve_path(self, *args) + | Resolve path + | + | resolve_path(self, path) -> direntry_t + | @param path: to analyze (C++: const char *) + | @return: directory entry + | + | rmdir(self, *args) + | Remove a directory. + | + | rmdir(self, path) -> dterr_t + | @param path: directory to delete (C++: const char *) + | @return: dterr_t error code + | + | save(self, *args) + | Save the tree structure to the netnode.dirspec_t::nodename. + | + | set_nodename(self, *args) + | set_nodename(self, nm) + | @param nm (C++: const char *) + | + | unlink(self, *args) + | Remove a file item from a directory. + | + | unlink(self, path) -> dterr_t + | @param path: path to item remove from a directory (C++: const char *) + | @return: dterr_t error code + | + | + | unlink(self, inode) -> dterr_t + | inode: inode_t + | @return: dterr_t error code + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | errstr(*args) + | errstr(err) -> char const * + | err: 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 + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dirtree_t(self) + +Help on function dirtree_t_errstr in module ida_dirtree: + +dirtree_t_errstr(*args) + dirtree_t_errstr(err) -> char const * + err: enum dterr_t + +Help on function get_std_dirtree in module ida_dirtree: + +get_std_dirtree(*args) + get_std_dirtree(id) -> dirtree_t + @param id (C++: dirtree_id_t) + +Help on function choose_ioport_device2 in module ida_diskio: + +choose_ioport_device2(*args) + choose_ioport_device2(_device, file, parse_params) -> bool + @param _device (C++: qstring *) + @param file (C++: const char *) + @param parse_params (C++: choose_ioport_parser_t *) + +Help on class choose_ioport_parser_t in module ida_diskio: + +class choose_ioport_parser_t(__builtin__.object) + | Proxy of C++ choose_ioport_parser_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> choose_ioport_parser_t + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | parse(self, *args) + | parse(self, param, line) -> bool + | @param param (C++: qstring *) + | @param line (C++: const char *) + | @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 + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for 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_choose_ioport_parser_t(self) + Help on function close_linput in module ida_diskio: close_linput(*args) - close_linput(li) - - Close loader input. - - @param li (C++: linput_t *) + close_linput(li) + @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. + + create_bytearray_linput(s) -> linput_t * + s: qstring const & 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 - *) + create_generic_linput(gl) -> linput_t * + @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) + create_memory_linput(start, size) -> linput_t * + @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) + @param fp (C++: FILE *) 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 @@ -8065,73 +8546,108 @@ enumerate_files(*args) 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) + enumerate_files2(answer, answer_size, path, fname, fv) -> int + @param answer (C++: char *) + @param answer_size (C++: size_t) + @param path (C++: const char *) + @param fname (C++: const char *) + @param fv (C++: file_enumerator_t &) + +Help on class file_enumerator_t in module ida_diskio: + +class file_enumerator_t(__builtin__.object) + | Proxy of C++ file_enumerator_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> file_enumerator_t + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | visit_file(self, *args) + | visit_file(self, file) -> int + | @param file (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for 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_file_enumerator_t(self) + 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 + fopenA(file) -> FILE * + @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 + fopenM(file) -> FILE * + @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 + fopenRB(file) -> FILE * + @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 + fopenRT(file) -> FILE * + @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 + fopenWB(file) -> FILE * + @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 + fopenWT(file) -> FILE * + @param file (C++: const char *) + @return: NULL if failure Help on class generic_linput_t in module ida_diskio: @@ -8146,6 +8662,9 @@ class generic_linput_t(__builtin__.object) | | read(self, *args) | read(self, off, buffer, nbytes) -> ssize_t + | @param off (C++: qoff64_t) + | @param buffer (C++: void *) + | @param nbytes (C++: size_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8174,47 +8693,37 @@ class generic_linput_t(__builtin__.object) 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' + get_ida_subdirs(subdir, flags=0) -> int + @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 *) + get_linput_type(li) -> linput_type_t + @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) + get_special_folder(csidl) -> str + @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: @@ -8225,51 +8734,89 @@ get_user_idadir(*args) 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. + getsysfile(filename, subdir) -> str + @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 *) + idadir(subdir) -> char const * + @param subdir (C++: const char *) + +Help on class ioports_fallback_t in module ida_diskio: + +class ioports_fallback_t(__builtin__.object) + | Proxy of C++ ioports_fallback_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> ioports_fallback_t + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | handle(self, *args) + | handle(self, ports, line) -> bool + | @param ports (C++: const ioports_t &) + | @param line (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for 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_ioports_fallback_t(self) 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) + open_linput(file, remote) -> linput_t * + @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) + qlgetz(li, fpos) -> str + @param li (C++: linput_t *) + @param fpos (C++: int64) + +Help on function read_ioports2 in module ida_diskio: + +read_ioports2(*args) + read_ioports2(ports, device, file, callback=None) -> ssize_t + @param ports (C++: ioports_t *) + @param device (C++: qstring *) + @param file (C++: const char *) + @param callback (C++: ioports_fallback_t *) === ida_diskio EPYDOC INJECTIONS === ida_diskio.IDA_SUBDIR_IDADIR_FIRST @@ -8290,103 +8837,86 @@ only existing directories will be present 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) + add_entry(ord, ea, name, makecode, flags=0) -> bool + @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 + get_entry(ord) -> ea_t + @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 + get_entry_forwarder(ord) -> str + @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 + get_entry_name(ord) -> str + @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. + get_entry_ordinal(idx) -> uval_t + @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 + rename_entry(ord, name, flags=0) -> bool + @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 + set_entry_forwarder(ord, name, flags=0) -> bool + @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 @@ -8410,54 +8940,44 @@ the name is given in UTF-8 (default) 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) + add_enum(idx, name, flag) -> enum_t + @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 + add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int + @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) + del_enum(id) + @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) + del_enum_member(id, value, serial, bmask) -> bool + @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: @@ -8470,11 +8990,17 @@ class enum_member_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> enum_member_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_enum_member(self, *args) + | Implements action to take when enum member is visited. + | | visit_enum_member(self, cid, value) -> int + | @param cid (C++: const_t) + | @param value (C++: uval_t) + | @return: nonzero to stop the iteration | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8497,533 +9023,452 @@ class enum_member_visitor_t(__builtin__.object) 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 &) + for_all_enum_members(id, cv) -> int + @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 + @param id (C++: enum_t) + @param bmask (C++: bmask_t) + @param repeatable (C++: bool) Help on function get_bmask_name in module ida_enum: get_bmask_name(*args) get_bmask_name(id, bmask) -> str + @param id (C++: enum_t) + @param bmask (C++: bmask_t) 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 *) + get_enum(name) -> enum_t + @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) + get_enum_cmt(id, repeatable) -> str + @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) + get_enum_flag(id) -> flags_t + @param id (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) + Get the index in the list of enums. + 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) + @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) + get_enum_member(id, value, serial, mask) -> const_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) - get_enum_member_bmask(id) -> bmask_t - - Get bitmask of an enum member. - - @param id (C++: const_t) + get_enum_member_bmask(id) -> bmask_t + @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 *) + get_enum_member_by_name(name) -> const_t + @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) + get_enum_member_cmt(id, repeatable) -> str + @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) + get_enum_member_enum(id) -> enum_t + @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) + get_enum_member_name(id) -> str + @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) + get_enum_member_serial(cid) -> uchar + @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) + get_enum_member_value(id) -> uval_t + @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) + get_enum_name(id) -> str + @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) + get_enum_name2(id, flags=0) -> str + @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) + get_enum_size(id) -> size_t + @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) + get_enum_type_ordinal(id) -> int32 + @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) + get_enum_width(id) -> size_t + @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 + get_first_bmask(id) -> bmask_t + @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 + @param id (C++: enum_t) + @param bmask (C++: bmask_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 + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: bmask_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 + get_last_bmask(id) -> bmask_t + @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 + @param id (C++: enum_t) + @param bmask (C++: bmask_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 + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: bmask_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 + get_next_bmask(id, bmask) -> bmask_t + @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 + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: bmask_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 + @param in_out_serial (C++: uchar *) + @param first_cid (C++: 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 + get_prev_bmask(id, bmask) -> bmask_t + @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 + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: bmask_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 + @param in_out_serial (C++: uchar *) + @param first_cid (C++: const_t) Help on function getn_enum in module ida_enum: getn_enum(*args) - getn_enum(n) -> 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) + getn_enum(idx) -> enum_t + @param idx (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) + is_bf(id) -> bool + @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) + is_enum_fromtil(id) -> bool + @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) + is_enum_hidden(id) -> bool + @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) + is_ghost_enum(id) -> bool + @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) + is_one_bit_mask(mask) -> bool + @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 + @param id (C++: enum_t) + @param bmask (C++: bmask_t) + @param cmt (C++: const char *) + @param repeatable (C++: bool) Help on function set_bmask_name in module ida_enum: set_bmask_name(*args) set_bmask_name(id, bmask, name) -> bool + @param id (C++: enum_t) + @param bmask (C++: bmask_t) + @param name (C++: const char *) 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) + set_enum_bf(id, bf) -> bool + @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) + set_enum_cmt(id, cmt, repeatable) -> bool + @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) + set_enum_flag(id, flag) -> bool + @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) + set_enum_fromtil(id, fromtil) -> bool + @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) + set_enum_ghost(id, ghost) -> bool + @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) + set_enum_hidden(id, hidden) -> bool + @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) + set_enum_idx(id, idx) -> bool + @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) + set_enum_member_cmt(id, cmt, repeatable) -> bool + @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 *) + set_enum_member_name(id, name) -> bool + @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 *) + set_enum_name(id, name) -> bool + @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) + set_enum_type_ordinal(id, ord) + @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) + set_enum_width(id, width) -> bool + @param id (C++: enum_t) + @param width (C++: int) === ida_enum EPYDOC INJECTIONS === ida_enum.DEFMASK @@ -9086,132 +9531,100 @@ class _IdcFunction(__builtin__.object) 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. + add_idc_class(name, super=None) -> idc_class_t * + @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 +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 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 defvals: default argument values (optional) + @param flags: IDC function flags. A combination of EXTFUN_XXX constants (optional) - @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 + @return: Boolean 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. + add_idc_gvar(name) -> idc_value_t + @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 + nonnul_line: char const * 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) + compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str + @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) + @retval: true - ok + @retval: false - error, see errbuf Help on function compile_idc_text in module ida_expr: compile_idc_text(*args) compile_idc_text(nonnul_line) -> str + nonnul_line: char const * 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 &) + copy_idcv(dst, src) -> error_t + @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 + create_idcv_ref(ref, v) -> bool + @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 &) + deep_copy_idcv(dst, src) -> error_t + @param dst (C++: idc_value_t *) + @param src (C++: const idc_value_t &) Help on function del_idc_func in module ida_expr: @@ -9221,199 +9634,181 @@ del_idc_func(name) @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 + del_idcv_attr(obj, attr) -> error_t + @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" + deref_idcv(v, vref_flags) -> idc_value_t + @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 *) + eval_expr(rv, where, line) -> str + @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 *) + @retval: true - ok + @retval: false - error, see errbuf 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) + eval_idc_expr(rv, where, line) -> str + @param rv (C++: idc_value_t *) + @param where (C++: ea_t) + line: char const * 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) + exec_idc_script(result, path, func, args, argsnum) -> str + @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) + @retval: true - ok + @retval: false - error, see errbuf 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) + exec_system_script(file, complain_if_no_file=True) -> bool + @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) + @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) - 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() + find_idc_class(name) -> idc_class_t * + @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 + @param prefix (C++: const char *) + @param n (C++: int) 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 + find_idc_gvar(name) -> idc_value_t + @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 * + @param obj (C++: const idc_value_t *) 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 *) + free_idcv(v) + @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 + get_idc_filename(file) -> str + @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 + get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t + @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 + get_idcv_class_name(obj) -> str + @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 + get_idcv_slice(res, v, i1, i2, flags=0) -> error_t + @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: @@ -9426,6 +9821,7 @@ class highlighter_cbs_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> highlighter_cbs_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -9437,9 +9833,13 @@ class highlighter_cbs_t(__builtin__.object) | | set_block_state(self, *args) | set_block_state(self, arg0) + | arg0: int32 | | set_style(self, *args) | set_style(self, arg0, arg1, arg2) + | arg0: int32 + | arg1: int32 + | arg2: enum syntax_highlight_style | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9468,7 +9868,7 @@ class idc_global_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> idc_global_t - | __init__(self, n) -> idc_global_t + | n: char const * | | __repr__ = _swig_repr(self) | @@ -9505,8 +9905,15 @@ class idc_value_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=0) -> idc_value_t + | n: sval_t + | + | | __init__(self, r) -> idc_value_t + | r: idc_value_t const & + | + | | __init__(self, _str) -> idc_value_t + | _str: char const * | | __repr__ = _swig_repr(self) | @@ -9517,48 +9924,60 @@ class idc_value_t(__builtin__.object) | __get_e(self) -> wrapped_array_t< ushort,6 > | | c_str(self, *args) - | c_str(self) -> char const * + | 'VT_STR' | | clear(self, *args) - | clear(self) + | See 'free_idcv()' | | create_empty_string(self, *args) | create_empty_string(self) | | is_convertible(self, *args) - | is_convertible(self) -> bool + | Convertible types are 'VT_LONG' , 'VT_FLOAT' , 'VT_INT64' , and + | 'VT_STR' . | | is_integral(self, *args) - | is_integral(self) -> bool + | Does value represent a whole number? | | is_zero(self, *args) - | is_zero(self) -> bool + | Does value represent the integer 0? | | qstr(self, *args) - | qstr(self) -> qstring - | qstr(self) -> qstring const & + | 'VT_STR' | | set_float(self, *args) | set_float(self, f) + | f: ushort const [6] | | set_int64(self, *args) | set_int64(self, v) + | v: int64 | | set_long(self, *args) | set_long(self, v) + | v: sval_t | | set_pvoid(self, *args) | set_pvoid(self, p) + | p: void * | | set_string(self, *args) | set_string(self, _str, len) + | _str: char const * + | len: size_t + | + | | set_string(self, _str) + | _str: char const * | | swap(self, *args) + | Set this = r and v = this. + | | swap(self, v) + | @param v (C++: idc_value_t &) | | u_str(self, *args) - | u_str(self) -> uchar const * + | 'VT_STR' | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9613,10 +10032,11 @@ class idc_values_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> idc_value_t + | i: size_t | | __init__(self, *args) | __init__(self) -> idc_values_t - | __init__(self, x) -> idc_values_t + | 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. @@ -9628,9 +10048,12 @@ class idc_values_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: idc_value_t const & | | at(self, *args) | at(self, _idx) -> idc_value_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -9654,7 +10077,12 @@ class idc_values_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> idc_value_t + | it: qvector< idc_value_t >::iterator + | + | | erase(self, first, last) -> idc_value_t + | first: qvector< idc_value_t >::iterator + | last: qvector< idc_value_t >::iterator | | extract(self, *args) | extract(self) -> idc_value_t @@ -9664,35 +10092,47 @@ class idc_values_t(__builtin__.object) | | grow(self, *args) | grow(self, x=idc_value_t()) + | x: idc_value_t const & | | inject(self, *args) | inject(self, s, len) + | s: idc_value_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> idc_value_t + | it: qvector< idc_value_t >::iterator + | x: idc_value_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> idc_value_t + | x: idc_value_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: idc_value_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< idc_value_t > & | | truncate(self, *args) | truncate(self) @@ -9718,120 +10158,111 @@ class idc_values_t(__builtin__.object) 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 *) + idcv_float(v) -> error_t + @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 + idcv_int64(v) -> error_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) - 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 + idcv_long(v) -> error_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) - 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 + idcv_num(v) -> error_t + @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 + idcv_object(v, icls=None) -> error_t + @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 *) + idcv_string(v) -> error_t + @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 * + @param obj (C++: const idc_value_t *) 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 *) + move_idcv(dst, src) -> error_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) next_idcv_attr(obj, attr) -> char const * + @param obj (C++: const idc_value_t *) + @param attr (C++: const char *) Help on function prev_idcv_attr in module ida_expr: prev_idcv_attr(*args) prev_idcv_attr(obj, attr) -> char const * + @param obj (C++: const idc_value_t *) + @param attr (C++: const char *) 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) + print_idcv(v, name=None, indent=0) -> str + @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 + name: char const * + fp_ptr: size_t + args: char const * + defvals: idc_values_t const & + flags: int Help on function py_get_call_idc_func in module ida_expr: @@ -9842,87 +10273,85 @@ Help on function pyw_convert_defvals in module ida_expr: pyw_convert_defvals(*args) pyw_convert_defvals(out, py_seq) -> bool + out: idc_values_t * + py_seq: PyObject * 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 + name: char const * + args: char const * + py_fp: PyObject * Help on function pyw_unregister_idc_func in module ida_expr: pyw_unregister_idc_func(*args) pyw_unregister_idc_func(ctxptr) -> bool + ctxptr: size_t 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) + set_header_path(path, add) -> bool + @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) + @retval: true - success + @retval: false - no memory 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 + set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t + @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 + set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t + @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) + in: idc_value_t const & + @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 *) + swap_idcvs(v1, v2) + @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 + throw_idc_exception(r, desc) -> error_t + @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 @@ -10020,58 +10449,46 @@ See return value of 'idc_func_t' . 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) + calc_fixup_size(type) -> int + @param type (C++: fixup_type_t) + @retval: -1 - means error 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) + contains_fixups(ea, size) -> bool + @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) + del_fixup(source) + @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) + exists_fixup(source) -> bool + @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 + find_custom_fixup(name) -> fixup_type_t + @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: @@ -10082,12 +10499,13 @@ class fixup_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> fixup_data_t - | __init__(self, type_, flags_=0) -> fixup_data_t + | type_: fixup_type_t + | flags_: uint32 | | __repr__ = _swig_repr(self) | | calc_size(self, *args) - | calc_size(self) -> int + | 'calc_fixup_size()' | | clr_extdef(self, *args) | clr_extdef(self) @@ -10096,31 +10514,41 @@ class fixup_data_t(__builtin__.object) | clr_unused(self) | | get(self, *args) + | 'get_fixup()' + | | get(self, source) -> bool + | @param source (C++: ea_t) | | get_base(self, *args) - | get_base(self) -> ea_t + | Get base of fixup.The target is calculated as 'get_base()' + off. + | 'get_base()' + off 'FIXUPF_REL' | | get_desc(self, *args) + | 'get_fixup_desc()' + | | get_desc(self, source) -> char const * + | @param source (C++: ea_t) | | get_flags(self, *args) - | get_flags(self) -> uint32 + | Fixup flags 'Fixup flags' . | | get_handler(self, *args) - | get_handler(self) -> fixup_handler_t const * + | 'get_fixup_handler()' | | get_type(self, *args) - | get_type(self) -> fixup_type_t + | Fixup type 'Types of fixups' . | | get_value(self, *args) + | 'get_fixup_value()' + | | get_value(self, ea) -> uval_t + | @param ea (C++: ea_t) | | has_base(self, *args) - | has_base(self) -> bool + | Is fixup relative? | | is_custom(self, *args) - | is_custom(self) -> bool + | 'is_fixup_custom()' | | is_extdef(self, *args) | is_extdef(self) -> bool @@ -10129,34 +10557,49 @@ class fixup_data_t(__builtin__.object) | is_unused(self) -> bool | | patch_value(self, *args) + | 'patch_fixup_value()' + | | patch_value(self, ea) -> bool + | @param ea (C++: ea_t) | | set(self, *args) + | 'set_fixup()' + | | set(self, source) + | @param source (C++: ea_t) | | set_base(self, *args) + | Set base of fixup. The target should be set before a call of this + | function. + | | set_base(self, new_base) + | @param new_base (C++: ea_t) | | set_extdef(self, *args) | set_extdef(self) | | set_sel(self, *args) | set_sel(self, seg) + | @param seg (C++: const segment_t *) | | set_target_sel(self, *args) - | 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) | set_type(self, type_) + | @param type_ (C++: fixup_type_t) | | set_type_and_flags(self, *args) | set_type_and_flags(self, type_, flags_=0) + | @param type_ (C++: fixup_type_t) + | @param flags_ (C++: uint32) | | set_unused(self, *args) | set_unused(self) | | was_created(self, *args) - | was_created(self) -> bool + | Is fixup artificial? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10224,9 +10667,6 @@ class fixup_info_t(__builtin__.object) 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 @@ -10235,61 +10675,45 @@ gen_fix_fixups(*args) 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) + gen_fix_fixups(_from, to, size) + @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) + get_fixup(fd, source) -> bool + @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 &) + get_fixup_desc(source, fd) -> str + @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) + get_fixup_handler(type) -> fixup_handler_t const * + @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()' . @@ -10299,76 +10723,73 @@ get_fixup_value(*args) 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) + get_fixup_value(ea, type) -> uval_t + @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) + @retval: operand - value Help on function get_fixups in module ida_fixup: get_fixups(*args) get_fixups(out, ea, size) -> bool + @param out (C++: fixups_t *) + @param ea (C++: ea_t) + @param size (C++: asize_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 + get_next_fixup_ea(ea) -> ea_t + @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 + get_prev_fixup_ea(ea) -> ea_t + @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) + is_fixup_custom(type) -> bool + @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 &) + patch_fixup_value(ea, fd) -> bool + @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 &) + @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) - 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 &) + set_fixup(source, fd) + @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 @@ -10412,9 +10833,6 @@ class qfile_t(__builtin__.object) | | __init__(self, *args) | __init__(self, rhs) -> qfile_t - | __init__(self, pycapsule=None) -> qfile_t - | - | | Closes the file | | __repr__ = _swig_repr(self) @@ -10427,8 +10845,6 @@ class qfile_t(__builtin__.object) | | 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) @@ -10439,14 +10855,10 @@ class qfile_t(__builtin__.object) | | 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 @@ -10455,32 +10867,26 @@ class qfile_t(__builtin__.object) | | opened(self, *args) | opened(self) -> bool - | - | | Checks if the file is opened or not | | put_char(self, *args) | put_char(self, chr) -> int + | chr: char | | puts(self, *args) | puts(self, str) -> int + | str: char const * | | 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!) | @@ -10489,20 +10895,14 @@ class qfile_t(__builtin__.object) | | 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 | | ---------------------------------------------------------------------- @@ -10510,14 +10910,14 @@ class qfile_t(__builtin__.object) | | from_capsule(*args) | from_capsule(pycapsule) -> qfile_t + | pycapsule: PyObject * | | from_fp(*args) | from_fp(fp) -> qfile_t + | fp: FILE * | | tmpfile(*args) | tmpfile() -> qfile_t - | - | | A static method to construct an instance using a temporary file | | ---------------------------------------------------------------------- @@ -10545,11 +10945,13 @@ Help on function qfile_t_from_capsule in module ida_fpro: qfile_t_from_capsule(*args) qfile_t_from_capsule(pycapsule) -> qfile_t + pycapsule: PyObject * Help on function qfile_t_from_fp in module ida_fpro: qfile_t_from_fp(*args) qfile_t_from_fp(fp) -> qfile_t + fp: FILE * Help on function qfile_t_tmpfile in module ida_fpro: @@ -10559,361 +10961,322 @@ qfile_t_tmpfile(*args) 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 + add_auto_stkpnt(pfn, ea, delta) -> bool + @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) + add_frame(pfn, frsize, frregs, argsize) -> bool + @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) + @retval: 1 - ok + @retval: 0 - failed (no function, frame already exists) 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 + add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int + @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 + add_user_stkpnt(ea, delta) -> bool + @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 + build_stkvar_name(pfn, v) -> str + @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 *) + build_stkvar_xrefs(out, pfn, mptr) + @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) + calc_stkvar_struc_offset(pfn, insn, n) -> ea_t + @param pfn: pointer to function (can't be NULL!) (C++: func_t *) + @param insn: the instruction - an ida_ua.insn_t, or an address (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 + define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool + @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 + del_frame(pfn) -> bool + @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 + del_regvar(pfn, ea1, ea2, canon) -> int + @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 + del_stkpnt(pfn, ea) -> bool + @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 + @param pfn (C++: func_t *) Help on function delete_wrong_stkvar_ops in module ida_frame: delete_wrong_stkvar_ops(*args) delete_wrong_stkvar_ops(pfn) -> int + @param pfn (C++: func_t *) 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 + find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t + @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 + + + find_regvar(pfn, ea, canon) -> regvar_t + @param pfn: function in question (C++: func_t *) + ea: ea_t + @param canon: name of a general 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 *) + frame_off_args(pfn) -> ea_t + @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 *) + frame_off_lvars(pfn) -> ea_t + @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 *) + frame_off_retaddr(pfn) -> ea_t + @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 *) + frame_off_savregs(pfn) -> ea_t + @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 + get_effective_spd(pfn, ea) -> sval_t + @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 *) + get_frame(pfn) -> struc_t + @param pfn: pointer to function structure (C++: const func_t *) + + + get_frame(ea) -> struc_t * + ea: ea_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) + get_frame_part(range, pfn, part) + @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 *) + get_frame_retsize(pfn) -> int + @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 + get_frame_size(pfn) -> asize_t + @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 + get_func_by_frame(frame_id) -> ea_t + @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 + @param pfn (C++: func_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. + get_sp_delta(pfn, ea) -> sval_t + @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. + get_spd(pfn, ea) -> sval_t + @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) @@ -10925,80 +11288,29 @@ get_stkvar(*args) 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) + has_regvar(pfn, ea) -> bool + @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) + pfn: func_t const * + frameoff: uval_t 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) + pfn: func_t const * + frameoff: 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 @@ -11007,7 +11319,10 @@ recalc_spd(*args) current instruction doesn't pass the execution flow to the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + recalc_spd(cur_ea) -> bool + @param cur_ea: linear address of the current instruction (C++: ea_t) + @retval: 1 - new stkpnt is added + @retval: 0 - nothing is changed Help on class regvar_t in module ida_frame: @@ -11052,43 +11367,66 @@ class regvar_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11112,77 +11450,67 @@ class regvar_t(ida_range.range_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 + rename_regvar(pfn, v, user) -> int + @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 + set_frame_size(pfn, frsize, frregs, argsize) -> bool + @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 + set_purged(ea, nbytes, override_old_value) -> bool + @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 + set_regvar_cmt(pfn, v, cmt) -> int + @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) + soff_to_fpoff(pfn, soff) -> sval_t + @param pfn (C++: func_t *) + @param soff (C++: uval_t) Help on class stkpnt_t in module ida_frame: @@ -11193,29 +11521,36 @@ class stkpnt_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: stkpnt_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: stkpnt_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: stkpnt_t const & | | __init__(self, *args) | __init__(self) -> stkpnt_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: stkpnt_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: stkpnt_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: stkpnt_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11250,29 +11585,36 @@ class stkpnts_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: stkpnts_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: stkpnts_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: stkpnts_t const & | | __init__(self, *args) | __init__(self) -> stkpnts_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: stkpnts_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: stkpnts_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: stkpnts_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: stkpnts_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11295,15 +11637,13 @@ class stkpnts_t(__builtin__.object) 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 + update_fpd(pfn, fpd) -> bool + @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: @@ -11314,15 +11654,37 @@ class xreflist_entry_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __ge__(self, *args) + | __ge__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __gt__(self, *args) + | __gt__(self, r) -> bool + | r: xreflist_entry_t const & | | __init__(self, *args) | __init__(self) -> xreflist_entry_t | + | __le__(self, *args) + | __le__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __lt__(self, *args) + | __lt__(self, r) -> bool + | r: xreflist_entry_t const & + | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: xreflist_entry_t const & | | __repr__ = _swig_repr(self) | + | compare(self, *args) + | compare(self, r) -> int + | r: xreflist_entry_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -11359,13 +11721,15 @@ class xreflist_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< xreflist_entry_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> xreflist_entry_t + | i: size_t | | __init__(self, *args) | __init__(self) -> xreflist_t - | __init__(self, x) -> xreflist_t + | 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. @@ -11375,20 +11739,26 @@ class xreflist_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< xreflist_entry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: xreflist_entry_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: xreflist_entry_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: xreflist_entry_t const & | | at(self, *args) | at(self, _idx) -> xreflist_entry_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -11412,52 +11782,74 @@ class xreflist_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> xreflist_entry_t + | it: qvector< xreflist_entry_t >::iterator + | + | | erase(self, first, last) -> xreflist_entry_t + | first: qvector< xreflist_entry_t >::iterator + | last: qvector< xreflist_entry_t >::iterator | | extract(self, *args) | extract(self) -> xreflist_entry_t | | find(self, *args) | find(self, x) -> xreflist_entry_t + | x: xreflist_entry_t const & + | + | | find(self, x) -> xreflist_entry_t + | x: xreflist_entry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=xreflist_entry_t()) + | x: xreflist_entry_t const & | | has(self, *args) | has(self, x) -> bool + | x: xreflist_entry_t const & | | inject(self, *args) | inject(self, s, len) + | s: xreflist_entry_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> xreflist_entry_t + | it: qvector< xreflist_entry_t >::iterator + | x: xreflist_entry_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> xreflist_entry_t + | x: xreflist_entry_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: xreflist_entry_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< xreflist_entry_t > & | | truncate(self, *args) | truncate(self) @@ -11511,210 +11903,465 @@ variable size 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 + add_func(ea1, ea2=BADADDR) -> bool + @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 + add_func_ex(pfn) -> bool + @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) + @param pfn (C++: func_t *) + @param reg (C++: int) + @param tif (C++: const tinfo_t &) + @param name (C++: const char *) 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) + append_func_tail(pfn, ea1, ea2) -> bool + @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 + apply_idasgn_to(signame, ea, is_startup) -> int + @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 + apply_startup_sig(ea, startup) -> bool + @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 *) + calc_func_size(pfn) -> asize_t + @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 + calc_idasgn_state(n) -> int + @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 + calc_thunk_func_target(pfn) -> ea_t + @param pfn: pointer to function (may not be nullptr) (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 + del_func(ea) -> bool + @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 + del_idasgn(n) -> int + @param n: number of signature in the list (0.. get_idasgn_qty() -1) + (C++: int) + @return: IDASGN_OK , IDASGN_BADARG , IDASGN_APPLIED + +Help on class dyn_ea_array in module ida_funcs: + +class dyn_ea_array(__builtin__.object) + | Proxy of C++ dynamic_wrapped_array_t< ea_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_ea_array + | _data: unsigned-ea-like-numeric-type *↗ + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: unsigned-ea-like-numeric-type const &↗ + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_ea_array_count_get(self) -> size_t + | + | data + | dyn_ea_array_data_get(self) -> unsigned-ea-like-numeric-type *↗ + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_ea_array(self) + +Help on class dyn_range_array in module ida_funcs: + +class dyn_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 + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_range_array + | _data: range_t * + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: range_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_range_array_count_get(self) -> size_t + | + | data + | dyn_range_array_data_get(self) -> range_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_range_array(self) + +Help on class dyn_regarg_array in module ida_funcs: + +class dyn_regarg_array(__builtin__.object) + | Proxy of C++ dynamic_wrapped_array_t< regarg_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) + | __getitem__(self, i) -> regarg_t + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regarg_array + | _data: regarg_t * + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: regarg_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_regarg_array_count_get(self) -> size_t + | + | data + | dyn_regarg_array_data_get(self) -> regarg_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_regarg_array(self) + +Help on class dyn_regvar_array in module ida_funcs: + +class dyn_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 & + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regvar_array + | _data: regvar_t * + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: regvar_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_regvar_array_count_get(self) -> size_t + | + | data + | dyn_regvar_array_data_get(self) -> regvar_t * + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_regvar_array(self) + +Help on class dyn_stkpnt_array in module ida_funcs: + +class dyn_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 & + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_stkpnt_array + | _data: stkpnt_t * + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: stkpnt_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_stkpnt_array_count_get(self) -> size_t + | + | data + | dyn_stkpnt_array_data_get(self) -> stkpnt_t * + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_stkpnt_array(self) Help on function f_any in module ida_funcs: f_any(*args) - f_any(arg1, arg2) -> bool - - Helper function to accept any address. + + f_any(arg1, arg2) -> bool + arg1: flags_t + arg2: void * 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 + find_func_bounds(nfn, flags) -> int + @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) + func_contains(pfn, ea) -> bool + @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) + func_does_return(callee) -> bool + @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 + fii: func_item_iterator_t * + visited: eavec_t * + p_farref: bool * + out: insn_t * 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 + fii: func_item_iterator_t * + out: insn_t * Help on function func_item_iterator_next in module ida_funcs: func_item_iterator_next(*args) func_item_iterator_next(fii, testf, ud) -> bool + fii: func_item_iterator_t * + testf: testf_t * + ud: void * Help on function func_item_iterator_prev in module ida_funcs: func_item_iterator_prev(*args) func_item_iterator_prev(fii, testf, ud) -> bool + fii: func_item_iterator_t * + testf: testf_t * + ud: void * Help on class func_item_iterator_t in module ida_funcs: @@ -11725,10 +12372,13 @@ class func_item_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_item_iterator_t - | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t + | pfn: func_t * + | _ea: ea_t | | __next__(self, *args) | __next__(self, func, ud) -> bool + | func: testf_t * + | ud: void * | | __repr__ = _swig_repr(self) | @@ -11740,9 +12390,13 @@ class func_item_iterator_t(__builtin__.object) | | decode_preceding_insn(self, *args) | decode_preceding_insn(self, visited, p_farref, out) -> bool + | @param visited (C++: eavec_t *) + | @param p_farref (C++: bool *) + | @param out (C++: insn_t *) | | decode_prev_insn(self, *args) | decode_prev_insn(self, out) -> bool + | @param out (C++: insn_t *) | | first(self, *args) | first(self) -> bool @@ -11769,6 +12423,8 @@ class func_item_iterator_t(__builtin__.object) | | prev(self, *args) | prev(self, func, ud) -> bool + | @param func (C++: testf_t *) + | @param ud (C++: void *) | | prev_addr(self, *args) | prev_addr(self) -> bool @@ -11786,10 +12442,19 @@ class func_item_iterator_t(__builtin__.object) | prev_not_tail(self) -> bool | | set(self, *args) + | Set a function range. if pfn == nullptr then a segment range will be + | set. + | | set(self, pfn, _ea=BADADDR) -> bool + | @param pfn (C++: func_t *) + | @param _ea (C++: ea_t) | | set_range(self, *args) + | Set an arbitrary range. + | | set_range(self, ea1, ea2) -> bool + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11813,6 +12478,8 @@ Help on function func_parent_iterator_set in module ida_funcs: func_parent_iterator_set(*args) func_parent_iterator_set(fpi, pfn) -> bool + fpi: func_parent_iterator_t * + pfn: func_t * Help on class func_parent_iterator_t in module ida_funcs: @@ -11823,7 +12490,7 @@ class func_parent_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_parent_iterator_t - | __init__(self, _fnt) -> func_parent_iterator_t + | _fnt: func_t * | | __next__(self, *args) | __next__(self) -> bool @@ -11846,9 +12513,11 @@ class func_parent_iterator_t(__builtin__.object) | | reset_fnt(self, *args) | reset_fnt(self, _fnt) + | @param _fnt (C++: func_t *) | | set(self, *args) | set(self, _fnt) -> bool + | @param _fnt (C++: func_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11881,30 +12550,39 @@ class func_t(ida_range.range_t) | Methods defined here: | | __get_points__(self, *args) - | __get_points__(self) -> stkpnt_array + | __get_points__(self) -> dyn_stkpnt_array + | + | __get_referers__(self, *args) + | __get_referers__(self) -> dyn_ea_array + | + | __get_regargs__(self, *args) + | __get_regargs__(self) -> dyn_regarg_array | | __get_regvars__(self, *args) - | __get_regvars__(self) -> regvar_array + | __get_regvars__(self) -> dyn_regvar_array | | __get_tails__(self, *args) - | __get_tails__(self) -> range_array + | __get_tails__(self) -> dyn_range_array | | __init__(self, *args) | __init__(self, start=0, end=0, f=0) -> func_t + | start: ea_t + | end: ea_t + | f: flags_t | | __repr__ = _swig_repr(self) | | analyzed_sp(self, *args) - | analyzed_sp(self) -> bool + | Has SP-analysis been performed? | | does_return(self, *args) - | does_return(self) -> bool + | Does function return? | | is_far(self, *args) - | is_far(self) -> bool + | Is a far function? | | need_prolog_analysis(self, *args) - | need_prolog_analysis(self) -> bool + | Needs prolog analysis? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11930,12 +12608,6 @@ class func_t(ida_range.range_t) | 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 | @@ -11943,10 +12615,10 @@ class func_t(ida_range.range_t) | func_t_pntqty_get(self) -> uint32 | | 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 @@ -11955,19 +12627,19 @@ class func_t(ida_range.range_t) | func_t_regargqty_get(self) -> int | | regargs - | func_t_regargs_get(self) -> regarg_t + | __get_regargs__(self) -> dyn_regarg_array | | regvarqty | func_t_regvarqty_get(self) -> int | | regvars - | __get_regvars__(self) -> regvar_array + | __get_regvars__(self) -> dyn_regvar_array | | tailqty | func_t_tailqty_get(self) -> int | | tails - | __get_tails__(self) -> range_array + | __get_tails__(self) -> dyn_range_array | | thisown | The membership flag @@ -11983,43 +12655,66 @@ class func_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -12044,16 +12739,22 @@ Help on function func_t__from_ptrval__ in module ida_funcs: func_t__from_ptrval__(*args) func_t__from_ptrval__(ptrval) -> func_t + ptrval: size_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 + fti: func_tail_iterator_t * + pfn: func_t * + ea: ea_t 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 + fti: func_tail_iterator_t * + ea: ea_t Help on class func_tail_iterator_t in module ida_funcs: @@ -12064,7 +12765,8 @@ class func_tail_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_tail_iterator_t - | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t + | _pfn: func_t * + | ea: ea_t | | __next__(self, *args) | __next__(self) -> bool @@ -12090,12 +12792,17 @@ class func_tail_iterator_t(__builtin__.object) | | set(self, *args) | set(self, _pfn, ea=BADADDR) -> bool + | @param _pfn (C++: func_t *) + | @param ea (C++: ea_t) | | set_ea(self, *args) | set_ea(self, ea) -> bool + | @param ea (C++: ea_t) | | set_range(self, *args) | set_range(self, ea1, ea2) -> bool + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12118,169 +12825,140 @@ class func_tail_iterator_t(__builtin__.object) 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. + get_fchunk(ea) -> func_t + @param ea: any address in a function chunk (C++: ea_t) + @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) - 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'. + get_fchunk_num(ea) -> int + @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 + ea: ea_t + idx: size_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. + get_func(ea) -> func_t + @param ea: any address in a function (C++: ea_t) + @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) - get_func_bitness(pfn) -> int - - Get function bitness (which is equal to the function segment bitness). - pfn==NULL => returns 0 + pfn==nullptr => returns 0 - @param pfn (C++: const func_t *) + get_func_bitness(pfn) -> int + @param pfn (C++: const func_t *) + @retval: 0 - 16 + @retval: 1 - 32 + @retval: 2 - 64 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 *) + get_func_bits(pfn) -> int + @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 *) + get_func_bytes(pfn) -> int + @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) + get_func_chunknum(pfn, ea) -> int + @param pfn (C++: func_t *) + @param ea (C++: ea_t) + @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 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. + get_func_cmt(pfn, repeatable) -> str + @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 + get_func_name(ea) -> str + @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'. + get_func_num(ea) -> int + @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) + get_func_ranges(ranges, pfn) -> ea_t + @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) @@ -12293,8 +12971,6 @@ 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) @@ -12304,173 +12980,140 @@ get_idasgn_desc_with_matches(*args) 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 + get_idasgn_title(name) -> str + @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 + get_next_fchunk(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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) - 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 + get_next_func(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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) get_next_func_addr(pfn, ea) -> ea_t + @param pfn (C++: func_t *) + @param ea (C++: 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 + get_prev_fchunk(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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) - 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 + get_prev_func(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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) get_prev_func_addr(pfn, ea) -> ea_t + @param pfn (C++: func_t *) + @param ea (C++: 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. + getn_fchunk(n) -> func_t + @param n: number of function chunk, is in range 0.. get_fchunk_qty() + -1 (C++: int) + @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) - 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. + getn_func(n) -> func_t + @param n: number of function, is in range 0.. get_func_qty() -1 (C++: + size_t) + @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) - is_finally_visible_func(pfn) -> bool - - Is the function visible (event after considering 'SCF_SHHID_FUNC' )? - - @param pfn (C++: func_t *) + is_finally_visible_func(pfn) -> bool + @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 *) + is_func_entry(pfn) -> bool + @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 *) + is_func_locked(pfn) -> bool + @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 *) + is_func_tail(pfn) -> bool + @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) + is_same_func(ea1, ea2) -> bool + @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 *) + is_visible_func(pfn) -> bool + @param pfn (C++: func_t *) Help on class lock_func in module ida_funcs: @@ -12481,6 +13124,7 @@ class lock_func(__builtin__.object) | | __init__(self, *args) | __init__(self, _pfn) -> lock_func + | _pfn: func_t const * | | __repr__ = _swig_repr(self) | @@ -12505,110 +13149,55 @@ class lock_func(__builtin__.object) 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) + lock_func_range(pfn, lock) + @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) + plan_to_apply_idasgn(fname) -> int + @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 read_regargs in module ida_funcs: read_regargs(*args) read_regargs(pfn) + @param pfn (C++: func_t *) 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) + reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) + @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) + reanalyze_noret_flag(ea) -> bool + @param ea (C++: ea_t) Help on class regarg_t in module ida_funcs: @@ -12649,233 +13238,117 @@ class regarg_t(__builtin__.object) | __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) + remove_func_tail(pfn, tail_ea) -> bool + @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) + set_func_cmt(pfn, cmt, repeatable) -> bool + @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 + set_func_end(ea, newend) -> bool + @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 + set_func_name_if_jumpfunc(pfn, oldname) -> int + @param pfn: pointer to function (may be nullptr) (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 nullptr. (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 + set_func_start(ea, newstart) -> int + @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 + set_noret_insn(insn_ea, noret) -> 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) - 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) + set_tail_owner(fnt, func_start) -> bool + @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) + set_visible_func(pfn, visible) + @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) - 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 + try_to_add_libfunc(ea) -> int + @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 + update_func(pfn) -> bool + @param pfn: ptr to function structure (C++: func_t *) + @return: success === ida_funcs EPYDOC INJECTIONS === ida_funcs.FIND_FUNC_DEFINE @@ -13124,7 +13597,7 @@ class FlowChart(__builtin__.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) | @@ -13147,112 +13620,95 @@ class FlowChart(__builtin__.object) 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 + display_gdl(fname) -> int + @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 + gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool + @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 + gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool + @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 *) + gen_gdl(g, fname) + @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 + gen_simple_call_chart(filename, wait, title, gflags) -> bool + @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) + is_noret_block(btype) -> bool + @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) + is_ret_block(btype) -> bool + @param btype (C++: fc_block_type_t) Help on class node_iterator in module ida_gdl: @@ -13263,12 +13719,16 @@ class node_iterator(__builtin__.object) | | __eq__(self, *args) | __eq__(self, n) -> bool + | n: node_iterator const & | | __init__(self, *args) | __init__(self, _g, n) -> node_iterator + | _g: gdl_graph_t const * + | n: int | | __ne__(self, *args) | __ne__(self, n) -> bool + | n: node_iterator const & | | __ref__(self, *args) | __ref__(self) -> int @@ -13327,43 +13787,66 @@ class qbasic_block_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -13393,46 +13876,75 @@ class qflow_chart_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, n) -> qbasic_block_t + | n: int | | __init__(self, *args) | __init__(self) -> qflow_chart_t - | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | _title: char const * + | _pfn: func_t * + | _ea1: ea_t + | _ea2: ea_t + | _flags: int | | __repr__ = _swig_repr(self) | | append_to_flowchart(self, *args) | append_to_flowchart(self, ea1, ea2) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | calc_block_type(self, *args) | calc_block_type(self, blknum) -> fc_block_type_t + | @param blknum (C++: size_t) | | create(self, *args) | create(self, _title, _pfn, _ea1, _ea2, _flags) + | @param _title (C++: const char *) + | @param _pfn (C++: func_t *) + | @param _ea1 (C++: ea_t) + | @param _ea2 (C++: ea_t) + | @param _flags (C++: int) + | + | | create(self, _title, ranges, _flags) + | @param _title (C++: const char *) + | ranges: rangevec_t const & + | @param _flags (C++: int) | | get_node_label(self, *args) | get_node_label(self, arg2, arg3, arg4) -> char * + | arg2: char * + | arg3: int + | arg4: int | | is_noret_block(self, *args) | is_noret_block(self, blknum) -> bool + | @param blknum (C++: size_t) | | is_ret_block(self, *args) | is_ret_block(self, blknum) -> bool + | @param blknum (C++: size_t) | | npred(self, *args) | npred(self, node) -> int + | @param node (C++: int) | | nsucc(self, *args) | nsucc(self, node) -> int + | @param node (C++: int) | | pred(self, *args) | pred(self, node, i) -> int + | @param node (C++: int) + | @param i (C++: int) | | print_names(self, *args) | print_names(self) -> bool | | print_node_attributes(self, *args) | print_node_attributes(self, arg2, arg3) + | arg2: FILE * + | arg3: int | | refresh(self, *args) | refresh(self) @@ -13442,6 +13954,8 @@ class qflow_chart_t(__builtin__.object) | | succ(self, *args) | succ(self, node, i) -> int + | @param node (C++: int) + | @param i (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13543,6 +14057,11 @@ ida_gdl.FC_APPND multirange flowchart (set by append_to_flowchart) """ +ida_gdl.FC_CALL_ENDS +""" +call instructions terminate basic blocks +""" + ida_gdl.FC_CHKBREAK """ build_qflow_chart() may be aborted by user @@ -13556,9 +14075,9 @@ targets of those outgoing jumps will be present in the flow chart under the form of one-instruction blocks """ -ida_gdl.FC_PREDS +ida_gdl.FC_NOPREDS """ -compute predecessor lists +do not compute predecessor lists """ ida_gdl.FC_PRINT @@ -13772,7 +14291,10 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_kernwin.View_Hooks: @@ -13801,25 +14323,33 @@ class TPointDouble(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: TPointDouble const & | | __init__(self, *args) | __init__(self) -> TPointDouble - | __init__(self, a, b) -> TPointDouble + | a: double + | b: double + | + | | __init__(self, r) -> TPointDouble + | r: point_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: TPointDouble const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, r) + | @param r (C++: const TPointDouble &) | | negate(self, *args) | negate(self) | | sub(self, *args) | sub(self, r) + | @param r (C++: const TPointDouble &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13848,106 +14378,88 @@ class TPointDouble(__builtin__.object) 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) + calc_dist(p, q) -> double + @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) + clr_node_info(gid, node, flags) + @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'. + create_disasm_graph(ea) -> mutable_graph_t + @param ea (C++: ea_t) - @param ea (C++: ea_t) + + create_disasm_graph(ranges) -> mutable_graph_t + ranges: rangevec_t const & 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 + create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * + @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) + create_mutable_graph(id) -> mutable_graph_t + @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) + create_user_graph_place(node, lnnum) -> user_graph_place_t + @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) + del_node_info(gid, 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 *) + delete_mutable_graph(g) + @param g (C++: mutable_graph_t *) Help on class edge_info_t in module ida_graph: @@ -14035,19 +14547,26 @@ class edge_layout_point_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: edge_layout_point_t const & | | __init__(self, *args) | __init__(self) -> edge_layout_point_t - | __init__(self, r) -> edge_layout_point_t + | r: edge_layout_point_t const & + | + | | __init__(self, _e, _pidx) -> edge_layout_point_t + | _e: edge_t const & + | _pidx: int | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: edge_layout_point_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | @param r (C++: const edge_layout_point_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14085,6 +14604,7 @@ class edge_segment_t(__builtin__.object) | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: edge_segment_t const & | | __repr__ = _swig_repr(self) | @@ -14133,16 +14653,20 @@ class edge_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, y) -> bool + | y: edge_t const & | | __init__(self, *args) | __init__(self) -> edge_t - | __init__(self, x, y) -> edge_t + | x: int + | y: int | | __lt__(self, *args) | __lt__(self, y) -> bool + | y: edge_t const & | | __ne__(self, *args) | __ne__(self, y) -> bool + | y: edge_t const & | | __repr__ = _swig_repr(self) | @@ -14173,37 +14697,29 @@ class edge_t(__builtin__.object) 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 *) + get_graph_viewer(parent) -> graph_viewer_t * + @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 + get_node_info(out, gid, node) -> bool + @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 *) + get_viewer_graph(gv) -> mutable_graph_t + @param gv (C++: graph_viewer_t *) Help on class graph_item_t in module ida_graph: @@ -14270,23 +14786,37 @@ class graph_node_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_node_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | is_forbidden_edge(self, *args) + | Should the edge between 'n' and 'm' be ignored? + | | is_forbidden_edge(self, arg0, arg1) -> bool + | arg0: int + | arg1: int | | is_visited(self, *args) + | Have we already visited the given node? + | | is_visited(self, n) -> bool + | @param n (C++: int) | | reinit(self, *args) - | reinit(self) + | Reset visited nodes. | | set_visited(self, *args) + | Mark node as visited. + | | set_visited(self, n) + | @param n (C++: int) | | visit_node(self, *args) + | Implements action to take when a node is visited. + | | visit_node(self, arg0) -> int + | arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14317,14 +14847,17 @@ class graph_path_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_path_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | walk_backward(self, *args) | walk_backward(self, arg0) -> int + | arg0: int | | walk_forward(self, *args) | walk_forward(self, arg0) -> int + | arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14361,14 +14894,19 @@ class graph_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_edge(self, *args) | visit_edge(self, arg2, arg3) -> int + | arg2: edge_t + | arg3: edge_info_t * | | visit_node(self, *args) | visit_node(self, arg2, arg3) -> int + | arg2: int + | arg3: rect_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14433,34 +14971,44 @@ class interval_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: interval_t const & | | __init__(self, *args) | __init__(self) -> interval_t - | __init__(self, y0, y1) -> interval_t + | y0: int + | y1: int + | + | | __init__(self, s) -> interval_t + | s: edge_segment_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: interval_t const & | | __repr__ = _swig_repr(self) | | contains(self, *args) | contains(self, x) -> bool + | @param x (C++: int) | | empty(self, *args) | empty(self) -> bool | | intersect(self, *args) | intersect(self, r) + | @param r (C++: const interval_t &) | | length(self, *args) | length(self) -> int | | make_union(self, *args) | make_union(self, r) + | @param r (C++: const interval_t &) | | move_by(self, *args) | move_by(self, shift) + | @param shift (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14501,9 +15049,12 @@ class mutable_graph_t(__builtin__.object) | | calc_group_ea(self, *args) | calc_group_ea(self, arg0) -> ea_t + | arg0: intvec_t const & | | change_group_visibility(self, *args) | change_group_visibility(self, group, expand) -> bool + | @param group (C++: int) + | @param expand (C++: bool) | | clear(self, *args) | clear(self) @@ -14513,88 +15064,115 @@ class mutable_graph_t(__builtin__.object) | | create_group(self, *args) | create_group(self, nodes) -> int + | @param nodes (C++: const intvec_t &) | | del_custom_layout(self, *args) | del_custom_layout(self) | | delete_group(self, *args) | delete_group(self, group) -> bool + | @param group (C++: int) | | empty(self, *args) | empty(self) -> bool | | exists(self, *args) | exists(self, node) -> bool + | @param node (C++: int) | | get_custom_layout(self, *args) | get_custom_layout(self) -> bool | | get_edge(self, *args) | get_edge(self, e) -> edge_info_t + | @param e (C++: edge_t) | | get_first_subgraph_node(self, *args) | get_first_subgraph_node(self, group) -> int + | @param group (C++: 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 + | @param group (C++: int) + | @param current (C++: int) | | get_node_group(self, *args) | get_node_group(self, node) -> int + | @param node (C++: int) | | get_node_representative(self, *args) | get_node_representative(self, node) -> int + | @param node (C++: int) | | is_collapsed_node(self, *args) | is_collapsed_node(self, node) -> bool + | @param node (C++: int) | | is_deleted_node(self, *args) | is_deleted_node(self, node) -> bool + | @param node (C++: int) | | is_displayable_node(self, *args) | is_displayable_node(self, node) -> bool + | @param node (C++: int) | | is_dot_node(self, *args) | is_dot_node(self, node) -> bool + | @param node (C++: int) | | is_group_node(self, *args) | is_group_node(self, node) -> bool + | @param node (C++: int) | | is_simple_node(self, *args) | is_simple_node(self, node) -> bool + | @param node (C++: int) | | is_subgraph_node(self, *args) | is_subgraph_node(self, node) -> bool + | @param node (C++: int) | | is_uncollapsed_node(self, *args) | is_uncollapsed_node(self, node) -> bool + | @param node (C++: int) | | is_user_graph(self, *args) | is_user_graph(self) -> bool | | is_visible_node(self, *args) | is_visible_node(self, node) -> bool + | @param node (C++: int) | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, b) -> int + | @param b (C++: int) | | nrect(self, *args) | nrect(self, n) -> rect_t + | @param n (C++: int) + | + | | nrect(self, n) -> rect_t + | @param n (C++: int) | | nsucc(self, *args) | nsucc(self, b) -> int + | @param b (C++: int) | | pred(self, *args) | pred(self, b, i) -> int + | @param b (C++: int) + | @param i (C++: int) | | predset(self, *args) | predset(self, b) -> intvec_t const & + | @param b (C++: int) | | reset(self, *args) | reset(self) @@ -14604,24 +15182,32 @@ class mutable_graph_t(__builtin__.object) | | set_deleted_node(self, *args) | set_deleted_node(self, node) + | @param node (C++: int) | | set_edge(self, *args) | set_edge(self, e, ei) -> bool + | @param e (C++: edge_t) + | @param ei (C++: const edge_info_t *) | | set_graph_groups(self, *args) | set_graph_groups(self) | | set_node_group(self, *args) | set_node_group(self, node, group) + | @param node (C++: int) + | @param group (C++: int) | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, b, i) -> int + | @param b (C++: int) + | @param i (C++: int) | | succset(self, *args) | succset(self, b) -> intvec_t const & + | @param b (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14681,22 +15267,23 @@ class node_info_t(__builtin__.object) | __repr__ = _swig_repr(self) | | get_flags_for_valid(self, *args) - | get_flags_for_valid(self) -> uint32 + | Get combination of 'Node info flags' describing which attributes are + | valid. | | valid_bg_color(self, *args) - | valid_bg_color(self) -> bool + | Has valid 'bg_color' ? | | valid_ea(self, *args) - | valid_ea(self) -> bool + | Has valid 'ea' ? | | valid_flags(self, *args) - | valid_flags(self) -> bool + | Has valid 'flags' ? | | valid_frame_color(self, *args) - | valid_frame_color(self) -> bool + | Has valid 'frame_color' ? | | valid_text(self, *args) - | valid_text(self) -> bool + | Has non-empty 'text' ? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14740,13 +15327,15 @@ class node_layout_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< rect_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> rect_t + | i: size_t | | __init__(self, *args) | __init__(self) -> node_layout_t - | __init__(self, x) -> node_layout_t + | x: qvector< rect_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -14756,20 +15345,26 @@ class node_layout_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< rect_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: rect_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: rect_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: rect_t const & | | at(self, *args) | at(self, _idx) -> rect_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -14793,52 +15388,74 @@ class node_layout_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> rect_t + | it: qvector< rect_t >::iterator + | + | | erase(self, first, last) -> rect_t + | first: qvector< rect_t >::iterator + | last: qvector< rect_t >::iterator | | extract(self, *args) | extract(self) -> rect_t | | find(self, *args) | find(self, x) -> rect_t + | x: rect_t const & + | + | | find(self, x) -> rect_t + | x: rect_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=rect_t()) + | x: rect_t const & | | has(self, *args) | has(self, x) -> bool + | x: rect_t const & | | inject(self, *args) | inject(self, s, len) + | s: rect_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> rect_t + | it: qvector< rect_t >::iterator + | x: rect_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> rect_t + | x: rect_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: rect_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< rect_t > & | | truncate(self, *args) | truncate(self) @@ -14878,12 +15495,16 @@ class node_ordering_t(__builtin__.object) | | node(self, *args) | node(self, _order) -> int + | @param _order (C++: size_t) | | resize(self, *args) | resize(self, n) + | @param n (C++: int) | | set(self, *args) | set(self, _node, num) + | @param _node (C++: int) + | @param num (C++: int) | | size(self, *args) | size(self) -> size_t @@ -14915,24 +15536,29 @@ class point_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: point_t const & | | __init__(self, *args) | __init__(self) -> point_t - | __init__(self, _x, _y) -> point_t + | _x: int + | _y: int | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: point_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, r) -> point_t + | @param r (C++: const point_t &) | | negate(self, *args) | negate(self) | | sub(self, *args) | sub(self, r) -> point_t + | @param r (C++: const point_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14992,9 +15618,11 @@ class pointseq_t(pointvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< point_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> point_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15004,18 +15632,24 @@ class pointseq_t(pointvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< point_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: point_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: point_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: point_t const & | | at(self, *args) | at(self, _idx) -> point_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15039,52 +15673,74 @@ class pointseq_t(pointvec_t) | | erase(self, *args) | erase(self, it) -> point_t + | it: qvector< point_t >::iterator + | + | | erase(self, first, last) -> point_t + | first: qvector< point_t >::iterator + | last: qvector< point_t >::iterator | | extract(self, *args) | extract(self) -> point_t | | find(self, *args) | find(self, x) -> point_t + | x: point_t const & + | + | | find(self, x) -> point_t + | x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=point_t()) + | x: point_t const & | | has(self, *args) | has(self, x) -> bool + | x: point_t const & | | inject(self, *args) | inject(self, s, len) + | s: point_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> point_t + | it: qvector< point_t >::iterator + | x: point_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> point_t + | x: point_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: point_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< point_t > & | | truncate(self, *args) | truncate(self) @@ -15107,13 +15763,15 @@ class pointvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< point_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> point_t + | i: size_t | | __init__(self, *args) | __init__(self) -> pointvec_t - | __init__(self, x) -> pointvec_t + | x: qvector< point_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15123,20 +15781,26 @@ class pointvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< point_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: point_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: point_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: point_t const & | | at(self, *args) | at(self, _idx) -> point_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15160,52 +15824,74 @@ class pointvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> point_t + | it: qvector< point_t >::iterator + | + | | erase(self, first, last) -> point_t + | first: qvector< point_t >::iterator + | last: qvector< point_t >::iterator | | extract(self, *args) | extract(self) -> point_t | | find(self, *args) | find(self, x) -> point_t + | x: point_t const & + | + | | find(self, x) -> point_t + | x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=point_t()) + | x: point_t const & | | has(self, *args) | has(self, x) -> bool + | x: point_t const & | | inject(self, *args) | inject(self, s, len) + | s: point_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> point_t + | it: qvector< point_t >::iterator + | x: point_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> point_t + | x: point_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: point_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< point_t > & | | truncate(self, *args) | truncate(self) @@ -15232,16 +15918,20 @@ Help on function pyg_close in module ida_graph: pyg_close(*args) pyg_close(_self) + self: PyObject * Help on function pyg_select_node in module ida_graph: pyg_select_node(*args) pyg_select_node(_self, nid) + self: PyObject * + nid: int Help on function pyg_show in module ida_graph: pyg_show(*args) pyg_show(_self) -> bool + self: PyObject * Help on class rect_t in module ida_graph: @@ -15252,14 +15942,23 @@ class rect_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: rect_t const & | | __init__(self, *args) | __init__(self) -> rect_t - | __init__(self, l, t, r, b) -> rect_t + | l: int + | t: int + | r: int + | b: int + | + | | __init__(self, p0, p1) -> rect_t + | p0: point_t const & + | p1: point_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: rect_t const & | | __repr__ = _swig_repr(self) | @@ -15274,30 +15973,37 @@ class rect_t(__builtin__.object) | | contains(self, *args) | contains(self, p) -> bool + | @param p (C++: const point_t &) | | empty(self, *args) | empty(self) -> bool | | grow(self, *args) | grow(self, delta) + | @param delta (C++: int) | | height(self, *args) | height(self) -> int | | intersect(self, *args) | intersect(self, r) + | @param r (C++: const rect_t &) | | is_intersection_empty(self, *args) | is_intersection_empty(self, r) -> bool + | @param r (C++: const rect_t &) | | make_union(self, *args) | make_union(self, r) + | @param r (C++: const rect_t &) | | move_by(self, *args) | move_by(self, p) + | @param p (C++: const point_t &) | | move_to(self, *args) | move_to(self, p) + | @param p (C++: const point_t &) | | topleft(self, *args) | topleft(self) -> point_t @@ -15338,13 +16044,10 @@ class rect_t(__builtin__.object) 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 *) + refresh_viewer(gv) + @param gv (C++: graph_viewer_t *) Help on class row_info_t in module ida_graph: @@ -15397,13 +16100,15 @@ class screen_graph_selection_base_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> selection_item_t + | i: size_t | | __init__(self, *args) | __init__(self) -> screen_graph_selection_base_t - | __init__(self, x) -> screen_graph_selection_base_t + | 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. @@ -15413,20 +16118,26 @@ class screen_graph_selection_base_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: selection_item_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: selection_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: selection_item_t const & | | at(self, *args) | at(self, _idx) -> selection_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15450,52 +16161,74 @@ class screen_graph_selection_base_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | + | | erase(self, first, last) -> selection_item_t + | first: qvector< selection_item_t >::iterator + | last: qvector< selection_item_t >::iterator | | extract(self, *args) | extract(self) -> selection_item_t | | find(self, *args) | find(self, x) -> selection_item_t + | x: selection_item_t const & + | + | | find(self, x) -> selection_item_t + | x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=selection_item_t()) + | x: selection_item_t const & | | has(self, *args) | has(self, x) -> bool + | x: selection_item_t const & | | inject(self, *args) | inject(self, s, len) + | s: selection_item_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | x: selection_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> selection_item_t + | x: selection_item_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: selection_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< selection_item_t > & | | truncate(self, *args) | truncate(self) @@ -15537,24 +16270,33 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | add(self, *args) | add(self, s) + | @param s (C++: const screen_graph_selection_t &) | | add_node(self, *args) | add_node(self, node) + | @param node (C++: int) | | add_point(self, *args) | add_point(self, e, idx) + | @param e (C++: edge_t) + | @param idx (C++: int) | | del_node(self, *args) | del_node(self, node) + | @param node (C++: int) | | del_point(self, *args) | del_point(self, e, idx) + | @param e (C++: edge_t) + | @param idx (C++: int) | | has(self, *args) | has(self, item) -> bool + | @param item (C++: const selection_item_t &) | | items_count(self, *args) | items_count(self, look_for_nodes) -> size_t + | @param look_for_nodes (C++: bool) | | nodes_count(self, *args) | nodes_count(self) -> size_t @@ -15564,6 +16306,7 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | sub(self, *args) | sub(self, s) + | @param s (C++: const screen_graph_selection_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15582,9 +16325,11 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> selection_item_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15594,18 +16339,24 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: selection_item_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: selection_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: selection_item_t const & | | at(self, *args) | at(self, _idx) -> selection_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15629,49 +16380,70 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | erase(self, *args) | erase(self, it) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | + | | erase(self, first, last) -> selection_item_t + | first: qvector< selection_item_t >::iterator + | last: qvector< selection_item_t >::iterator | | extract(self, *args) | extract(self) -> selection_item_t | | find(self, *args) | find(self, x) -> selection_item_t + | x: selection_item_t const & + | + | | find(self, x) -> selection_item_t + | x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=selection_item_t()) + | x: selection_item_t const & | | inject(self, *args) | inject(self, s, len) + | s: selection_item_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | x: selection_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> selection_item_t + | x: selection_item_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: selection_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< selection_item_t > & | | truncate(self, *args) | truncate(self) @@ -15694,23 +16466,34 @@ class selection_item_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: selection_item_t const & | | __init__(self, *args) | __init__(self) -> selection_item_t - | __init__(self, n) -> selection_item_t + | n: int + | + | | __init__(self, _elp) -> selection_item_t + | _elp: edge_layout_point_t & + | + | | __init__(self, e, idx) -> selection_item_t + | e: edge_t + | idx: int | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: selection_item_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: selection_item_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | @param r (C++: const selection_item_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15742,28 +16525,23 @@ class selection_item_t(__builtin__.object) 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) + set_node_info(gid, node, ni, flags) + @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 *) + set_viewer_graph(gv, g) + @param gv (C++: graph_viewer_t *) + @param g (C++: mutable_graph_t *) Help on class user_graph_place_t in module ida_graph: @@ -15800,34 +16578,26 @@ class user_graph_place_t(__builtin__.object) 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 + viewer_attach_menu_item(g, name) -> bool + @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) + viewer_center_on(gv, 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 @@ -15837,151 +16607,123 @@ viewer_create_groups(*args) 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 &) + viewer_create_groups(gv, out_group_nodes, gi) -> bool + @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) + viewer_del_node_info(gv, n) + @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) + viewer_delete_groups(gv, groups, new_current=-1) -> bool + @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 *) + viewer_fit_window(gv) + @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 *) + viewer_get_curnode(gv) -> int + @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) + viewer_get_gli(out, gv, flags=0) -> bool + @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) + viewer_get_node_info(gv, out, n) -> bool + @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 *) + viewer_get_selection(gv, sgs) -> bool + @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) + viewer_set_gli(gv, gli, flags=0) + @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) + viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool + @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) + viewer_set_node_info(gv, n, ni, flags) + @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) + viewer_set_titlebar_height(gv, height) -> int + @param gv (C++: graph_viewer_t *) + @param height (C++: int) === ida_graph EPYDOC INJECTIONS === ida_graph.GLICTL_CENTER @@ -16008,27 +16750,27 @@ slowing down significantly (see MAX_VISIBLE_NODE_AREA) ida_graph.NIF_BG_COLOR """ - 'node_info_t::bg_color' +'node_info_t::bg_color' """ ida_graph.NIF_EA """ - 'node_info_t::ea' +'node_info_t::ea' """ ida_graph.NIF_FLAGS """ - 'node_info_t::flags' +'node_info_t::flags' """ ida_graph.NIF_FRAME_COLOR """ - 'node_info_t::frame_color' +'node_info_t::frame_color' """ ida_graph.NIF_TEXT """ - 'node_info_t::text' +'node_info_t::text' """ === ida_graph EPYDOC INJECTIONS END === Help on class DecompilationFailure in module ida_hexrays: @@ -16113,107 +16855,248 @@ class Hexrays_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> Hexrays_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | | close_pseudocode(self, *args) + | Pseudocode view is being closed. + | | close_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | cmt_changed(self, *args) + | Comment got changed. + | | cmt_changed(self, cfunc, loc, cmt) -> int + | @param cfunc (C++: cfunc_t *) + | @param loc (C++: const treeloc_t *) + | @param cmt (C++: const char *) | | combine(self, *args) + | Trying to combine instructions of basic block. + | | combine(self, blk, insn) -> int + | @param blk (C++: mblock_t *) + | @param insn: Should return: 1 if combined the current instruction with + | a preceding one (C++: minsn_t *) | | create_hint(self, *args) + | Create a hint for the current item. + | | create_hint(self, vu) -> PyObject * + | @param vu (C++: vdui_t *) | | curpos(self, *args) + | Current cursor position has been changed. (for example, by left- + | clicking or using keyboard) + | | curpos(self, vu) -> int + | @param vu (C++: vdui_t *) | | double_click(self, *args) + | Mouse double click. + | | double_click(self, vu, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | dump_state(self, *args) | dump_state(self) -> qstring | | flowchart(self, *args) + | Flowchart has been generated. + | | flowchart(self, fc) -> int + | @param fc (C++: qflow_chart_t *) | | func_printed(self, *args) + | Function text has been generated. Plugins may modify the text in + | 'cfunc_t::sv' . + | | func_printed(self, cfunc) -> int + | @param cfunc (C++: cfunc_t *) | | glbopt(self, *args) + | Global optimization has been finished. If microcode is modified, + | MERR_LOOP must be returned. It will cause a complete restart of the + | optimization. + | | glbopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | hook(self, *args) | hook(self) -> bool | | interr(self, *args) + | Internal error has occurred. + | | interr(self, errcode) -> int + | @param errcode (C++: int ) | | keyboard(self, *args) + | Keyboard has been hit. + | | keyboard(self, vu, key_code, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param key_code: VK_... (C++: int) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | locopt(self, *args) + | Basic block level optimization has been finished. + | | locopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | lvar_cmt_changed(self, *args) + | Local variable comment got changed. + | | lvar_cmt_changed(self, vu, v, cmt) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param cmt: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | char *) | | lvar_mapping_changed(self, *args) + | Local variable mapping got changed. + | | lvar_mapping_changed(self, vu, frm, to) -> int + | @param vu (C++: vdui_t *) + | @param frm (C++: lvar_t *) + | @param to: Please note that it is possible to read/write user settings + | for lvars directly from the idb. (C++: lvar_t *) | | lvar_name_changed(self, *args) + | Local variable got renamed. + | | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param name (C++: const char *) + | @param is_user_name: Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | (C++: bool) | | lvar_type_changed(self, *args) + | Local variable type got changed. + | | lvar_type_changed(self, vu, v, tinfo) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param tinfo: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | tinfo_t *) | | maturity(self, *args) + | Ctree maturity level is being changed. + | | maturity(self, cfunc, new_maturity) -> int + | @param cfunc (C++: cfunc_t *) + | @param new_maturity (C++: ctree_maturity_t) | | microcode(self, *args) + | Microcode has been generated. + | | microcode(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | open_pseudocode(self, *args) + | New pseudocode view has been opened. + | | open_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | populating_popup(self, *args) + | Populating popup menu. We can add menu items now. + | | populating_popup(self, widget, popup_handle, vu) -> int + | @param widget (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param vu (C++: vdui_t *) | | prealloc(self, *args) + | Local variables: preallocation step begins. + | | prealloc(self, mba) -> int + | @param mba: This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error + | codes error codes (C++: mba_t *) | | preoptimized(self, *args) + | Microcode has been preoptimized. + | | preoptimized(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | print_func(self, *args) + | Printing ctree and generating text. + | | print_func(self, cfunc, vp) -> int + | @param cfunc (C++: cfunc_t *) + | @param vp: Returns: 1 if text has been generated by the plugin (C++: + | vc_printer_t *) | | prolog(self, *args) + | Prolog analysis has been finished. + | | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | @param mba (C++: mba_t *) + | @param fc (C++: qflow_chart_t *) + | @param reachable_blocks (C++: bitset_t *) + | @param decomp_flags: return Microcode error codes code (C++: int) | | refresh_pseudocode(self, *args) + | Existing pseudocode text has been refreshed. Adding/removing + | pseudocode lines is forbidden in this event. + | | refresh_pseudocode(self, vu) -> int + | @param vu: See also hxe_text_ready, which happens earlier (C++: + | vdui_t *) | | resolve_stkaddrs(self, *args) + | The optimizer is about to resolve stack addresses. + | | resolve_stkaddrs(self, mba) -> int + | @param mba (C++: mba_t *) | | right_click(self, *args) + | Mouse right click. Use hxe_populating_popup instead, in case you want + | to add items in the popup menu. + | | right_click(self, vu) -> int + | @param vu (C++: vdui_t *) | | stkpnts(self, *args) + | SP change points have been calculated. + | | stkpnts(self, mba, _sps) -> int + | @param mba (C++: mba_t *) + | _sps: stkpnts_t * | | structural(self, *args) + | Structural analysis has been finished. + | | structural(self, ct) -> int + | @param ct (C++: control_graph_t *) | | switch_pseudocode(self, *args) + | Existing pseudocode view has been reloaded with a new function. Its + | text has not been refreshed yet, only cfunc and mba pointers are + | ready. + | | switch_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | text_ready(self, *args) + | Decompiled text is ready. + | | text_ready(self, vu) -> int + | @param vu: This event can be used to modify the output text (sv). The + | text uses regular color codes (see lines.hpp) COLOR_ADDR is + | used to store pointers to ctree elements (C++: vdui_t *) | | unhook(self, *args) | unhook(self) -> bool @@ -16291,58 +17174,134 @@ class __cbhooks_t(Hexrays_Hooks) | __repr__ = _swig_repr(self) | | cmt_changed(self, *args) + | Comment got changed. + | | cmt_changed(self, cfunc, loc, cmt) -> int + | @param cfunc (C++: cfunc_t *) + | @param loc (C++: const treeloc_t *) + | @param cmt (C++: const char *) | | combine(self, *args) + | Trying to combine instructions of basic block. + | | combine(self, blk, insn) -> int + | @param blk (C++: mblock_t *) + | @param insn: Should return: 1 if combined the current instruction with + | a preceding one (C++: minsn_t *) | | dump_state(self, *args) | dump_state(self) -> qstring | | flowchart(self, *args) + | Flowchart has been generated. + | | flowchart(self, fc) -> int + | @param fc (C++: qflow_chart_t *) | | glbopt(self, *args) + | Global optimization has been finished. If microcode is modified, + | MERR_LOOP must be returned. It will cause a complete restart of the + | optimization. + | | glbopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | hook(self, *args) | hook(self) -> bool | | locopt(self, *args) + | Basic block level optimization has been finished. + | | locopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | lvar_cmt_changed(self, *args) + | Local variable comment got changed. + | | lvar_cmt_changed(self, vu, v, cmt) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param cmt: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | char *) | | lvar_mapping_changed(self, *args) + | Local variable mapping got changed. + | | lvar_mapping_changed(self, vu, frm, to) -> int + | @param vu (C++: vdui_t *) + | @param frm (C++: lvar_t *) + | @param to: Please note that it is possible to read/write user settings + | for lvars directly from the idb. (C++: lvar_t *) | | lvar_name_changed(self, *args) + | Local variable got renamed. + | | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param name (C++: const char *) + | @param is_user_name: Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | (C++: bool) | | lvar_type_changed(self, *args) + | Local variable type got changed. + | | lvar_type_changed(self, vu, v, tinfo) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param tinfo: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | tinfo_t *) | | microcode(self, *args) + | Microcode has been generated. + | | microcode(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | prealloc(self, *args) + | Local variables: preallocation step begins. + | | prealloc(self, mba) -> int + | @param mba: This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error + | codes error codes (C++: mba_t *) | | preoptimized(self, *args) + | Microcode has been preoptimized. + | | preoptimized(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | prolog(self, *args) + | Prolog analysis has been finished. + | | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | @param mba (C++: mba_t *) + | @param fc (C++: qflow_chart_t *) + | @param reachable_blocks (C++: bitset_t *) + | @param decomp_flags: return Microcode error codes code (C++: int) | | resolve_stkaddrs(self, *args) + | The optimizer is about to resolve stack addresses. + | | resolve_stkaddrs(self, mba) -> int + | @param mba (C++: mba_t *) | | stkpnts(self, *args) + | SP change points have been calculated. + | | stkpnts(self, mba, _sps) -> int + | @param mba (C++: mba_t *) + | _sps: stkpnts_t * | | structural(self, *args) + | Structural analysis has been finished. + | | structural(self, ct) -> int + | @param ct (C++: control_graph_t *) | | unhook(self, *args) | unhook(self) -> bool @@ -16370,40 +17329,58 @@ 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) - _kludge_use_TPopupMenu(m) +_kludge_force_declare_TPopupMenu(*args) + _kludge_force_declare_TPopupMenu(arg1) + arg1: TPopupMenu const * Help on function _ll_call_helper in module ida_hexrays: _ll_call_helper(*args) _ll_call_helper(rettype, args, format) -> cexpr_t + rettype: tinfo_t const & + args: carglist_t * + format: char const * Help on function _ll_create_helper in module ida_hexrays: _ll_create_helper(*args) _ll_create_helper(standalone, type, format) -> cexpr_t + standalone: bool + type: tinfo_t const & + format: char const * Help on function _ll_dereference in module ida_hexrays: _ll_dereference(*args) _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t + e: cexpr_t * + ptrsize: int + is_flt: bool Help on function _ll_lnot in module ida_hexrays: _ll_lnot(*args) _ll_lnot(e) -> cexpr_t + 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 + 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) _ll_make_ref(e) -> cexpr_t + e: cexpr_t * Help on function _ll_new_block in module ida_hexrays: @@ -16418,32 +17395,27 @@ _map_as_dict(maptype, name, keytype, valuetype) 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) + accepts_small_udts(op) -> bool + @param op (C++: ctype_t) Help on function accepts_udts in module ida_hexrays: accepts_udts(*args) accepts_udts(op) -> bool + @param op (C++: ctype_t) 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) + arglocs_overlap(loc1, w1, loc2, w2) -> bool + @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: @@ -16454,13 +17426,15 @@ class array_of_bitsets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< bitset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> bitset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_bitsets - | __init__(self, x) -> array_of_bitsets + | x: qvector< bitset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16470,20 +17444,26 @@ class array_of_bitsets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< bitset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: bitset_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: bitset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: bitset_t const & | | at(self, *args) | at(self, _idx) -> bitset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -16507,52 +17487,74 @@ class array_of_bitsets(__builtin__.object) | | erase(self, *args) | erase(self, it) -> bitset_t + | it: qvector< bitset_t >::iterator + | + | | erase(self, first, last) -> bitset_t + | first: qvector< bitset_t >::iterator + | last: qvector< bitset_t >::iterator | | extract(self, *args) | extract(self) -> bitset_t | | find(self, *args) | find(self, x) -> bitset_t + | x: bitset_t const & + | + | | find(self, x) -> bitset_t + | x: bitset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=bitset_t()) + | x: bitset_t const & | | has(self, *args) | has(self, x) -> bool + | x: bitset_t const & | | inject(self, *args) | inject(self, s, len) + | s: bitset_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> bitset_t + | it: qvector< bitset_t >::iterator + | x: bitset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> bitset_t + | x: bitset_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: bitset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< bitset_t > & | | truncate(self, *args) | truncate(self) @@ -16584,13 +17586,15 @@ class array_of_ivlsets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< ivlset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ivlset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_ivlsets - | __init__(self, x) -> array_of_ivlsets + | x: qvector< ivlset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16600,20 +17604,26 @@ class array_of_ivlsets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< ivlset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: ivlset_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: ivlset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: ivlset_t const & | | at(self, *args) | at(self, _idx) -> ivlset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -16637,52 +17647,74 @@ class array_of_ivlsets(__builtin__.object) | | erase(self, *args) | erase(self, it) -> ivlset_t + | it: qvector< ivlset_t >::iterator + | + | | erase(self, first, last) -> ivlset_t + | first: qvector< ivlset_t >::iterator + | last: qvector< ivlset_t >::iterator | | extract(self, *args) | extract(self) -> ivlset_t | | find(self, *args) | find(self, x) -> ivlset_t + | x: ivlset_t const & + | + | | find(self, x) -> ivlset_t + | x: ivlset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ivlset_t()) + | x: ivlset_t const & | | has(self, *args) | has(self, x) -> bool + | x: ivlset_t const & | | inject(self, *args) | inject(self, s, len) + | s: ivlset_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> ivlset_t + | it: qvector< ivlset_t >::iterator + | x: ivlset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> ivlset_t + | x: ivlset_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: ivlset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< ivlset_t > & | | truncate(self, *args) | truncate(self) @@ -16708,27 +17740,22 @@ class array_of_ivlsets(__builtin__.object) 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) + asgop(cop) -> ctype_t + @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. + asgop_revert(cop) -> ctype_t + @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: @@ -16739,6 +17766,8 @@ class bit_bound_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=0, s=0) -> bit_bound_t + | n: int + | s: int | | __repr__ = _swig_repr(self) | @@ -16775,58 +17804,75 @@ class bitset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: bitset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: bitset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: bitset_t const & | | __init__(self, *args) | __init__(self) -> bitset_t - | __init__(self, m) -> bitset_t + | m: bitset_t const & | | __iter__(self) | | __le__(self, *args) | __le__(self, r) -> bool + | r: bitset_t const & | | __len__ = count(self, *args) | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: bitset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: bitset_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, bit) -> bool + | @param bit (C++: int) + | + | | add(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | add(self, ml) -> bool + | ml: bitset_t const & | | back(self, *args) | back(self) -> int | | begin(self, *args) - | begin(self) -> bitset_t::iterator + | begin(self) -> iterator | | clear(self, *args) | clear(self) | | compare(self, *args) | compare(self, r) -> int + | r: bitset_t const & | | copy(self, *args) | copy(self, m) -> bitset_t + | @param m (C++: const bitset_t &) | | count(self, *args) | count(self) -> int - | count(self, bit) -> int + | bit: int | | cut_at(self, *args) | cut_at(self, maxbit) -> bool + | @param maxbit (C++: int) | | dstr(self, *args) | dstr(self) -> char const * @@ -16835,57 +17881,81 @@ class bitset_t(__builtin__.object) | empty(self) -> bool | | end(self, *args) - | end(self) -> bitset_t::iterator + | end(self) -> iterator | | fill_with_ones(self, *args) | fill_with_ones(self, maxbit) + | @param maxbit (C++: int) | | front(self, *args) | front(self) -> int | | has(self, *args) | has(self, bit) -> bool + | @param bit (C++: int) | | has_all(self, *args) | has_all(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_any(self, *args) | has_any(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_common(self, *args) | has_common(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | inc(self, *args) | inc(self, p, n=1) + | @param p (C++: iterator &) + | @param n (C++: int) | | includes(self, *args) | includes(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | intersect(self, *args) | intersect(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | is_subset_of(self, *args) | is_subset_of(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | itat(self, *args) - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | @param n (C++: int) | | itv(self, *args) | itv(self, it) -> int + | it: bitset_t::const_iterator | | last(self, *args) | last(self) -> int | | shift_down(self, *args) | shift_down(self, shift) + | @param shift (C++: int) | | sub(self, *args) | sub(self, bit) -> bool + | @param bit (C++: int) + | + | | sub(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | sub(self, ml) -> bool + | ml: bitset_t const & | | swap(self, *args) | swap(self, r) + | @param r (C++: bitset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16908,93 +17978,69 @@ class bitset_t(__builtin__.object) 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 *) + block_chains_begin(set) -> block_chains_iterator_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 *) + block_chains_clear(set) + @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 *) + block_chains_end(set) -> block_chains_iterator_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) + block_chains_erase(set, p) + @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 &) + block_chains_find(set, val) -> block_chains_iterator_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 *) + block_chains_free(set) + @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) + block_chains_get(p) -> chain_t + @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 &) + block_chains_insert(set, val) -> block_chains_iterator_t + @param set (C++: block_chains_t *) + @param val (C++: const chain_t &) Help on class block_chains_iterator_t in module ida_hexrays: @@ -17005,12 +18051,14 @@ class block_chains_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: block_chains_iterator_t const & | | __init__(self, *args) | __init__(self) -> block_chains_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: block_chains_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -17038,43 +18086,31 @@ class block_chains_iterator_t(__builtin__.object) 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) + block_chains_next(p) -> 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_prev(p) -> block_chains_iterator_t - - Move to the previous element. - - @param p (C++: block_chains_iterator_t) + block_chains_prev(p) -> 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) - block_chains_size(set) -> size_t - - Get size of 'block_chains_t' . - - @param set (C++: block_chains_t *) + block_chains_size(set) -> size_t + @param set (C++: block_chains_t *) Help on class block_chains_t in module ida_hexrays: @@ -17095,18 +18131,50 @@ class block_chains_t(__builtin__.object) | dstr(self) -> char const * | | get_chain(self, *args) + | Get chain for the specified value offset. + | | get_chain(self, k, width=1) -> chain_t + | @param k: value offset (register number or stack offset) (C++: const + | voff_t &) + | @param width: size of value in bytes (C++: int) + | + | | get_chain(self, k, width=1) -> chain_t + | @param k: value offset (register number or stack offset) (C++: const + | voff_t &) + | @param width: size of value in bytes (C++: int) + | + | | get_chain(self, ch) -> chain_t + | ch: chain_t const & + | + | | get_chain(self, ch) -> chain_t + | ch: chain_t const & | | get_reg_chain(self, *args) + | Get chain for the specified register + | | get_reg_chain(self, reg, width=1) -> chain_t + | @param reg: register number (C++: mreg_t) + | @param width: size of register in bytes (C++: int) + | + | | get_reg_chain(self, reg, width=1) -> chain_t + | @param reg: register number (C++: mreg_t) + | @param width: size of register in bytes (C++: int) | | get_stk_chain(self, *args) + | Get chain for the specified stack offset + | | get_stk_chain(self, off, width=1) -> chain_t + | @param off: stack offset (C++: sval_t) + | @param width: size of stack value in bytes (C++: int) + | + | | get_stk_chain(self, off, width=1) -> chain_t + | @param off: stack offset (C++: sval_t) + | @param width: size of stack value in bytes (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17135,10 +18203,11 @@ class block_chains_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> block_chains_t + | i: size_t | | __init__(self, *args) | __init__(self) -> block_chains_vec_t - | __init__(self, x) -> block_chains_vec_t + | 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. @@ -17150,9 +18219,12 @@ class block_chains_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: block_chains_t const & | | at(self, *args) | at(self, _idx) -> block_chains_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -17176,7 +18248,12 @@ class block_chains_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | + | | erase(self, first, last) -> block_chains_t + | first: qvector< block_chains_t >::iterator + | last: qvector< block_chains_t >::iterator | | extract(self, *args) | extract(self) -> block_chains_t @@ -17186,35 +18263,47 @@ class block_chains_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=block_chains_t()) + | x: block_chains_t const & | | inject(self, *args) | inject(self, s, len) + | s: block_chains_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | x: block_chains_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> block_chains_t + | x: block_chains_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: block_chains_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< block_chains_t > & | | truncate(self, *args) | truncate(self) @@ -17240,94 +18329,70 @@ class block_chains_vec_t(__builtin__.object) 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 *) + boundaries_begin(map) -> boundaries_iterator_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 *) + boundaries_clear(map) + @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 *) + boundaries_end(map) -> boundaries_iterator_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) + boundaries_erase(map, p) + @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 *&) + boundaries_find(map, key) -> boundaries_iterator_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) + boundaries_first(p) -> cinsn_t + @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 *) + boundaries_free(map) + @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 &) + boundaries_insert(map, key, val) -> boundaries_iterator_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: @@ -17338,12 +18403,14 @@ class boundaries_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: boundaries_iterator_t const & | | __init__(self, *args) | __init__(self) -> boundaries_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: boundaries_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -17371,54 +18438,39 @@ class boundaries_iterator_t(__builtin__.object) 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) + boundaries_next(p) -> boundaries_iterator_t + @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) + boundaries_prev(p) -> boundaries_iterator_t + @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) + boundaries_second(p) -> rangeset_t + @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 *) + boundaries_size(map) -> size_t + @param map (C++: boundaries_t *) Help on class boundaries_t in module ida_hexrays: @@ -17452,6 +18504,7 @@ class boundaries_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> rangeset_t + | _Keyval: cinsn_t *const & | | begin lambda self, *args | @@ -17517,33 +18570,77 @@ class boundaries_t(__builtin__.object) | | __begin = | boundaries_begin(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * | | __clear = | boundaries_clear(map) + | + | Parameters + | ---------- + | map: boundaries_t * | | __end = | boundaries_end(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * | | __erase = | boundaries_erase(map, p) + | + | Parameters + | ---------- + | map: boundaries_t * + | p: boundaries_iterator_t | | __find = | boundaries_find(map, key) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * + | key: cinsn_t const * | | __first = | boundaries_first(p) -> cinsn_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __insert = | boundaries_insert(map, key, val) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t * + | key: cinsn_t const * + | val: rangeset_t const & | | __next = | boundaries_next(p) -> boundaries_iterator_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __second = | boundaries_second(p) -> rangeset_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __size = | boundaries_size(map) -> size_t + | + | Parameters + | ---------- + | map: boundaries_t * | | __swig_destroy__ = | delete_boundaries_t(self) @@ -17573,32 +18670,40 @@ class carg_t(cexpr_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: carg_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: carg_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: carg_t const & | | __init__(self, *args) | __init__(self) -> carg_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: carg_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: carg_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: carg_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: carg_t const & | | consume_cexpr(self, *args) | consume_cexpr(self, e) + | @param e (C++: cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17668,119 +18773,194 @@ class carg_t(cexpr_t) | | _replace_by(self, *args) | _replace_by(self, r) + | r: cexpr_t * | | _set_a(self, *args) | _set_a(self, _v) + | _v: carglist_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_helper(self, *args) | _set_helper(self, _v) + | _v: char * | | _set_insn(self, *args) | _set_insn(self, _v) + | _v: cinsn_t * | | _set_m(self, *args) | _set_m(self, _v) + | _v: int | | _set_n(self, *args) | _set_n(self, _v) + | _v: cnumber_t * | | _set_obj_ea(self, *args) | _set_obj_ea(self, _v) + | _v: ea_t | | _set_ptrsize(self, *args) | _set_ptrsize(self, _v) + | _v: int | | _set_refwidth(self, *args) | _set_refwidth(self, _v) + | _v: int | | _set_string(self, *args) | _set_string(self, _v) + | _v: char * | | _set_x(self, *args) | _set_x(self, _v) + | _v: cexpr_t * | | _set_y(self, *args) | _set_y(self, _v) + | _v: cexpr_t * | | _set_z(self, *args) | _set_z(self, _v) + | _v: cexpr_t * | | assign(self, *args) | assign(self, r) -> cexpr_t + | @param r (C++: const cexpr_t &) | | calc_type(self, *args) + | Calculate the type of the expression. Use this function to calculate + | the expression type when a new expression is built + | | calc_type(self, recursive) + | @param recursive: if true, types of all children expression will be + | calculated before calculating our type (C++: bool) | | cleanup(self, *args) - | cleanup(self) + | Cleanup the expression. This function properly deletes all children + | and sets the item type to cot_empty. | | contains_comma(self, *args) + | Does the expression contain a comma operator? + | | contains_comma(self, times=1) -> bool + | @param times (C++: int) | | contains_comma_or_insn_or_label(self, *args) + | Does the expression contain a comma operator or an embedded statement + | operator or a label? + | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | @param maxcommas (C++: int) | | contains_insn(self, *args) + | Does the expression contain an embedded statement operator? + | | contains_insn(self, times=1) -> bool + | @param times (C++: int) | | contains_insn_or_label(self, *args) - | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) + | Check if the expression contains the specified operator. + | | contains_operator(self, needed_op, times=1) -> bool + | @param needed_op: operator code to search for (C++: ctype_t) + | @param times: how many times the operator code should be present (C++: + | int) + | @return: true if the expression has at least TIMES children with + | NEEDED_OP | | cpadone(self, *args) - | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) + | 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. + | | equal_effect(self, r) -> bool + | @param r: the expression to compare against the current expression + | (C++: const cexpr_t &) + | @return: true expressions can be considered equal | | find_num_op(self, *args) - | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t + | Find the operand with a numeric value. | | find_op(self, *args) + | Find the child with the specified operator. + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) + | + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) | | get_1num_op(self, *args) + | Get pointers to operands. at last one operand should be a number o1 + | will be pointer to the number + | | get_1num_op(self, o1, o2) -> bool + | @param o1 (C++: cexpr_t **) + | @param o2 (C++: cexpr_t **) | | get_const_value(self, *args) - | get_const_value(self) -> bool + | Get expression value. | | get_high_nbit_bound(self, *args) - | 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) - | 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) - | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. | | get_type_sign(self, *args) - | get_type_sign(self) -> type_sign_t + | Get expression sign. | | get_v(self, *args) | get_v(self) -> var_ref_t | | has_side_effects(self, *args) - | 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) + | Is call argument? + | | is_call_arg_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is a call argument of the specified + | parent expression. | | is_call_object_of(self, *args) + | Is call object? + | | is_call_object_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is the call object of the specified + | parent expression. | | is_child_of(self, *args) + | Verify if the specified item is our parent. + | | is_child_of(self, parent) -> bool + | @param parent: possible parent item (C++: const citem_t *) + | @return: true if the specified item is our parent | | is_const_value(self, *args) + | Check if the expression is a number with the specified value. + | | is_const_value(self, _v) -> bool + | @param _v (C++: uint64) | | is_cstr(self, *args) | is_cstr(self) -> bool @@ -17792,28 +18972,30 @@ class carg_t(cexpr_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) - | is_negative_const(self) -> bool + | Check if the expression is a negative number. | | is_nice_cond(self, *args) - | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean + | type. | | is_nice_expr(self, *args) - | 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) - | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) - | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) - | is_type_signed(self) -> bool + | Is expression signed? | | is_type_unsigned(self, *args) - | is_type_unsigned(self) -> bool + | Is expression unsigned? | | is_undef_val(self, *args) | is_undef_val(self) -> bool @@ -17822,38 +19004,63 @@ class carg_t(cexpr_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) - | is_zero_const(self) -> bool + | Check if the expression is a zero. | | maybe_ptr(self, *args) - | maybe_ptr(self) -> bool + | May the expression be a pointer? | | numval(self, *args) - | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only + | on cot_num expressions! | | print1(self, *args) + | Print expression into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | put_number(self, *args) + | Assign a number to the expression. + | | put_number(self, func, value, nbytes, sign=no_sign) + | @param func: current function (C++: cfunc_t *) + | @param value: number value (C++: uint64) + | @param nbytes: size of the number in bytes (C++: int) + | @param sign: number sign (C++: type_sign_t) | | requires_lvalue(self, *args) + | Check if the expression requires an lvalue. + | | requires_lvalue(self, child) -> bool + | @param child: The function will check if this child of our expression + | must be an lvalue. (C++: const cexpr_t *) + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) | set_cpadone(self) | | set_v(self, *args) | set_v(self, v) + | v: var_ref_t const * | | set_vftable(self, *args) | set_vftable(self) | | swap(self, *args) | swap(self, r) + | @param r (C++: cexpr_t &) | | theother(self, *args) + | Get the other operand. This function returns the other operand (not + | the specified one) for binary expressions. + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) + | + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from cexpr_t: @@ -17933,22 +19140,37 @@ class carg_t(cexpr_t) | | _set_op(self, *args) | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | contains_label(self, *args) - | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t + | @param _ea (C++: ea_t) | | find_parent_of(self, *args) + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -18001,30 +19223,38 @@ class carglist_t(qvector_carg_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: carglist_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: carglist_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: carglist_t const & | | __init__(self, *args) | __init__(self) -> carglist_t - | __init__(self, ftype, fl=0) -> carglist_t + | ftype: tinfo_t const & + | fl: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: carglist_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: carglist_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: carglist_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: carglist_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18049,6 +19279,7 @@ class carglist_t(qvector_carg_t) | | __getitem__(self, *args) | __getitem__(self, i) -> carg_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18058,19 +19289,24 @@ class carglist_t(qvector_carg_t) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: carg_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: carg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: carg_t const & | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | at = __getitem__(self, *args) | __getitem__(self, i) -> carg_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18094,52 +19330,74 @@ class carglist_t(qvector_carg_t) | | erase(self, *args) | erase(self, it) -> carg_t + | it: qvector< carg_t >::iterator + | + | | erase(self, first, last) -> carg_t + | first: qvector< carg_t >::iterator + | last: qvector< carg_t >::iterator | | extract(self, *args) | extract(self) -> carg_t | | find(self, *args) | find(self, x) -> carg_t + | x: carg_t const & + | + | | find(self, x) -> carg_t + | x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=carg_t()) + | x: carg_t const & | | has(self, *args) | has(self, x) -> bool + | x: carg_t const & | | inject(self, *args) | inject(self, s, len) + | s: carg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> carg_t + | it: qvector< carg_t >::iterator + | x: carg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: carg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< carg_t > & | | truncate(self, *args) | truncate(self) @@ -18167,30 +19425,41 @@ class casm_t(ida_pro.eavec_t)↗ | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: casm_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: casm_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: casm_t const & | | __init__(self, *args) | __init__(self, ea) -> casm_t + | ea: ea_t + | + | | __init__(self, r) -> casm_t + | r: casm_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: casm_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: casm_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: casm_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: casm_t const & | | one_insn(self, *args) | one_insn(self) -> bool @@ -18212,6 +19481,7 @@ class casm_t(ida_pro.eavec_t)↗ | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18221,19 +19491,24 @@ class casm_t(ida_pro.eavec_t)↗ | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: unsigned-ea-like-numeric-type const &↗ | | _del(self, *args) | _del(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | x: unsigned-ea-like-numeric-type const &↗ | | at = __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18257,49 +19532,70 @@ class casm_t(ida_pro.eavec_t)↗ | | erase(self, *args) | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | 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↗ + | x: unsigned-ea-like-numeric-type const &↗ + | + | | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | x: unsigned-ea-like-numeric-type const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | inject(self, *args) | inject(self, s, len) + | s: unsigned-ea-like-numeric-type *↗ + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | x: unsigned-ea-like-numeric-type const &↗ | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | x: unsigned-ea-like-numeric-type const &↗ | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned-ea-like-numeric-type const &↗ + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< unsigned-ea-like-numeric-type > &↗ | | truncate(self, *args) | truncate(self) @@ -18313,35 +19609,6 @@ 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) @@ -18356,52 +19623,39 @@ class cblock_t(qlist_cinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cblock_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cblock_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cblock_t const & | | __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 + | r: cblock_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cblock_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cblock_t const & | | __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) + | r: cblock_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18418,9 +19672,25 @@ class cblock_t(qlist_cinsn_t) | ---------------------------------------------------------------------- | Methods inherited from qlist_cinsn_t: | - | back(self, *args) - | back(self) -> cinsn_t - | back(self) -> cinsn_t + | __getitem__(self, *args) + | __getitem__(self, i) -> cinsn_t + | 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) + | __len__(self) -> size_t + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: cinsn_t const & + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> qlist_cinsn_t_iterator @@ -18436,12 +19706,42 @@ class cblock_t(qlist_cinsn_t) | | erase(self, *args) | erase(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | erase(self, p1, p2) + | p1: qlist< cinsn_t >::iterator + | p2: qlist< cinsn_t >::iterator + | + | | erase(self, p) + | p: qlist_cinsn_t_iterator | - | front(self, *args) - | front(self) -> cinsn_t - | front(self) -> cinsn_t + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) + | + | insert(self, *args) + | insert(self, p, x) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | x: cinsn_t const & + | + | + | insert(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | + | insert(self, i, v) + | i: size_t + | v: cinsn_t const & + | + | + | insert(self, p, x) -> qlist_cinsn_t_iterator + | p: qlist_cinsn_t_iterator + | x: cinsn_t const & | | pop_back(self, *args) | pop_back(self) @@ -18451,15 +19751,20 @@ class cblock_t(qlist_cinsn_t) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> cinsn_t + | x: cinsn_t const & | | push_front(self, *args) | push_front(self, x) + | x: cinsn_t const & | | 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 + | v: cinsn_t const & + | | rend(self, *args) | rend(self) -> qlist< cinsn_t >::reverse_iterator | rend(self) -> qlist< cinsn_t >::const_reverse_iterator @@ -18469,6 +19774,7 @@ class cblock_t(qlist_cinsn_t) | | swap(self, *args) | swap(self, x) + | x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from qlist_cinsn_t: @@ -18494,35 +19800,43 @@ class ccase_t(cinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ccase_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ccase_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ccase_t const & | | __init__(self, *args) | __init__(self) -> ccase_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: ccase_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ccase_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ccase_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: ccase_t const & | | size(self, *args) | size(self) -> size_t | | value(self, *args) | value(self, i) -> uint64 const & + | @param i (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18577,89 +19891,145 @@ class ccase_t(cinsn_t) | | _print(self, *args) | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) | _register(self) | | _replace_by(self, *args) | _replace_by(self, r) + | r: cinsn_t * | | _set_casm(self, *args) | _set_casm(self, _v) + | _v: casm_t * | | _set_cblock(self, *args) | _set_cblock(self, _v) + | _v: cblock_t * | | _set_cdo(self, *args) | _set_cdo(self, _v) + | _v: cdo_t * | | _set_cexpr(self, *args) | _set_cexpr(self, _v) + | _v: cexpr_t * | | _set_cfor(self, *args) | _set_cfor(self, _v) + | _v: cfor_t * | | _set_cgoto(self, *args) | _set_cgoto(self, _v) + | _v: cgoto_t * | | _set_cif(self, *args) | _set_cif(self, _v) + | _v: cif_t * | | _set_creturn(self, *args) | _set_creturn(self, _v) + | _v: creturn_t * | | _set_cswitch(self, *args) | _set_cswitch(self, _v) + | _v: cswitch_t * | | _set_cwhile(self, *args) | _set_cwhile(self, _v) + | _v: cwhile_t * | | assign(self, *args) | assign(self, r) -> cinsn_t + | @param r (C++: const cinsn_t &) | | cleanup(self, *args) - | cleanup(self) + | Cleanup the statement. This function properly deletes all children and + | sets the item type to cit_empty. | | collect_free_breaks(self, *args) + | 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. + | | collect_free_breaks(self, breaks) -> bool + | @param breaks: pointer to the variable where the vector of all found + | free break statements is returned. This argument can + | be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) + | 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. + | | collect_free_continues(self, continues) -> bool + | @param continues: pointer to the variable where the vector of all + | found free continue statements is returned. This + | argument can be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free continue statements have been found | | contains_free_break(self, *args) - | contains_free_break(self) -> bool + | Check if the statement has free 'break' statements. | | contains_free_continue(self, *args) - | contains_free_continue(self) -> bool + | Check if the statement has free 'continue' statements. | | contains_insn(self, *args) + | Check if the statement contains a statement of the specified type. + | | contains_insn(self, type, times=1) -> bool + | @param type: statement opcode to look for (C++: ctype_t) + | @param times: how many times TYPE should be present (C++: int) + | @return: true if the statement has at least TIMES children with opcode + | == TYPE | | create_if(self, *args) + | Create a new if-statement. The current statement must be a block. The + | new statement will be appended to it. + | | create_if(self, cnd) -> cif_t + | @param cnd: if condition. It will be deleted after being copied. (C++: + | cexpr_t *) | | is_epilog(self) | | is_ordinary_flow(self, *args) - | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. | | new_insn(self, *args) + | Create a new statement. The current statement must be a block. The new + | statement will be appended to it. + | | new_insn(self, insn_ea) -> cinsn_t + | @param insn_ea: statement address (C++: ea_t) | | print1(self, *args) + | Print the statement into one line. Currently this function is not + | available. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | swap(self, *args) | swap(self, r) + | @param r (C++: cinsn_t &) | | zero(self, *args) - | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- | Static methods inherited from cinsn_t: | | insn_is_epilog(*args) | insn_is_epilog(insn) -> bool + | insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cinsn_t: @@ -18725,22 +20095,37 @@ class ccase_t(cinsn_t) | | _set_op(self, *args) | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | contains_label(self, *args) - | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t + | @param _ea (C++: ea_t) | | find_parent_of(self, *args) + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -18790,29 +20175,36 @@ class ccases_t(qvector_ccase_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ccases_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ccases_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ccases_t const & | | __init__(self, *args) | __init__(self) -> ccases_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: ccases_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ccases_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ccases_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: ccases_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18831,6 +20223,7 @@ class ccases_t(qvector_ccase_t) | | __getitem__(self, *args) | __getitem__(self, i) -> ccase_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18840,19 +20233,24 @@ class ccases_t(qvector_ccase_t) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: ccase_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: ccase_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: ccase_t const & | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | at = __getitem__(self, *args) | __getitem__(self, i) -> ccase_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18876,52 +20274,74 @@ class ccases_t(qvector_ccase_t) | | erase(self, *args) | erase(self, it) -> ccase_t + | it: qvector< ccase_t >::iterator + | + | | erase(self, first, last) -> ccase_t + | first: qvector< ccase_t >::iterator + | last: qvector< ccase_t >::iterator | | extract(self, *args) | extract(self) -> ccase_t | | find(self, *args) | find(self, x) -> ccase_t + | x: ccase_t const & + | + | | find(self, x) -> ccase_t + | x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ccase_t()) + | x: ccase_t const & | | has(self, *args) | has(self, x) -> bool + | x: ccase_t const & | | inject(self, *args) | inject(self, s, len) + | s: ccase_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> ccase_t + | it: qvector< ccase_t >::iterator + | x: ccase_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: ccase_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< ccase_t > & | | truncate(self, *args) | truncate(self) @@ -18943,8 +20363,12 @@ class cdg_insn_iterator_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> cdg_insn_iterator_t + | __init__(self, mba_) -> cdg_insn_iterator_t + | mba_: mba_t const * + | + | | __init__(self, r) -> cdg_insn_iterator_t + | r: cdg_insn_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -18954,14 +20378,19 @@ class cdg_insn_iterator_t(__builtin__.object) | has_dslot(self, *args) | has_dslot(self) -> bool | + | is_severed_dslot(self, *args) + | is_severed_dslot(self) -> bool + | | next(self, *args) | next(self, ins) -> merror_t + | @param ins (C++: insn_t *) | | ok(self, *args) | ok(self) -> bool | | start(self, *args) | start(self, rng) + | @param rng (C++: const range_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18987,8 +20416,11 @@ class cdg_insn_iterator_t(__builtin__.object) | 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 + | mba + | cdg_insn_iterator_t_mba_get(self) -> mba_t + | + | severed_branch + | cdg_insn_iterator_t_severed_branch_get(self) -> ea_t | | thisown | The membership flag @@ -19014,29 +20446,36 @@ class cdo_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cdo_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cdo_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cdo_t const & | | __init__(self, *args) | __init__(self) -> cdo_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: cdo_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cdo_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cdo_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: cdo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19055,6 +20494,7 @@ class cdo_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) | cleanup(self) @@ -19129,28 +20569,49 @@ class cexpr_t(citem_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cexpr_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cexpr_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cexpr_t const & | | __init__(self, *args) | __init__(self) -> cexpr_t - | __init__(self, cop, _x) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | + | | __init__(self, cop, _x, _y) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | _y: cexpr_t * + | + | | __init__(self, cop, _x, _y, _z) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | _y: cexpr_t * + | _z: cexpr_t * + | + | | __init__(self, r) -> cexpr_t + | r: cexpr_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: cexpr_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cexpr_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cexpr_t const & | | __repr__ = _swig_repr(self) | @@ -19201,122 +20662,198 @@ class cexpr_t(citem_t) | | _replace_by(self, *args) | _replace_by(self, r) + | r: cexpr_t * | | _set_a(self, *args) | _set_a(self, _v) + | _v: carglist_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_helper(self, *args) | _set_helper(self, _v) + | _v: char * | | _set_insn(self, *args) | _set_insn(self, _v) + | _v: cinsn_t * | | _set_m(self, *args) | _set_m(self, _v) + | _v: int | | _set_n(self, *args) | _set_n(self, _v) + | _v: cnumber_t * | | _set_obj_ea(self, *args) | _set_obj_ea(self, _v) + | _v: ea_t | | _set_ptrsize(self, *args) | _set_ptrsize(self, _v) + | _v: int | | _set_refwidth(self, *args) | _set_refwidth(self, _v) + | _v: int | | _set_string(self, *args) | _set_string(self, _v) + | _v: char * | | _set_x(self, *args) | _set_x(self, _v) + | _v: cexpr_t * | | _set_y(self, *args) | _set_y(self, _v) + | _v: cexpr_t * | | _set_z(self, *args) | _set_z(self, _v) + | _v: cexpr_t * | | assign(self, *args) | assign(self, r) -> cexpr_t + | @param r (C++: const cexpr_t &) | | calc_type(self, *args) + | Calculate the type of the expression. Use this function to calculate + | the expression type when a new expression is built + | | calc_type(self, recursive) + | @param recursive: if true, types of all children expression will be + | calculated before calculating our type (C++: bool) | | cleanup(self, *args) - | cleanup(self) + | Cleanup the expression. This function properly deletes all children + | and sets the item type to cot_empty. | | compare(self, *args) | compare(self, r) -> int + | r: cexpr_t const & | | contains_comma(self, *args) + | Does the expression contain a comma operator? + | | contains_comma(self, times=1) -> bool + | @param times (C++: int) | | contains_comma_or_insn_or_label(self, *args) + | Does the expression contain a comma operator or an embedded statement + | operator or a label? + | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | @param maxcommas (C++: int) | | contains_insn(self, *args) + | Does the expression contain an embedded statement operator? + | | contains_insn(self, times=1) -> bool + | @param times (C++: int) | | contains_insn_or_label(self, *args) - | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) + | Check if the expression contains the specified operator. + | | contains_operator(self, needed_op, times=1) -> bool + | @param needed_op: operator code to search for (C++: ctype_t) + | @param times: how many times the operator code should be present (C++: + | int) + | @return: true if the expression has at least TIMES children with + | NEEDED_OP | | cpadone(self, *args) - | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) + | 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. + | | equal_effect(self, r) -> bool + | @param r: the expression to compare against the current expression + | (C++: const cexpr_t &) + | @return: true expressions can be considered equal | | find_num_op(self, *args) - | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t + | Find the operand with a numeric value. | | find_op(self, *args) + | Find the child with the specified operator. + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) + | + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) | | get_1num_op(self, *args) + | Get pointers to operands. at last one operand should be a number o1 + | will be pointer to the number + | | get_1num_op(self, o1, o2) -> bool + | @param o1 (C++: cexpr_t **) + | @param o2 (C++: cexpr_t **) | | get_const_value(self, *args) - | get_const_value(self) -> bool + | Get expression value. | | get_high_nbit_bound(self, *args) - | 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) - | 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) - | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. | | get_type_sign(self, *args) - | get_type_sign(self) -> type_sign_t + | Get expression sign. | | get_v(self, *args) | get_v(self) -> var_ref_t | | has_side_effects(self, *args) - | 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) + | Is call argument? + | | is_call_arg_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is a call argument of the specified + | parent expression. | | is_call_object_of(self, *args) + | Is call object? + | | is_call_object_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is the call object of the specified + | parent expression. | | is_child_of(self, *args) + | Verify if the specified item is our parent. + | | is_child_of(self, parent) -> bool + | @param parent: possible parent item (C++: const citem_t *) + | @return: true if the specified item is our parent | | is_const_value(self, *args) + | Check if the expression is a number with the specified value. + | | is_const_value(self, _v) -> bool + | @param _v (C++: uint64) | | is_cstr(self, *args) | is_cstr(self) -> bool @@ -19328,28 +20865,30 @@ class cexpr_t(citem_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) - | is_negative_const(self) -> bool + | Check if the expression is a negative number. | | is_nice_cond(self, *args) - | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean + | type. | | is_nice_expr(self, *args) - | 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) - | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) - | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) - | is_type_signed(self) -> bool + | Is expression signed? | | is_type_unsigned(self, *args) - | is_type_unsigned(self) -> bool + | Is expression unsigned? | | is_undef_val(self, *args) | is_undef_val(self) -> bool @@ -19358,38 +20897,63 @@ class cexpr_t(citem_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) - | is_zero_const(self) -> bool + | Check if the expression is a zero. | | maybe_ptr(self, *args) - | maybe_ptr(self) -> bool + | May the expression be a pointer? | | numval(self, *args) - | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only + | on cot_num expressions! | | print1(self, *args) + | Print expression into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | put_number(self, *args) + | Assign a number to the expression. + | | put_number(self, func, value, nbytes, sign=no_sign) + | @param func: current function (C++: cfunc_t *) + | @param value: number value (C++: uint64) + | @param nbytes: size of the number in bytes (C++: int) + | @param sign: number sign (C++: type_sign_t) | | requires_lvalue(self, *args) + | Check if the expression requires an lvalue. + | | requires_lvalue(self, child) -> bool + | @param child: The function will check if this child of our expression + | must be an lvalue. (C++: const cexpr_t *) + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) | set_cpadone(self) | | set_v(self, *args) | set_v(self, v) + | v: var_ref_t const * | | set_vftable(self, *args) | set_vftable(self) | | swap(self, *args) | swap(self, r) + | @param r (C++: cexpr_t &) | | theother(self, *args) + | Get the other operand. This function returns the other operand (not + | the specified one) for binary expressions. + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) + | + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19475,22 +21039,37 @@ class cexpr_t(citem_t) | | _set_op(self, *args) | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | contains_label(self, *args) - | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t + | @param _ea (C++: ea_t) | | find_parent_of(self, *args) + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -19544,29 +21123,36 @@ class cfor_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cfor_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cfor_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cfor_t const & | | __init__(self, *args) | __init__(self) -> cfor_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: cfor_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cfor_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cfor_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: cfor_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19591,6 +21177,7 @@ class cfor_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) | cleanup(self) @@ -19630,11 +21217,24 @@ class cfunc_parentee_t(ctree_parentee_t) | | __init__(self, *args) | __init__(self, f, post=False) -> cfunc_parentee_t + | f: cfunc_t * + | post: bool | | __repr__ = _swig_repr(self) | | calc_rvalue_type(self, *args) + | 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. + | | calc_rvalue_type(self, target, e) -> bool + | @param target: 'best' type of the expression will be returned here + | (C++: tinfo_t *) + | @param e: expression to determine the desired type (C++: const + | cexpr_t *) + | @return: false if failed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19655,61 +21255,112 @@ class cfunc_parentee_t(ctree_parentee_t) | Methods inherited from ctree_parentee_t: | | recalc_parent_types(self, *args) - | recalc_parent_types(self) -> bool + | Recalculate types of parent node. 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 it is + | recommended to restart the traversal because the information about + | parent nodes is stale. | | ---------------------------------------------------------------------- | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) + | Traverse only expressions. The traversal will start at the specified + | item and continue until of one the visit_...() functions return a non- + | zero value. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | clr_prune(self) + | Do not prune children. This is an internal function, no need to call + | it. | | clr_restart(self, *args) - | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) - | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) + | 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. + | | leave_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) - | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) - | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) - | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) - | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) - | 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) - | set_restart(self) + | Restart the travesal. Meaningful only in 'apply_to_exprs()' | | visit_expr(self, *args) + | 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) + | 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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -19741,98 +21392,189 @@ class cfunc_t(__builtin__.object) | __str__(self) -> qstring | | build_c_tree(self, *args) - | build_c_tree(self) + | Generate the function body. This function (re)generates the function + | body from the underlying microcode. | | del_orphan_cmts(self, *args) - | 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) | find_item_coords(self, item, px, py) -> bool + | @param item (C++: const citem_t *) + | @param px (C++: int *) + | @param py (C++: int *) + | + | | find_item_coords(self, item) -> PyObject * + | @param item (C++: const citem_t *) | | find_label(self, *args) + | Find the label. + | | find_label(self, label) -> citem_t + | @param label (C++: int) + | @return: pointer to the ctree item with the specified label number. | | gather_derefs(self, *args) | gather_derefs(self, ci, udm=None) -> bool + | @param ci (C++: const ctree_item_t &) + | @param udm (C++: udt_type_data_t *) | | get_boundaries(self, *args) - | 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) - | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not + | done yet. | | get_func_type(self, *args) + | Get the function type. + | | get_func_type(self, type) -> bool + | @param type: variable where the function type is returned (C++: + | tinfo_t *) + | @return: false if failure | | get_line_item(self, *args) + | Get ctree item for the specified cursor position. + | 'vdui_t::get_current_item()' + | | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | @param line: line of decompilation text (element of sv ) (C++: const + | char *) + | @param x: x cursor coordinate in the line (C++: int) + | @param is_ctree_line: does the line belong to statement area? (if not, + | it is assumed to belong to the declaration area) + | (C++: bool) + | @param phead: ptr to the first item on the line (used to attach block + | comments). May be NULL (C++: ctree_item_t *) + | @param pitem: ptr to the current item. May be NULL (C++: ctree_item_t + | *) + | @param ptail: ptr to the last item on the line (used to attach + | indented comments). May be NULL (C++: ctree_item_t *) + | @return: false if failed to get the current item | | get_lvars(self, *args) - | get_lvars(self) -> lvars_t + | Get vector of local variables. | | get_pseudocode(self, *args) - | 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) - | 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. | | get_user_cmt(self, *args) + | Retrieve a user defined comment. + | | get_user_cmt(self, loc, rt) -> char const * + | @param loc: ctree location (C++: const treeloc_t &) + | @param rt: should already retrieved comments retrieved again? (C++: + | cmt_retrieval_type_t) + | @return: pointer to the comment string or NULL | | get_user_iflags(self, *args) + | Retrieve citem iflags. + | | get_user_iflags(self, loc) -> int32 + | @param loc: citem locator (C++: const citem_locator_t &) + | @return: ctree item iflags bits or 0 | | get_user_union_selection(self, *args) + | Retrieve a user defined union field selection. + | | get_user_union_selection(self, ea, path) -> bool + | @param ea: address (C++: ea_t) + | @param path: out: path describing the union selection. (C++: intvec_t + | *) + | @return: pointer to the path or NULL | | get_warnings(self, *args) - | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. | | has_orphan_cmts(self, *args) - | has_orphan_cmts(self) -> bool + | Check if there are orphan comments. + | + | locked(self, *args) + | locked(self) -> bool | | print_dcl(self, *args) - | print_dcl(self) + | Print function prototype. | | print_func(self, *args) + | Print function text. + | | print_func(self, vp) + | @param vp: printer helper class to receive the generated text. (C++: + | vc_printer_t &) | | refresh_func_ctext(self, *args) - | 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) | release(self) | | remove_unused_labels(self, *args) - | remove_unused_labels(self) + | Remove unused labels. This function check what labels are really used + | by the function and removes the unused ones. | | save_user_cmts(self, *args) - | save_user_cmts(self) + | Save user-defined comments into the database. | | save_user_iflags(self, *args) - | save_user_iflags(self) + | Save user-defined iflags into the database. | | save_user_labels(self, *args) - | save_user_labels(self) + | Save user-defined labels into the database. | | save_user_numforms(self, *args) - | save_user_numforms(self) + | Save user-defined number formats into the database. | | save_user_unions(self, *args) - | save_user_unions(self) + | Save user-defined union field selections into the database. | | set_user_cmt(self, *args) + | 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. + | | set_user_cmt(self, loc, cmt) + | @param loc: ctree location (C++: const treeloc_t &) + | @param cmt: new comment. if empty or NULL, then an existing comment is + | deleted. (C++: const char *) | | set_user_iflags(self, *args) + | Set citem iflags. + | | set_user_iflags(self, loc, iflags) + | @param loc: citem locator (C++: const citem_locator_t &) + | @param iflags: new iflags (C++: int32) | | set_user_union_selection(self, *args) + | Set a union field selection. The 'save_user_unions()' function must be + | called after calling this function. + | | set_user_union_selection(self, ea, path) + | @param ea: address (C++: ea_t) + | @param path: in: path describing the union selection. (C++: const + | intvec_t &) | | verify(self, *args) + | 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. + | | verify(self, aul, even_without_debugger) + | @param aul: Are unused labels acceptable? (C++: allow_unused_labels_t) + | @param even_without_debugger: if false and there is no debugger, the + | verification will be skipped (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19852,10 +21594,12 @@ class cfunc_t(__builtin__.object) | cfunc_t_body_get(self) -> cinsn_t | | 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 @@ -19864,19 +21608,20 @@ class cfunc_t(__builtin__.object) | cfunc_t_hdrlines_get(self) -> int | | lvars - | get_lvars(self) -> lvars_t + | Get vector of local variables. | | maturity | cfunc_t_maturity_get(self) -> ctree_maturity_t | | mba - | cfunc_t_mba_get(self) -> mbl_array_t + | cfunc_t_mba_get(self) -> mba_t | | numforms | cfunc_t_numforms_get(self) -> user_numforms_t | | 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 @@ -19906,7 +21651,7 @@ class cfunc_t(__builtin__.object) | cfunc_t_user_unions_get(self) -> user_unions_t | | warnings - | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -19933,7 +21678,11 @@ class cfuncptr_t(__builtin__.object) | | __init__(self, *args) | __init__(self, p) -> cfuncptr_t + | p: cfunc_t * + | + | | __init__(self, r) -> cfuncptr_t + | r: qrefcnt_t< cfunc_t > const & | | __ptrval__(self, *args) | __ptrval__(self) -> size_t @@ -19953,13 +21702,22 @@ class cfuncptr_t(__builtin__.object) | | find_item_coords(self, *args) | find_item_coords(self, item, px, py) -> bool + | item: citem_t const * + | px: int * + | py: int * + | + | | find_item_coords(self, item) -> PyObject * + | item: citem_t const * | | find_label(self, *args) | find_label(self, label) -> citem_t + | label: int | | gather_derefs(self, *args) | gather_derefs(self, ci, udm=None) -> bool + | ci: ctree_item_t const & + | udm: udt_type_data_t * | | get_boundaries(self, *args) | get_boundaries(self) -> boundaries_t @@ -19969,9 +21727,16 @@ class cfuncptr_t(__builtin__.object) | | get_func_type(self, *args) | get_func_type(self, type) -> bool + | type: tinfo_t * | | get_line_item(self, *args) | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | line: char const * + | x: int + | is_ctree_line: bool + | phead: ctree_item_t * + | pitem: ctree_item_t * + | ptail: ctree_item_t * | | get_lvars(self, *args) | get_lvars(self) -> lvars_t @@ -19984,12 +21749,17 @@ class cfuncptr_t(__builtin__.object) | | get_user_cmt(self, *args) | get_user_cmt(self, loc, rt) -> char const * + | loc: treeloc_t const & + | rt: enum cmt_retrieval_type_t | | get_user_iflags(self, *args) | get_user_iflags(self, loc) -> int32 + | loc: citem_locator_t const & | | get_user_union_selection(self, *args) | get_user_union_selection(self, ea, path) -> bool + | ea: ea_t + | path: intvec_t * | | get_warnings(self, *args) | get_warnings(self) -> hexwarns_t @@ -19997,11 +21767,15 @@ class cfuncptr_t(__builtin__.object) | has_orphan_cmts(self, *args) | has_orphan_cmts(self) -> bool | + | locked(self, *args) + | locked(self) -> bool + | | print_dcl(self, *args) | print_dcl(self) | | print_func(self, *args) | print_func(self, vp) + | vp: vc_printer_t & | | refresh_func_ctext(self, *args) | refresh_func_ctext(self) @@ -20032,15 +21806,23 @@ class cfuncptr_t(__builtin__.object) | | set_user_cmt(self, *args) | set_user_cmt(self, loc, cmt) + | loc: treeloc_t const & + | cmt: char const * | | set_user_iflags(self, *args) | set_user_iflags(self, loc, iflags) + | loc: citem_locator_t const & + | iflags: int32 | | set_user_union_selection(self, *args) | set_user_union_selection(self, ea, path) + | ea: ea_t + | path: intvec_t const & | | verify(self, *args) | verify(self, aul, even_without_debugger) + | aul: enum allow_unused_labels_t + | even_without_debugger: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20075,7 +21857,7 @@ class cfuncptr_t(__builtin__.object) | cfuncptr_t_maturity_get(self) -> ctree_maturity_t | | mba - | cfuncptr_t_mba_get(self) -> mbl_array_t + | cfuncptr_t_mba_get(self) -> mba_t | | numforms | cfuncptr_t_numforms_get(self) -> user_numforms_t @@ -20125,29 +21907,36 @@ class cgoto_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cgoto_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cgoto_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cgoto_t const & | | __init__(self, *args) | __init__(self) -> cgoto_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: cgoto_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cgoto_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cgoto_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: cgoto_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20179,6 +21968,7 @@ class chain_keeper_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _gc) -> chain_keeper_t + | _gc: graph_chains_t * | | __repr__ = _swig_repr(self) | @@ -20187,6 +21977,8 @@ class chain_keeper_t(__builtin__.object) | | for_all_chains(self, *args) | for_all_chains(self, cv, gca) -> int + | @param cv (C++: chain_visitor_t &) + | @param gca (C++: int) | | front(self, *args) | front(self) -> block_chains_t @@ -20223,11 +22015,19 @@ class chain_t(ida_pro.intvec_t) | | __init__(self, *args) | __init__(self) -> chain_t - | __init__(self, t, off, w=1, v=-1) -> chain_t + | t: mopt_t + | off: sval_t + | w: int + | v: int + | + | | __init__(self, _k, w=1) -> chain_t + | _k: voff_t const & + | w: int | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: chain_t const & | | __repr__ = _swig_repr(self) | @@ -20235,7 +22035,10 @@ class chain_t(ida_pro.intvec_t) | _print(self) | | append_list(self, *args) + | Append the contents of the chain to the specified list of locations. + | | append_list(self, list) + | @param list (C++: mlist_t *) | | clear_varnum(self, *args) | clear_varnum(self) @@ -20254,6 +22057,7 @@ class chain_t(ida_pro.intvec_t) | | includes(self, *args) | includes(self, r) -> bool + | @param r (C++: const chain_t &) | | is_fake(self, *args) | is_fake(self) -> bool @@ -20284,21 +22088,27 @@ class chain_t(ida_pro.intvec_t) | | overlap(self, *args) | overlap(self, r) -> bool + | @param r (C++: const chain_t &) | | set_inited(self, *args) | set_inited(self, b) + | @param b (C++: bool) | | set_overlapped(self, *args) | set_overlapped(self, b) + | @param b (C++: bool) | | set_replaced(self, *args) | set_replaced(self, b) + | @param b (C++: bool) | | set_term(self, *args) | set_term(self, b) + | @param b (C++: bool) | | set_value(self, *args) | set_value(self, r) + | @param r (C++: const chain_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20326,9 +22136,11 @@ class chain_t(ida_pro.intvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> int const & + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20338,22 +22150,28 @@ class chain_t(ida_pro.intvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< int > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: int const & | | _del(self, *args) | _del(self, x) -> bool + | x: int const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: int const & | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | at = __getitem__(self, *args) | __getitem__(self, i) -> int const & + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -20377,49 +22195,70 @@ class chain_t(ida_pro.intvec_t) | | erase(self, *args) | erase(self, it) -> qvector< int >::iterator + | it: qvector< int >::iterator + | + | | erase(self, first, last) -> qvector< int >::iterator + | first: qvector< int >::iterator + | last: qvector< int >::iterator | | extract(self, *args) | extract(self) -> int * | | find(self, *args) | find(self, x) -> qvector< int >::iterator + | x: int const & + | + | | find(self, x) -> qvector< int >::const_iterator + | x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: int const & | | inject(self, *args) | inject(self, s, len) + | s: int * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< int >::iterator + | it: qvector< int >::iterator + | x: int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< int > & | | truncate(self, *args) | truncate(self) @@ -20444,11 +22283,14 @@ class chain_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> chain_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_chain(self, *args) | visit_chain(self, nblock, ch) -> int + | @param nblock (C++: int) + | @param ch (C++: chain_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20474,9 +22316,6 @@ class chain_visitor_t(__builtin__.object) 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 @@ -20484,9 +22323,10 @@ checkout_hexrays_license(*args) 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 + checkout_hexrays_license(silent) -> bool + @param silent: silently fail if the license cannot be checked out. + (C++: bool) + @return: false if failed Help on class cif_t in module ida_hexrays: @@ -20502,36 +22342,44 @@ class cif_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cif_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cif_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cif_t const & | | __init__(self, *args) | __init__(self) -> cif_t - | __init__(self, r) -> cif_t + | r: cif_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: cif_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cif_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cif_t const & | | __repr__ = _swig_repr(self) | | assign(self, *args) | assign(self, r) -> cif_t + | @param r (C++: const cif_t &) | | cleanup(self, *args) | cleanup(self) | | compare(self, *args) | compare(self, r) -> int + | r: cif_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20582,25 +22430,31 @@ class cinsn_t(citem_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cinsn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cinsn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cinsn_t const & | | __init__(self, *args) | __init__(self) -> cinsn_t - | __init__(self, r) -> cinsn_t + | r: cinsn_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: cinsn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cinsn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cinsn_t const & | | __repr__ = _swig_repr(self) | @@ -20639,92 +22493,149 @@ class cinsn_t(citem_t) | | _print(self, *args) | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) | _register(self) | | _replace_by(self, *args) | _replace_by(self, r) + | r: cinsn_t * | | _set_casm(self, *args) | _set_casm(self, _v) + | _v: casm_t * | | _set_cblock(self, *args) | _set_cblock(self, _v) + | _v: cblock_t * | | _set_cdo(self, *args) | _set_cdo(self, _v) + | _v: cdo_t * | | _set_cexpr(self, *args) | _set_cexpr(self, _v) + | _v: cexpr_t * | | _set_cfor(self, *args) | _set_cfor(self, _v) + | _v: cfor_t * | | _set_cgoto(self, *args) | _set_cgoto(self, _v) + | _v: cgoto_t * | | _set_cif(self, *args) | _set_cif(self, _v) + | _v: cif_t * | | _set_creturn(self, *args) | _set_creturn(self, _v) + | _v: creturn_t * | | _set_cswitch(self, *args) | _set_cswitch(self, _v) + | _v: cswitch_t * | | _set_cwhile(self, *args) | _set_cwhile(self, _v) + | _v: cwhile_t * | | assign(self, *args) | assign(self, r) -> cinsn_t + | @param r (C++: const cinsn_t &) | | cleanup(self, *args) - | cleanup(self) + | Cleanup the statement. This function properly deletes all children and + | sets the item type to cit_empty. | | collect_free_breaks(self, *args) + | 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. + | | collect_free_breaks(self, breaks) -> bool + | @param breaks: pointer to the variable where the vector of all found + | free break statements is returned. This argument can + | be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) + | 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. + | | collect_free_continues(self, continues) -> bool + | @param continues: pointer to the variable where the vector of all + | found free continue statements is returned. This + | argument can be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free continue statements have been found | | compare(self, *args) | compare(self, r) -> int + | r: cinsn_t const & | | contains_free_break(self, *args) - | contains_free_break(self) -> bool + | Check if the statement has free 'break' statements. | | contains_free_continue(self, *args) - | contains_free_continue(self) -> bool + | Check if the statement has free 'continue' statements. | | contains_insn(self, *args) + | Check if the statement contains a statement of the specified type. + | | contains_insn(self, type, times=1) -> bool + | @param type: statement opcode to look for (C++: ctype_t) + | @param times: how many times TYPE should be present (C++: int) + | @return: true if the statement has at least TIMES children with opcode + | == TYPE | | create_if(self, *args) + | Create a new if-statement. The current statement must be a block. The + | new statement will be appended to it. + | | create_if(self, cnd) -> cif_t + | @param cnd: if condition. It will be deleted after being copied. (C++: + | cexpr_t *) | | is_epilog(self) | | is_ordinary_flow(self, *args) - | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. | | new_insn(self, *args) + | Create a new statement. The current statement must be a block. The new + | statement will be appended to it. + | | new_insn(self, insn_ea) -> cinsn_t + | @param insn_ea: statement address (C++: ea_t) | | print1(self, *args) + | Print the statement into one line. Currently this function is not + | available. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | swap(self, *args) | swap(self, r) + | @param r (C++: cinsn_t &) | | zero(self, *args) - | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- | Static methods defined here: | | insn_is_epilog(*args) | insn_is_epilog(insn) -> bool + | insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20796,22 +22707,37 @@ class cinsn_t(citem_t) | | _set_op(self, *args) | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | contains_label(self, *args) - | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t + | @param _ea (C++: ea_t) | | find_parent_of(self, *args) + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -20851,6 +22777,7 @@ 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 + insn: cinsn_t const * Help on class cinsnptrvec_t in module ida_hexrays: @@ -20861,13 +22788,15 @@ class cinsnptrvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< cinsn_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> cinsn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> cinsnptrvec_t - | __init__(self, x) -> cinsnptrvec_t + | x: qvector< cinsn_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20876,17 +22805,22 @@ class cinsnptrvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< cinsn_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: cinsn_t *const & | | _del(self, *args) | _del(self, x) -> bool + | x: cinsn_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: cinsn_t *const & | | append = push_back(self, *args) | @@ -20914,49 +22848,70 @@ class cinsnptrvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< cinsn_t * >::iterator + | it: qvector< cinsn_t * >::iterator + | + | | erase(self, first, last) -> qvector< cinsn_t * >::iterator + | first: qvector< cinsn_t * >::iterator + | last: qvector< cinsn_t * >::iterator | | extract(self, *args) | extract(self) -> cinsn_t ** | | find(self, *args) | find(self, x) -> qvector< cinsn_t * >::iterator + | x: cinsn_t *const & + | + | | find(self, x) -> qvector< cinsn_t * >::const_iterator + | x: cinsn_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: cinsn_t *const & | | inject(self, *args) | inject(self, s, len) + | s: cinsn_t ** + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< cinsn_t * >::iterator + | it: qvector< cinsn_t * >::iterator + | x: cinsn_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> cinsn_t *& + | x: cinsn_t *const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: cinsn_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< cinsn_t * > & | | truncate(self, *args) | truncate(self) @@ -20988,7 +22943,7 @@ class citem_cmt_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> citem_cmt_t - | __init__(self, s) -> citem_cmt_t + | s: char const * | | __repr__ = _swig_repr(self) | @@ -21028,30 +22983,42 @@ class citem_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: citem_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: citem_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: citem_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _op) -> citem_locator_t + | _ea: ea_t + | _op: enum ctype_t + | + | | __init__(self, i) -> citem_locator_t + | i: citem_t const * | | __le__(self, *args) | __le__(self, r) -> bool + | r: citem_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: citem_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: citem_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: citem_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21086,7 +23053,7 @@ class citem_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> citem_t - | __init__(self, o) -> citem_t + | o: enum ctype_t | | __repr__ = _swig_repr(self) | @@ -21118,30 +23085,53 @@ class citem_t(__builtin__.object) | | _set_op(self, *args) | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | contains_label(self, *args) - | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t + | @param _ea (C++: ea_t) | | find_parent_of(self, *args) + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) - | is_expr(self) -> bool + | Is an expression? | | print1(self, *args) + | Print item into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) + | @return: length of the generated text. | | replace_by(self, o) | | swap(self, *args) + | Swap two 'citem_t' . + | | swap(self, r) + | @param r (C++: citem_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21195,9 +23185,6 @@ citem_to_specific_type(self) 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: @@ -21214,13 +23201,17 @@ class cloop_t(ceinsn_t) | | __init__(self, *args) | __init__(self) -> cloop_t - | __init__(self, b) -> cloop_t + | b: cinsn_t * + | + | | __init__(self, r) -> cloop_t + | r: cloop_t const & | | __repr__ = _swig_repr(self) | | assign(self, *args) | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) | cleanup(self) @@ -21252,16 +23243,20 @@ class cloop_t(ceinsn_t) | expr | ceinsn_t_expr_get(self) -> cexpr_t +Help on function close_hexrays_waitbox in module ida_hexrays: + +close_hexrays_waitbox(*args) + 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) - close_pseudocode(f) -> bool - - Close pseudocode window. - @param f: pointer to window (C++: TWidget *) - @return: false if failed + close_pseudocode(f) -> bool + @param f: pointer to window (C++: TWidget *) + @return: false if failed Help on class cnumber_t in module ida_hexrays: @@ -21272,38 +23267,58 @@ class cnumber_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cnumber_t const & | | __init__(self, *args) | __init__(self, _opnum=0) -> cnumber_t + | _opnum: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: cnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cnumber_t const & | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, type, parent=None, nice_stroff=None) + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * | | assign(self, *args) + | Assign new value + | | assign(self, v, nbytes, sign) + | @param v: new value (C++: uint64) + | @param nbytes: size of the new value in bytes (C++: int) + | @param sign: sign of the value (C++: type_sign_t) | | compare(self, *args) | compare(self, r) -> int + | r: cnumber_t const & | | value(self, *args) + | Get value. This function will properly extend the number sign to + | 64bits depending on the type sign. + | | value(self, type) -> uint64 + | @param type (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21336,28 +23351,67 @@ class codegen_t(__builtin__.object) | | Methods defined here: | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, m) -> codegen_t + | __init__(self, *args, **kwargs) | | __repr__ = _swig_repr(self) | | analyze_prolog(self, *args) + | Analyze prolog/epilog of the function to decompile. If prolog is + | found, allocate and fill 'mba->pi' structure. + | | analyze_prolog(self, fc, reachable) -> merror_t + | @param fc: flow chart (C++: const class qflow_chart_t &) + | @param reachable: bitmap of reachable blocks (C++: const class + | bitset_t &) + | @return: error code | | emit(self, *args) + | Emit one microinstruction. The L, R, D arguments usually mean the + | register number. However, they depend on CODE. For example:for m_goto + | and m_jcnd L is the target addressfor m_ldc L is the constant value to + | load + | | emit(self, code, width, l, r, d, offsize) -> minsn_t + | @param code (C++: mcode_t) + | @param width (C++: int) + | @param l (C++: uval_t) + | @param r (C++: uval_t) + | @param d (C++: uval_t) + | @param offsize (C++: int) + | @return: created microinstruction. can be NULL if the instruction got + | immediately optimized away. + | + | | emit(self, code, l, r, d) -> minsn_t + | @param code (C++: mcode_t) + | @param l (C++: uval_t) + | @param r (C++: uval_t) + | @param d (C++: uval_t) + | @return: created microinstruction. can be NULL if the instruction got + | immediately optimized away. | | emit_micro_mvm(self, *args) + | Emit one microinstruction. This variant takes a data type not a size. + | | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t + | @param code (C++: 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) - | gen_micro(self) -> merror_t + | Generate microcode for one instruction. The instruction is in INSN | | load_operand(self, *args) + | Generate microcode to load one operand. + | | load_operand(self, opnum) -> mreg_t + | @param opnum (C++: int) + | + | microgen_completed(self, *args) + | This method is called when the microcode generation is done. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21381,7 +23435,7 @@ class codegen_t(__builtin__.object) | codegen_t_mb_get(self) -> mblock_t | | mba - | codegen_t_mba_get(self) -> mbl_array_t + | codegen_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -21395,20 +23449,20 @@ class codegen_t(__builtin__.object) 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) + convert_to_user_call(udc, cdg) -> merror_t + @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 + @param type (C++: const tinfo_t &) + @param offset (C++: uval_t) Help on function create_helper in module ida_hexrays: @@ -21417,15 +23471,20 @@ 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. + create_typedef(name) -> tinfo_t + @param name: type name (C++: const char *) + @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 + n: int + @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. Help on class creturn_t in module ida_hexrays: @@ -21441,29 +23500,36 @@ class creturn_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: creturn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: creturn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: creturn_t const & | | __init__(self, *args) | __init__(self) -> creturn_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: creturn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: creturn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: creturn_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: creturn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21503,29 +23569,36 @@ class cswitch_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cswitch_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cswitch_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cswitch_t const & | | __init__(self, *args) | __init__(self) -> cswitch_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: cswitch_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cswitch_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cswitch_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: cswitch_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21566,32 +23639,45 @@ class ctext_position_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ctext_position_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ctext_position_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ctext_position_t const & | | __init__(self, *args) | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t + | _lnnum: int + | _x: int + | _y: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: ctext_position_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ctext_position_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ctext_position_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: ctext_position_t const & | | in_ctree(self, *args) + | Is the cursor in the variable/type declaration area? + | | in_ctree(self, hdrlines) -> bool + | @param hdrlines: Number of lines of the declaration area (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21702,19 +23788,32 @@ class ctree_item_t(__builtin__.object) | _get_l(self) -> lvar_t | | get_ea(self, *args) - | get_ea(self) -> ea_t + | Get address of the current item. Each ctree item has an address. | | get_label_num(self, *args) + | Get label number of the current item. + | | get_label_num(self, gln_flags) -> int + | @param gln_flags: Combination of get_label_num control bits (C++: + | int) + | @return: -1 if failed or no label | | get_lvar(self, *args) - | 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. | | get_memptr(self, *args) + | Get pointer to structure member. If the current item is a structure + | field, this function will return pointer to its definition. + | | get_memptr(self, p_sptr=None) -> member_t * + | @param p_sptr: pointer to the variable where the pointer to the parent + | structure is returned. This parameter can be NULL. + | (C++: struc_t **) + | @return: NULL if failed | | is_citem(self, *args) - | is_citem(self) -> bool + | Is the current item is a ctree item? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21759,13 +23858,15 @@ class ctree_items_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< citem_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> citem_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ctree_items_t - | __init__(self, x) -> ctree_items_t + | x: qvector< citem_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -21774,17 +23875,22 @@ class ctree_items_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< citem_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: citem_t *const & | | _del(self, *args) | _del(self, x) -> bool + | x: citem_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: citem_t *const & | | append = push_back(self, *args) | @@ -21812,49 +23918,70 @@ class ctree_items_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< citem_t * >::iterator + | it: qvector< citem_t * >::iterator + | + | | erase(self, first, last) -> qvector< citem_t * >::iterator + | first: qvector< citem_t * >::iterator + | last: qvector< citem_t * >::iterator | | extract(self, *args) | extract(self) -> citem_t ** | | find(self, *args) | find(self, x) -> qvector< citem_t * >::iterator + | x: citem_t *const & + | + | | find(self, x) -> qvector< citem_t * >::const_iterator + | x: citem_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: citem_t *const & | | inject(self, *args) | inject(self, s, len) + | s: citem_t ** + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< citem_t * >::iterator + | it: qvector< citem_t * >::iterator + | x: citem_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> citem_t *& + | x: citem_t *const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: citem_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< citem_t * > & | | truncate(self, *args) | truncate(self) @@ -21893,11 +24020,17 @@ class ctree_parentee_t(ctree_visitor_t) | | __init__(self, *args) | __init__(self, post=False) -> ctree_parentee_t + | post: bool | | __repr__ = _swig_repr(self) | | recalc_parent_types(self, *args) - | recalc_parent_types(self) -> bool + | Recalculate types of parent node. 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 it is + | recommended to restart the traversal because the information about + | parent nodes is stale. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21915,55 +24048,101 @@ class ctree_parentee_t(ctree_visitor_t) | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) + | Traverse only expressions. The traversal will start at the specified + | item and continue until of one the visit_...() functions return a non- + | zero value. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | clr_prune(self) + | Do not prune children. This is an internal function, no need to call + | it. | | clr_restart(self, *args) - | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) - | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) + | 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. + | | leave_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) - | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) - | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) - | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) - | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) - | 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) - | set_restart(self) + | Restart the travesal. Meaningful only in 'apply_to_exprs()' | | visit_expr(self, *args) + | 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) + | 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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -21991,59 +24170,106 @@ class ctree_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags) -> ctree_visitor_t + | _flags: int | | __repr__ = _swig_repr(self) | | apply_to(self, *args) + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) + | Traverse only expressions. The traversal will start at the specified + | item and continue until of one the visit_...() functions return a non- + | zero value. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | clr_prune(self) + | Do not prune children. This is an internal function, no need to call + | it. | | clr_restart(self, *args) - | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) - | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) + | 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. + | | leave_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) - | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) - | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) - | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) - | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) - | 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) - | set_restart(self) + | Restart the travesal. Meaningful only in 'apply_to_exprs()' | | visit_expr(self, *args) + | 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) + | 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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22084,29 +24310,36 @@ class cwhile_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cwhile_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cwhile_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cwhile_t const & | | __init__(self, *args) | __init__(self) -> cwhile_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: cwhile_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cwhile_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cwhile_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: cwhile_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22125,6 +24358,7 @@ class cwhile_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) | cleanup(self) @@ -22151,6 +24385,7 @@ Help on function debug_hexrays_ctree in module ida_hexrays: debug_hexrays_ctree(*args) debug_hexrays_ctree(msg) + msg: char const * Help on function decompile in module ida_hexrays: @@ -22160,35 +24395,31 @@ 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. + decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t + @param pfn: pointer to function to decompile (C++: func_t *) + @param hf: extended error information (if failed) (C++: + hexrays_failure_t *) + @param decomp_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 + decompile_many(outfile, funcaddrs, flags) -> bool + @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: @@ -22197,116 +24428,88 @@ 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 *) + dstr(tif) -> char const * + @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) + dummy_ptrtype(ptrsize, isfp) -> tinfo_t + @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 *) + eamap_begin(map) -> eamap_iterator_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 *) + eamap_clear(map) + @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 *) + eamap_end(map) -> eamap_iterator_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) + eamap_erase(map, p) + @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 &) + eamap_find(map, key) -> eamap_iterator_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) + eamap_first(p) -> ea_t const & + @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 *) + eamap_free(map) + @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 &) + eamap_insert(map, key, val) -> eamap_iterator_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: @@ -22317,12 +24520,14 @@ class eamap_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: eamap_iterator_t const & | | __init__(self, *args) | __init__(self) -> eamap_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: eamap_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -22350,54 +24555,39 @@ class eamap_iterator_t(__builtin__.object) 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) + eamap_next(p) -> eamap_iterator_t + @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) + eamap_prev(p) -> eamap_iterator_t + @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) + eamap_second(p) -> cinsnptrvec_t + @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 *) + eamap_size(map) -> size_t + @param map (C++: eamap_t *) Help on class eamap_t in module ida_hexrays: @@ -22431,6 +24621,7 @@ class eamap_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> cinsnptrvec_t + | _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -22496,33 +24687,77 @@ class eamap_t(__builtin__.object) | | __begin = | eamap_begin(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * | | __clear = | eamap_clear(map) + | + | Parameters + | ---------- + | map: eamap_t * | | __end = | eamap_end(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * | | __erase = | eamap_erase(map, p) + | + | Parameters + | ---------- + | map: eamap_t * + | p: eamap_iterator_t | | __find = | eamap_find(map, key) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * + | key: ea_t const & | | __first = | eamap_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __insert = | eamap_insert(map, key, val) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t * + | key: ea_t const & + | val: cinsnptrvec_t const & | | __next = | eamap_next(p) -> eamap_iterator_t + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __second = | eamap_second(p) -> cinsnptrvec_t + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __size = | eamap_size(map) -> size_t + | + | Parameters + | ---------- + | map: eamap_t * | | __swig_destroy__ = | delete_eamap_t(self) @@ -22554,9 +24789,11 @@ class fnum_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned short const & + | i: size_t | | __init__(self, *args) | __init__(self, data) -> fnum_array + | data: unsigned short (&)[6] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -22568,6 +24805,8 @@ class fnum_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: unsigned short const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22599,24 +24838,30 @@ class fnumber_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: fnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: fnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: fnumber_t const & | | __init__(self, *args) | __init__(self) -> fnumber_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: fnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: fnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: fnumber_t const & | | __repr__ = _swig_repr(self) | @@ -22628,6 +24873,7 @@ class fnumber_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int + | r: fnumber_t const & | | dereference_const_uint16(self, *args) | dereference_const_uint16(self) -> uint16 const * @@ -22672,7 +24918,12 @@ class gco_info_t(__builtin__.object) | __repr__ = _swig_repr(self) | | append_to_list(self, *args) + | Append operand info to LIST. This function converts IDA register + | number or stack offset to a decompiler list. + | | append_to_list(self, list, mba) -> bool + | @param list: list to append to (C++: mlist_t *) + | @param mba: microcode object (C++: const mba_t *) | | is_def(self, *args) | is_def(self) -> bool @@ -22713,137 +24964,114 @@ class gco_info_t(__builtin__.object) 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. + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t + @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 decomp_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 * + @param op (C++: ctype_t) 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. + returns true. - @param out (C++: gco_info_t *) + get_current_operand(out) -> bool + @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 + get_float_type(width) -> tinfo_t + @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) + get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t + @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 + get_member_type(mptr, type) -> bool + @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 + get_merror_desc(code, mba) -> str + @param code: Microcode error codes (C++: merror_t) + @param mba: the microcode array (C++: mba_t *) + @return: the error address Help on function get_mreg_name in module ida_hexrays: get_mreg_name(*args) + Get the microregister name. + 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. + @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) + get_op_signness(op) -> type_sign_t + @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 + @param code (C++: 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 @@ -22854,65 +25082,54 @@ get_temp_regs(*args) 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 + get_type(id, tif, guess) -> bool + @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) + get_unk_type(size) -> tinfo_t + @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 + @param code (C++: 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 + get_widget_vdui(f) -> vdui_t + @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 *) + getb_reginsn(ins) -> minsn_t + @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 *) + getf_reginsn(ins) -> minsn_t + @param ins (C++: const minsn_t *) Help on class graph_chains_t in module ida_hexrays: @@ -22932,19 +25149,26 @@ class graph_chains_t(block_chains_vec_t) | __repr__ = _swig_repr(self) | | acquire(self, *args) - | acquire(self) + | Lock the chains. | | for_all_chains(self, *args) + | Visit all chains + | | for_all_chains(self, cv, gca_flags) -> int + | @param cv: chain visitor (C++: chain_visitor_t &) + | @param gca_flags: combination of GCA_ bits (C++: int) | | is_locked(self, *args) - | 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) - | release(self) + | Unlock the chains. | | swap(self, *args) | swap(self, r) + | @param r (C++: graph_chains_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22963,6 +25187,7 @@ class graph_chains_t(block_chains_vec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> block_chains_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -22972,9 +25197,12 @@ class graph_chains_t(block_chains_vec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: block_chains_t const & | | at(self, *args) | at(self, _idx) -> block_chains_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -22998,7 +25226,12 @@ class graph_chains_t(block_chains_vec_t) | | erase(self, *args) | erase(self, it) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | + | | erase(self, first, last) -> block_chains_t + | first: qvector< block_chains_t >::iterator + | last: qvector< block_chains_t >::iterator | | extract(self, *args) | extract(self) -> block_chains_t @@ -23008,29 +25241,40 @@ class graph_chains_t(block_chains_vec_t) | | grow(self, *args) | grow(self, x=block_chains_t()) + | x: block_chains_t const & | | inject(self, *args) | inject(self, s, len) + | s: block_chains_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | x: block_chains_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> block_chains_t + | x: block_chains_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: block_chains_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -23050,18 +25294,22 @@ class graph_chains_t(block_chains_vec_t) 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) + has_cached_cfunc(ea) -> bool + @param ea (C++: ea_t) + +Help on function has_mcode_seloff in module ida_hexrays: + +has_mcode_seloff(*args) + has_mcode_seloff(op) -> bool + @param op (C++: mcode_t) Help on function hexrays_alloc in module ida_hexrays: hexrays_alloc(*args) hexrays_alloc(size) -> void * + @param size (C++: size_t) Help on class hexrays_failure_t in module ida_hexrays: @@ -23072,8 +25320,15 @@ class hexrays_failure_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> hexrays_failure_t - | __init__(self, c, ea, buf=None) -> hexrays_failure_t + | c: enum merror_t + | ea: ea_t + | buf: char const * + | + | | __init__(self, c, ea, buf) -> hexrays_failure_t + | c: enum merror_t + | ea: ea_t + | buf: qstring const & | | __repr__ = _swig_repr(self) | @@ -23113,6 +25368,7 @@ Help on function hexrays_free in module ida_hexrays: hexrays_free(*args) hexrays_free(ptr) + @param ptr (C++: void *) Help on class hexwarn_t in module ida_hexrays: @@ -23123,29 +25379,36 @@ class hexwarn_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: hexwarn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: hexwarn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: hexwarn_t const & | | __init__(self, *args) | __init__(self) -> hexwarn_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: hexwarn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: hexwarn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: hexwarn_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: hexwarn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23183,13 +25446,15 @@ class hexwarns_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< hexwarn_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> hexwarn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> hexwarns_t - | __init__(self, x) -> hexwarns_t + | x: qvector< hexwarn_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23198,17 +25463,22 @@ class hexwarns_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< hexwarn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: hexwarn_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: hexwarn_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: hexwarn_t const & | | append = push_back(self, *args) | @@ -23236,52 +25506,74 @@ class hexwarns_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> hexwarn_t + | it: qvector< hexwarn_t >::iterator + | + | | erase(self, first, last) -> hexwarn_t + | first: qvector< hexwarn_t >::iterator + | last: qvector< hexwarn_t >::iterator | | extract(self, *args) | extract(self) -> hexwarn_t | | find(self, *args) | find(self, x) -> hexwarn_t + | x: hexwarn_t const & + | + | | find(self, x) -> hexwarn_t + | x: hexwarn_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=hexwarn_t()) + | x: hexwarn_t const & | | has(self, *args) | has(self, x) -> bool + | x: hexwarn_t const & | | inject(self, *args) | inject(self, s, len) + | s: hexwarn_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> hexwarn_t + | it: qvector< hexwarn_t >::iterator + | x: hexwarn_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> hexwarn_t + | x: hexwarn_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: hexwarn_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< hexwarn_t > & | | truncate(self, *args) | truncate(self) @@ -23318,7 +25610,15 @@ class history_item_t(ctext_position_t) | | __init__(self, *args) | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t + | _ea: ea_t + | _lnnum: int + | _x: int + | _y: int + | + | | __init__(self, _ea, p) -> history_item_t + | _ea: ea_t + | p: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -23345,27 +25645,37 @@ class history_item_t(ctext_position_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ctext_position_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ctext_position_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ctext_position_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: ctext_position_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ctext_position_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ctext_position_t const & | | compare(self, *args) | compare(self, r) -> int + | r: ctext_position_t const & | | in_ctree(self, *args) + | Is the cursor in the variable/type declaration area? + | | in_ctree(self, hdrlines) -> bool + | @param hdrlines: Number of lines of the declaration area (C++: int) | | ---------------------------------------------------------------------- | Data descriptors inherited from ctext_position_t: @@ -23410,16 +25720,18 @@ class history_t(qvector_history_t) | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | at = __getitem__(self, *args) | __getitem__(self, i) -> history_item_t + | i: size_t | | pop(self, *args) | pop(self) -> history_item_t | | push(self, *args) | push(self, v) + | v: history_item_t const & | | top(self, *args) | top(self) -> history_item_t @@ -23442,21 +25754,28 @@ class history_t(qvector_history_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< history_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> history_item_t + | i: size_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< history_item_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: history_item_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: history_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: history_item_t const & | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -23480,52 +25799,74 @@ class history_t(qvector_history_t) | | erase(self, *args) | erase(self, it) -> history_item_t + | it: qvector< history_item_t >::iterator + | + | | erase(self, first, last) -> history_item_t + | first: qvector< history_item_t >::iterator + | last: qvector< history_item_t >::iterator | | extract(self, *args) | extract(self) -> history_item_t | | find(self, *args) | find(self, x) -> history_item_t + | x: history_item_t const & + | + | | find(self, x) -> history_item_t + | x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=history_item_t()) + | x: history_item_t const & | | has(self, *args) | has(self, x) -> bool + | x: history_item_t const & | | inject(self, *args) | inject(self, s, len) + | s: history_item_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> history_item_t + | it: qvector< history_item_t >::iterator + | x: history_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: history_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< history_item_t > & | | truncate(self, *args) | truncate(self) @@ -23542,16 +25883,14 @@ class history_t(qvector_history_t) 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. + init_hexrays_plugin(flags=0) -> bool + @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: @@ -23561,341 +25900,339 @@ install_hexrays_callback(callback) 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) + install_microcode_filter(filter, install=True) + @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) + is_additive(op) -> bool + @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) + is_assignment(op) -> bool + @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) + is_binary(op) -> bool + @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) + is_bitop(op) -> bool + @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 + is_bool_type(type) -> bool + @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) + is_break_consumer(op) -> bool + @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) + is_commutative(op) -> bool + @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 &) + is_inplace_def(type) -> bool + @param type (C++: const tinfo_t &) Help on function is_kreg in module ida_hexrays: is_kreg(*args) + 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_kreg(r) -> bool - - - 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) - is_logical(op) -> bool - - Is logical operator? - - @param op (C++: ctype_t) + is_logical(op) -> bool + @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) + is_loop(op) -> bool + @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) + is_lvalue(op) -> bool + @param op (C++: ctype_t) Help on function is_may_access in module ida_hexrays: is_may_access(*args) is_may_access(maymust) -> bool + @param maymust (C++: maymust_t) Help on function is_mcode_addsub in module ida_hexrays: is_mcode_addsub(*args) is_mcode_addsub(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_call in module ida_hexrays: is_mcode_call(*args) is_mcode_call(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_commutative in module ida_hexrays: is_mcode_commutative(*args) is_mcode_commutative(mcode) -> bool + @param mcode (C++: mcode_t) 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 + @param mcode (C++: mcode_t) 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 + @param mcode (C++: mcode_t) Help on function is_mcode_divmod in module ida_hexrays: is_mcode_divmod(*args) is_mcode_divmod(op) -> bool + @param op (C++: mcode_t) Help on function is_mcode_fpu in module ida_hexrays: is_mcode_fpu(*args) is_mcode_fpu(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_j1 in module ida_hexrays: is_mcode_j1(*args) is_mcode_j1(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_jcond in module ida_hexrays: is_mcode_jcond(*args) is_mcode_jcond(mcode) -> bool + @param mcode (C++: mcode_t) 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) + is_mcode_propagatable(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_set in module ida_hexrays: is_mcode_set(*args) is_mcode_set(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_set1 in module ida_hexrays: is_mcode_set1(*args) is_mcode_set1(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_shift in module ida_hexrays: is_mcode_shift(*args) is_mcode_shift(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_xdsu in module ida_hexrays: is_mcode_xdsu(*args) is_mcode_xdsu(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_multiplicative in module ida_hexrays: is_multiplicative(*args) - is_multiplicative(op) -> bool - - Is multiplicative operator? - - @param op (C++: ctype_t) + is_multiplicative(op) -> bool + @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) + is_nonbool_type(type) -> bool + @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) + is_paf(t) -> bool + @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) + is_prepost(op) -> bool + @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) + is_ptr_or_array(t) -> bool + @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) + is_relational(op) -> bool + @param op (C++: ctype_t) Help on function is_signed_mcode in module ida_hexrays: is_signed_mcode(*args) is_signed_mcode(code) -> bool + @param code (C++: mcode_t) 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. + is_small_udt(tif) -> bool + @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 + is_type_correct(ptr) -> bool + @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) + is_unary(op) -> bool + @param op (C++: ctype_t) Help on function is_unsigned_mcode in module ida_hexrays: is_unsigned_mcode(*args) is_unsigned_mcode(code) -> bool + @param code (C++: mcode_t) + +Help on class iterator in module ida_hexrays: + +class iterator(__builtin__.object) + | Proxy of C++ bitset_t::iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, n) -> bool + | n: bitset_t::iterator const & + | + | __init__(self, *args) + | __init__(self, n=-1) -> iterator + | n: int + | + | __ne__(self, *args) + | __ne__(self, n) -> bool + | n: bitset_t::iterator const & + | + | __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_iterator(self) Help on class ivl_t in module ida_hexrays: @@ -23911,24 +26248,32 @@ class ivl_t(uval_ivl_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ivl_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ivl_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ivl_t const & | | __init__(self, *args) | __init__(self, _off, _size) -> ivl_t + | _off: uval_t + | _size: uval_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: ivl_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ivl_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -23937,9 +26282,11 @@ class ivl_t(uval_ivl_t) | | compare(self, *args) | compare(self, r) -> int + | r: ivl_t const & | | contains(self, *args) | contains(self, off2) -> bool + | @param off2 (C++: uval_t) | | dstr(self, *args) | dstr(self) -> char const * @@ -23949,15 +26296,19 @@ class ivl_t(uval_ivl_t) | | extend_to_cover(self, *args) | extend_to_cover(self, r) -> bool + | @param r (C++: const ivl_t &) | | includes(self, *args) | includes(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) | | intersect(self, *args) | intersect(self, r) + | @param r (C++: const ivl_t &) | | overlap(self, *args) | overlap(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24051,25 +26402,31 @@ class ivlset_t(uval_ivl_ivlset_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ivlset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ivlset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ivlset_t const & | | __init__(self, *args) | __init__(self) -> ivlset_t - | __init__(self, ivl) -> ivlset_t + | ivl: ivl_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: ivlset_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ivlset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ivlset_t const & | | __repr__ = _swig_repr(self) | @@ -24078,17 +26435,29 @@ class ivlset_t(uval_ivl_ivlset_t) | | add(self, *args) | add(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) + | + | | add(self, ea, size) -> bool + | ea: ea_t + | size: asize_t + | + | | add(self, ivs) -> bool + | ivs: ivlset_t const & | | addmasked(self, *args) | addmasked(self, ivs, mask) -> bool + | @param ivs (C++: const ivlset_t &) + | @param mask (C++: const ivl_t &) | | compare(self, *args) | compare(self, r) -> int + | r: ivlset_t const & | | contains(self, *args) | contains(self, off) -> bool + | @param off (C++: uval_t) | | count(self, *args) | count(self) -> asize_t @@ -24098,18 +26467,33 @@ class ivlset_t(uval_ivl_ivlset_t) | | has_common(self, *args) | has_common(self, ivl, strict=False) -> bool + | @param ivl (C++: const ivl_t &) + | @param strict (C++: bool) + | + | | has_common(self, ivs) -> bool + | ivs: ivlset_t const & | | includes(self, *args) | includes(self, ivs) -> bool + | @param ivs (C++: const ivlset_t &) | | intersect(self, *args) | intersect(self, ivs) -> bool + | @param ivs (C++: const ivlset_t &) | | sub(self, *args) | sub(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) + | + | | sub(self, ea, size) -> bool + | ea: ea_t + | size: asize_t + | + | | sub(self, ivs) -> bool + | ivs: ivlset_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24145,6 +26529,7 @@ class ivlset_t(uval_ivl_ivlset_t) | | getivl(self, *args) | getivl(self, idx) -> ivl_t + | idx: int | | lastivl(self, *args) | lastivl(self) -> ivl_t @@ -24159,10 +26544,12 @@ class ivlset_t(uval_ivl_ivlset_t) | set_all_values(self) | | single_value(self, *args) - | single_value(self, v) -> bool + | single_value(self) -> bool + | v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) | swap(self, r) + | r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from uval_ivl_ivlset_t: @@ -24177,11 +26564,14 @@ Help on function jcnd2set in module ida_hexrays: jcnd2set(*args) jcnd2set(code) -> mcode_t + @param code (C++: mcode_t) Help on function lexcompare in module ida_hexrays: lexcompare(*args) lexcompare(a, b) -> int + a: mop_t const & + b: mop_t const & Help on function lnot in module ida_hexrays: @@ -24196,58 +26586,65 @@ class lvar_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: lvar_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: lvar_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: lvar_locator_t const & | | __init__(self, *args) | __init__(self) -> lvar_locator_t - | __init__(self, loc, ea) -> lvar_locator_t + | loc: vdloc_t const & + | ea: ea_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: lvar_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: lvar_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: lvar_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: lvar_locator_t const & | | get_reg1(self, *args) - | get_reg1(self) -> mreg_t + | Get the register number of the variable. | | get_reg2(self, *args) - | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) - | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t + | Get information about scattered variable. | | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. | | is_reg1(self, *args) - | is_reg1(self) -> bool + | Is variable located on one register? | | is_reg2(self, *args) - | is_reg2(self) -> bool + | Is variable located on two registers? | | is_reg_var(self, *args) - | is_reg_var(self) -> bool + | Is variable located on register(s)? | | is_scattered(self, *args) - | is_scattered(self) -> bool + | Is variable scattered? | | is_stk_var(self, *args) - | is_stk_var(self) -> bool + | Is variable located on the stack? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24276,95 +26673,71 @@ class lvar_locator_t(__builtin__.object) 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 *) + lvar_mapping_begin(map) -> lvar_mapping_iterator_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 *) + lvar_mapping_clear(map) + @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 *) + lvar_mapping_end(map) -> lvar_mapping_iterator_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) + lvar_mapping_erase(map, p) + @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 &) + lvar_mapping_find(map, key) -> lvar_mapping_iterator_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) + lvar_mapping_first(p) -> lvar_locator_t + @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 *) + lvar_mapping_free(map) + @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 &) + lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_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: @@ -24375,12 +26748,14 @@ class lvar_mapping_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: lvar_mapping_iterator_t const & | | __init__(self, *args) | __init__(self) -> lvar_mapping_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: lvar_mapping_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -24408,54 +26783,39 @@ class lvar_mapping_iterator_t(__builtin__.object) 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) + lvar_mapping_next(p) -> 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_prev(p) -> lvar_mapping_iterator_t - - Move to the previous element. - - @param p (C++: lvar_mapping_iterator_t) + lvar_mapping_prev(p) -> 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_mapping_second(p) -> lvar_locator_t - - Get reference to the current map value. - - @param p (C++: lvar_mapping_iterator_t) + lvar_mapping_second(p) -> lvar_locator_t + @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 *) + lvar_mapping_size(map) -> size_t + @param map (C++: lvar_mapping_t *) Help on class lvar_mapping_t in module ida_hexrays: @@ -24471,6 +26831,7 @@ class lvar_mapping_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> lvar_locator_t + | _Keyval: lvar_locator_t const & | | size(self, *args) | size(self) -> size_t @@ -24502,36 +26863,50 @@ class lvar_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: lvar_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: lvar_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: lvar_ref_t const & | | __init__(self, *args) | __init__(self, m, i, o=0) -> lvar_ref_t + | m: mba_t * + | i: int + | o: sval_t + | + | | __init__(self, r) -> lvar_ref_t + | r: lvar_ref_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: lvar_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: lvar_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: lvar_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: lvar_ref_t const & | | swap(self, *args) | swap(self, r) + | @param r (C++: lvar_ref_t &) | | var(self, *args) - | var(self) -> lvar_t + | Retrieve the referenced variable. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24546,7 +26921,7 @@ class lvar_ref_t(__builtin__.object) | lvar_ref_t_idx_get(self) -> int | | mba - | lvar_ref_t_mba_get(self) -> mbl_array_t + | lvar_ref_t_mba_get(self) -> mba_t | | off | lvar_ref_t_off_get(self) -> sval_t @@ -24569,12 +26944,14 @@ class lvar_saved_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: lvar_saved_info_t const & | | __init__(self, *args) | __init__(self) -> lvar_saved_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: lvar_saved_info_t const & | | __repr__ = _swig_repr(self) | @@ -24662,13 +27039,15 @@ class lvar_saved_infos_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< lvar_saved_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_saved_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> lvar_saved_infos_t - | __init__(self, x) -> lvar_saved_infos_t + | 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. @@ -24677,17 +27056,22 @@ class lvar_saved_infos_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< lvar_saved_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: lvar_saved_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: lvar_saved_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: lvar_saved_info_t const & | | append = push_back(self, *args) | @@ -24715,52 +27099,74 @@ class lvar_saved_infos_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> lvar_saved_info_t + | it: qvector< lvar_saved_info_t >::iterator + | + | | erase(self, first, last) -> lvar_saved_info_t + | first: qvector< lvar_saved_info_t >::iterator + | last: qvector< lvar_saved_info_t >::iterator | | extract(self, *args) | extract(self) -> lvar_saved_info_t | | find(self, *args) | find(self, x) -> lvar_saved_info_t + | x: lvar_saved_info_t const & + | + | | find(self, x) -> lvar_saved_info_t + | x: lvar_saved_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=lvar_saved_info_t()) + | x: lvar_saved_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: lvar_saved_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: lvar_saved_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_saved_info_t + | it: qvector< lvar_saved_info_t >::iterator + | x: lvar_saved_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> lvar_saved_info_t + | x: lvar_saved_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_saved_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< lvar_saved_info_t > & | | truncate(self, *args) | truncate(self) @@ -24800,10 +27206,19 @@ class lvar_t(lvar_locator_t) | __repr__ = _swig_repr(self) | | accepts_type(self, *args) + | Check if the variable accept the specified type. Some types are + | forbidden (void, function types, wrong arrays, etc) + | | accepts_type(self, t, may_change_thisarg=False) -> bool + | @param t (C++: const tinfo_t &) + | @param may_change_thisarg (C++: bool) | | append_list(self, *args) + | Append local variable to mlist. + | | append_list(self, lst, pad_if_scattered=False) + | @param lst: list to append to (C++: mlist_t *) + | @param pad_if_scattered (C++: bool) | | clear_used(self, *args) | clear_used(self) @@ -24850,6 +27265,9 @@ class lvar_t(lvar_locator_t) | clr_unknown_width(self, *args) | clr_unknown_width(self) | + | clr_used_byref(self, *args) + | clr_used_byref(self) + | | clr_user_info(self, *args) | clr_user_info(self) | @@ -24860,34 +27278,49 @@ class lvar_t(lvar_locator_t) | clr_user_type(self) | | has_common(self, *args) + | Do variables overlap? + | | has_common(self, v) -> bool + | @param v (C++: const lvar_t &) | | has_common_bit(self, *args) + | Does the variable overlap with the specified location? + | | has_common_bit(self, loc, width2) -> bool + | @param loc (C++: const vdloc_t &) + | @param width2 (C++: asize_t) | | has_regname(self, *args) - | has_regname(self) -> bool + | Has a register name? (like _RAX) | | is_aliasable(self, *args) + | Is the variable aliasable? + | | is_aliasable(self, mba) -> bool + | @param mba: ptr to the current mba_t Aliasable variables may be + | modified indirectly (through a pointer) (C++: const mba_t + | *) | | is_automapped(self, *args) - | is_automapped(self) -> bool + | Was the variable automatically mapped to another variable? | | is_dummy_arg(self, *args) - | is_dummy_arg(self) -> bool + | Is a dummy argument (added to fill a hole in the argument list) | | is_forced_var(self, *args) - | is_forced_var(self) -> bool + | Is a forced variable? | | is_noptr_var(self, *args) - | is_noptr_var(self) -> bool + | Variable type should not be a pointer. | | is_notarg(self, *args) - | is_notarg(self) -> bool + | Is a local variable? (local variable cannot be an input argument) | | is_thisarg(self, *args) - | is_thisarg(self) -> bool + | Is 'this' argument of a C++ member function? + | + | is_used_byref(self, *args) + | Was the address of the variable taken? | | set_arg_var(self, *args) | set_arg_var(self) @@ -24902,7 +27335,10 @@ class lvar_t(lvar_locator_t) | set_fake_var(self) | | set_final_lvar_type(self, *args) + | Set final variable type. + | | set_final_lvar_type(self, t) + | @param t (C++: const tinfo_t &) | | set_floating_var(self, *args) | set_floating_var(self) @@ -24911,7 +27347,17 @@ class lvar_t(lvar_locator_t) | set_forced_var(self) | | set_lvar_type(self, *args) + | 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. + | | set_lvar_type(self, t, may_fail=False) -> bool + | @param t: new type (C++: const tinfo_t &) + | @param may_fail: if false and type is bad, interr (C++: bool) + | @return: success | | set_mapdst_var(self, *args) | set_mapdst_var(self) @@ -24946,6 +27392,9 @@ class lvar_t(lvar_locator_t) | set_used(self, *args) | set_used(self) | + | set_used_byref(self, *args) + | set_used_byref(self) + | | set_user_name(self, *args) | set_user_name(self) | @@ -24953,11 +27402,17 @@ class lvar_t(lvar_locator_t) | set_user_type(self) | | set_width(self, *args) + | 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()' . + | | set_width(self, w, svw_flags=0) -> bool + | @param w: new width (C++: int) + | @param svw_flags: combination of SVW_... bits (C++: int) + | @return: success | | type(self, *args) - | type(self) -> tinfo_t - | type(self) -> tinfo_t + | Get variable type. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24972,43 +27427,44 @@ class lvar_t(lvar_locator_t) | lvar_t_divisor_get(self) -> uint64 | | 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 * @@ -25020,10 +27476,10 @@ class lvar_t(lvar_locator_t) | lvar_t_tif_get(self) -> tinfo_t | | 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 @@ -25039,52 +27495,58 @@ class lvar_t(lvar_locator_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: lvar_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: lvar_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: lvar_locator_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: lvar_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: lvar_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: lvar_locator_t const & | | compare(self, *args) | compare(self, r) -> int + | r: lvar_locator_t const & | | get_reg1(self, *args) - | get_reg1(self) -> mreg_t + | Get the register number of the variable. | | get_reg2(self, *args) - | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) - | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t + | Get information about scattered variable. | | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. | | is_reg1(self, *args) - | is_reg1(self) -> bool + | Is variable located on one register? | | is_reg2(self, *args) - | is_reg2(self) -> bool + | Is variable located on two registers? | | is_reg_var(self, *args) - | is_reg_var(self) -> bool + | Is variable located on register(s)? | | is_scattered(self, *args) - | is_scattered(self) -> bool + | Is variable scattered? | | is_stk_var(self, *args) - | is_stk_var(self) -> bool + | Is variable located on the stack? | | ---------------------------------------------------------------------- | Data descriptors inherited from lvar_locator_t: @@ -25117,13 +27579,20 @@ class lvar_uservec_t(__builtin__.object) | clear(self) | | find_info(self, *args) + | find saved user settings for given var + | | find_info(self, vloc) -> lvar_saved_info_t + | @param vloc (C++: const lvar_locator_t &) | | keep_info(self, *args) + | Preserve user settings for given var. + | | keep_info(self, v) + | @param v (C++: const lvar_t &) | | swap(self, *args) | swap(self, r) + | @param r (C++: lvar_uservec_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25173,16 +27642,37 @@ class lvars_t(qvector_lvar_t) | __repr__ = _swig_repr(self) | | find(self, *args) + | Find variable at the specified location. + | | find(self, ll) -> lvar_t + | @param ll: variable location (C++: const lvar_locator_t &) + | @return: pointer to variable or NULL | | find_input_lvar(self, *args) + | Find input variable at the specified location. + | | find_input_lvar(self, argloc, _size) -> int + | @param argloc: variable location (C++: const vdloc_t &) + | @param _size: variable size (C++: int) + | @return: -1 if failed, otherwise the index into the variables vector. | | find_lvar(self, *args) + | Find variable at the specified location. + | | find_lvar(self, location, width, defblk=-1) -> int + | @param location: variable location (C++: const vdloc_t &) + | @param width: variable size (C++: int) + | @param defblk: definition block of the lvar. -1 means any block (C++: + | int) + | @return: -1 if failed, otherwise the index into the variables vector. | | find_stkvar(self, *args) + | Find stack variable at the specified location. + | | find_stkvar(self, spoff, width) -> int + | @param spoff: offset from the minimal sp (C++: sval_t) + | @param width: variable size (C++: int) + | @return: -1 if failed, otherwise the index into the variables vector. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25201,9 +27691,11 @@ class lvars_t(qvector_lvar_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< lvar_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -25213,22 +27705,28 @@ class lvars_t(qvector_lvar_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< lvar_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: lvar_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: lvar_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: lvar_t const & | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | at = __getitem__(self, *args) | __getitem__(self, i) -> lvar_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -25252,7 +27750,12 @@ class lvars_t(qvector_lvar_t) | | erase(self, *args) | erase(self, it) -> lvar_t + | it: qvector< lvar_t >::iterator + | + | | erase(self, first, last) -> lvar_t + | first: qvector< lvar_t >::iterator + | last: qvector< lvar_t >::iterator | | extract(self, *args) | extract(self) -> lvar_t @@ -25262,38 +27765,51 @@ class lvars_t(qvector_lvar_t) | | grow(self, *args) | grow(self, x=lvar_t()) + | x: lvar_t const & | | has(self, *args) | has(self, x) -> bool + | x: lvar_t const & | | inject(self, *args) | inject(self, s, len) + | s: lvar_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_t + | it: qvector< lvar_t >::iterator + | x: lvar_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< lvar_t > & | | truncate(self, *args) | truncate(self) @@ -25314,14 +27830,12 @@ 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, + make_pointer(type) -> tinfo_t + @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: @@ -25330,16 +27844,14 @@ 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. + mark_cfunc_dirty(ea, close_views=False) -> bool + @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: @@ -25364,6 +27876,7 @@ class mba_range_iterator_t(__builtin__.object) | | set(self, *args) | set(self, mbr) -> bool + | @param mbr (C++: const mba_ranges_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25398,7 +27911,11 @@ class mba_ranges_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _pfn=None) -> mba_ranges_t + | _pfn: func_t * + | + | | __init__(self, r) -> mba_ranges_t + | r: rangevec_t const & | | __repr__ = _swig_repr(self) | @@ -25441,10 +27958,10 @@ class mba_ranges_t(__builtin__.object) | __swig_destroy__ = | delete_mba_ranges_t(self) -Help on class mbl_array_t in module ida_hexrays: +Help on class mba_t in module ida_hexrays: -class mbl_array_t(__builtin__.object) - | Proxy of C++ mbl_array_t class. +class mba_t(__builtin__.object) + | Proxy of C++ mba_t class. | | Methods defined here: | @@ -25457,19 +27974,66 @@ class mbl_array_t(__builtin__.object) | | _print(self, *args) | _print(self, vp) + | vp: vd_printer_t & | | _register(self, *args) | _register(self) | + | alloc_fict_ea(self, *args) + | 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 LDManother 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. + | + | alloc_fict_ea(self, real_ea) -> ea_t + | @param real_ea (C++: ea_t) + | @return: a unique fictional address + | + | alloc_kreg(self, *args) + | Allocate a kernel register. + | + | alloc_kreg(self, size, check_size=True) -> mreg_t + | @param size: size of the register in bytes (C++: size_t) + | @param check_size: if true, only the sizes that correspond to a size + | of a basic type will be accepted. (C++: bool) + | @return: allocated register. mr_none means failure. + | | alloc_lvars(self, *args) - | 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) + | Analyze calls and determine calling conventions. + | | analyze_calls(self, acflags) -> int + | @param acflags: permitted actions that are necessary for successful + | detection of calling conventions. See Bits for + | analyze_calls() (C++: int) + | @return: number of calls. -1 means error. | | arg(self, *args) + | Get input argument of the decompiled function. + | | arg(self, n) -> lvar_t + | @param n: argument number (0..nargs-1) (C++: int) + | + | | arg(self, n) -> lvar_t + | @param n: argument number (0..nargs-1) (C++: int) | | argbase(self, *args) | argbase(self) -> sval_t @@ -25484,7 +28048,10 @@ class mbl_array_t(__builtin__.object) | bad_call_sp_detected(self) -> bool | | build_graph(self, *args) - | 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. | | calc_shins_flags(self, *args) | calc_shins_flags(self) -> int @@ -25500,18 +28067,30 @@ class mbl_array_t(__builtin__.object) | | clr_mba_flags(self, *args) | clr_mba_flags(self, f) + | @param f (C++: int) | | clr_mba_flags2(self, *args) | clr_mba_flags2(self, f) + | @param f (C++: int) | | combine_blocks(self, *args) - | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. + | It calls 'remove_empty_blocks()' as well. | | common_stkvars_stkargs(self, *args) | common_stkvars_stkargs(self) -> bool | | copy_block(self, *args) + | 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. + | | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t + | @param blk: block to copy (C++: mblock_t *) + | @param new_serial: position of the copied block (C++: int) + | @param cpblk_flags: combination of Batch decompilation bits ... bits + | (C++: int) + | @return: pointer to the new copy | | deleted_pairs(self, *args) | deleted_pairs(self) -> bool @@ -25523,22 +28102,60 @@ class mbl_array_t(__builtin__.object) | display_valnums(self) -> bool | | dump(self, *args) - | 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) | dump_mba(self, _verify, title) + | @param _verify (C++: bool) + | @param title (C++: const char *) | | find_mop(self, *args) + | 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. + | | find_mop(self, ctx, ea, is_dest, list) -> mop_t + | @param ctx: context information for the result (C++: op_parent_info_t + | *) + | @param ea: desired address of the operand (C++: ea_t) + | @param is_dest: search for destination operand? this argument may be + | ignored if the exact match could not be found (C++: + | bool) + | @param list: list of locations the correspond to the operand (C++: + | const mlist_t &) + | @return: pointer to the operand or NULL. | | for_all_insns(self, *args) + | Visit all instructions. This function visits all instruction and + | subinstructions. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) + | Visit all operands of all instructions. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_topinsns(self, *args) + | Visit all top level instructions. + | | for_all_topinsns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero + | + | free_kreg(self, *args) + | Free a kernel register. If wrong arguments are passed, this function + | will generate an internal error. + | + | free_kreg(self, reg, size) + | @param reg: a previously allocated kernel register (C++: mreg_t) + | @param size: size of the register in bytes (C++: size_t) | | generated_asserts(self, *args) | generated_asserts(self) -> bool @@ -25550,10 +28167,12 @@ class mbl_array_t(__builtin__.object) | get_curfunc(self) -> func_t * | | get_graph(self, *args) - | 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) | get_ida_argloc(self, v) -> argloc_t + | @param v (C++: const lvar_t &) | | get_lvars_region(self, *args) | get_lvars_region(self) -> ivl_t @@ -25565,8 +28184,14 @@ class mbl_array_t(__builtin__.object) | get_mba_flags2(self) -> int | | get_mblock(self, *args) + | Get basic block by its serial number. + | | get_mblock(self, n) -> mblock_t + | @param n (C++: int) + | + | | get_mblock(self, n) -> mblock_t + | @param n (C++: int) | | get_shadow_region(self, *args) | get_shadow_region(self) -> ivl_t @@ -25575,7 +28200,11 @@ class mbl_array_t(__builtin__.object) | get_stack_region(self) -> ivl_t | | get_std_region(self, *args) + | Get information about various memory regions. We map the stack frame + | to the global memory, to some unused range. + | | get_std_region(self, idx) -> ivl_t + | @param idx (C++: memreg_index_t) | | graph_insns(self, *args) | graph_insns(self) -> bool @@ -25591,9 +28220,19 @@ class mbl_array_t(__builtin__.object) | | idaloc2vd(self, *args) | idaloc2vd(self, loc, width) -> vdloc_t + | @param loc (C++: const argloc_t &) + | @param width (C++: int) | | insert_block(self, *args) + | 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. + | | insert_block(self, bblk) -> mblock_t + | @param bblk: the new block will be inserted before BBLK (C++: int) + | @return: ptr to the new block | | is_cdtr(self, *args) | is_cdtr(self) -> bool @@ -25612,6 +28251,7 @@ class mbl_array_t(__builtin__.object) | | is_stkarg(self, *args) | is_stkarg(self, v) -> bool + | @param v (C++: const lvar_t &) | | is_thunk(self, *args) | is_thunk(self) -> bool @@ -25628,17 +28268,37 @@ class mbl_array_t(__builtin__.object) | lvars_renamed(self, *args) | lvars_renamed(self) -> bool | + | map_fict_ea(self, *args) + | Resolve a fictional address. This function provides a reverse of the + | mapping made by 'alloc_fict_ea()' . + | + | map_fict_ea(self, fict_ea) -> ea_t + | @param fict_ea: fictional definition address (C++: ea_t) + | @return: the real instruction address + | | mark_chains_dirty(self, *args) - | 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) | may_refine_rettype(self) -> bool | | optimize_global(self, *args) - | 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. | | optimize_local(self, *args) + | Optimize each basic block locally + | | optimize_local(self, locopt_bits) -> int + | @param locopt_bits: combination of Bits for optimize_local() bits + | (C++: int) + | @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) | optimized(self) -> bool @@ -25656,10 +28316,15 @@ class mbl_array_t(__builtin__.object) | regargs_is_not_aligned(self) -> bool | | remove_block(self, *args) + | Delete a block. + | | remove_block(self, blk) -> bool + | @param blk: block to delete (C++: mblock_t *) + | @return: true if at least one of the other blocks became empty or + | unreachable | | remove_empty_blocks(self, *args) - | remove_empty_blocks(self) -> bool + | Delete all empty blocks. | | returns_fpval(self, *args) | returns_fpval(self) -> bool @@ -25667,17 +28332,25 @@ class mbl_array_t(__builtin__.object) | rtype_refined(self, *args) | rtype_refined(self) -> bool | + | save_snapshot(self, *args) + | Create and save microcode snapshot. + | + | save_snapshot(self, description) + | @param description (C++: const char *) + | | saverest_done(self, *args) | saverest_done(self) -> bool | | serialize(self, *args) - | serialize(self) + | Serialize mbl array into a sequence of bytes. | | set_mba_flags(self, *args) | set_mba_flags(self, f) + | @param f (C++: int) | | set_mba_flags2(self, *args) | set_mba_flags2(self, f) + | @param f (C++: int) | | short_display(self, *args) | short_display(self) -> bool @@ -25690,9 +28363,11 @@ class mbl_array_t(__builtin__.object) | | stkoff_ida2vd(self, *args) | stkoff_ida2vd(self, off) -> sval_t + | @param off (C++: sval_t) | | stkoff_vd2ida(self, *args) | stkoff_vd2ida(self, off) -> sval_t + | @param off (C++: sval_t) | | term(self, *args) | term(self) @@ -25708,10 +28383,25 @@ class mbl_array_t(__builtin__.object) | | vd2idaloc(self, *args) | vd2idaloc(self, loc, width, spd) -> argloc_t + | @param loc (C++: const vdloc_t &) + | @param width (C++: int) + | spd: sval_t + | + | | vd2idaloc(self, loc, width) -> argloc_t + | @param loc (C++: const vdloc_t &) + | @param width (C++: int) | | verify(self, *args) + | Verify microcode consistency. + | | verify(self, always) + | @param always: 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. (C++: bool) | | write_to_const_detected(self, *args) | write_to_const_detected(self) -> bool @@ -25720,7 +28410,8 @@ class mbl_array_t(__builtin__.object) | Static methods defined here: | | deserialize(*args) - | deserialize(bytes) -> mbl_array_t + | deserialize(bytes) -> mba_t + | bytes: uchar const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25732,159 +28423,160 @@ class mbl_array_t(__builtin__.object) | list of weak references to the object (if defined) | | aliased_args - | mbl_array_t_aliased_args_get(self) -> ivl_t + | mba_t_aliased_args_get(self) -> ivl_t | | aliased_memory - | mbl_array_t_aliased_memory_get(self) -> ivlset_t + | mba_t_aliased_memory_get(self) -> ivlset_t | | aliased_vars - | mbl_array_t_aliased_vars_get(self) -> ivl_t + | mba_t_aliased_vars_get(self) -> ivl_t | | argidx - | mbl_array_t_argidx_get(self) -> intvec_t + | mba_t_argidx_get(self) -> intvec_t | | blocks - | mbl_array_t_blocks_get(self) -> mblock_t + | mba_t_blocks_get(self) -> mblock_t | | cc - | mbl_array_t_cc_get(self) -> cm_t + | mba_t_cc_get(self) -> cm_t | | consumed_argregs - | mbl_array_t_consumed_argregs_get(self) -> rlist_t + | mba_t_consumed_argregs_get(self) -> rlist_t | | entry_ea - | mbl_array_t_entry_ea_get(self) -> ea_t + | mba_t_entry_ea_get(self) -> ea_t | | error_ea - | mbl_array_t_error_ea_get(self) -> ea_t + | mba_t_error_ea_get(self) -> ea_t | | error_strarg - | mbl_array_t_error_strarg_get(self) -> qstring * + | mba_t_error_strarg_get(self) -> qstring * | | final_type - | mbl_array_t_final_type_get(self) -> bool + | mba_t_final_type_get(self) -> bool | | first_epilog_ea - | mbl_array_t_first_epilog_ea_get(self) -> ea_t + | mba_t_first_epilog_ea_get(self) -> ea_t | | fpd - | mbl_array_t_fpd_get(self) -> sval_t + | mba_t_fpd_get(self) -> sval_t | | frregs - | mbl_array_t_frregs_get(self) -> sval_t + | mba_t_frregs_get(self) -> sval_t | | frsize - | mbl_array_t_frsize_get(self) -> sval_t + | mba_t_frsize_get(self) -> sval_t | | fti_flags - | mbl_array_t_fti_flags_get(self) -> int + | mba_t_fti_flags_get(self) -> int | | fullsize - | mbl_array_t_fullsize_get(self) -> sval_t + | mba_t_fullsize_get(self) -> sval_t | | gotoff_stkvars - | mbl_array_t_gotoff_stkvars_get(self) -> ivlset_t + | mba_t_gotoff_stkvars_get(self) -> ivlset_t | | idb_node - | mbl_array_t_idb_node_get(self) -> netnode + | mba_t_idb_node_get(self) -> netnode | | idb_spoiled - | mbl_array_t_idb_spoiled_get(self) -> reginfovec_t + | mba_t_idb_spoiled_get(self) -> reginfovec_t | | idb_type - | mbl_array_t_idb_type_get(self) -> tinfo_t + | mba_t_idb_type_get(self) -> tinfo_t | | inargoff - | mbl_array_t_inargoff_get(self) -> sval_t + | mba_t_inargoff_get(self) -> sval_t | | label - | mbl_array_t_label_get(self) -> qstring * + | mba_t_label_get(self) -> qstring * | | last_prolog_ea - | mbl_array_t_last_prolog_ea_get(self) -> ea_t + | mba_t_last_prolog_ea_get(self) -> ea_t | | maturity - | mbl_array_t_maturity_get(self) -> mba_maturity_t + | mba_t_maturity_get(self) -> mba_maturity_t | | mbr - | mbl_array_t_mbr_get(self) -> mba_ranges_t + | mba_t_mbr_get(self) -> mba_ranges_t | | minargref - | mbl_array_t_minargref_get(self) -> sval_t + | mba_t_minargref_get(self) -> sval_t | | minstkref - | mbl_array_t_minstkref_get(self) -> sval_t + | mba_t_minstkref_get(self) -> sval_t | | minstkref_ea - | mbl_array_t_minstkref_ea_get(self) -> ea_t + | mba_t_minstkref_ea_get(self) -> ea_t | | natural - | mbl_array_t_natural_get(self) -> mblock_t ** + | mba_t_natural_get(self) -> mblock_t ** | | nodel_memory - | mbl_array_t_nodel_memory_get(self) -> mlist_t + | mba_t_nodel_memory_get(self) -> mlist_t | | notes - | mbl_array_t_notes_get(self) -> hexwarns_t + | mba_t_notes_get(self) -> hexwarns_t | | npurged - | mbl_array_t_npurged_get(self) -> int + | mba_t_npurged_get(self) -> int | | occurred_warns - | mbl_array_t_occurred_warns_get(self) -> uchar [32] + | mba_t_occurred_warns_get(self) -> uchar [32] | | pfn_flags - | mbl_array_t_pfn_flags_get(self) -> int + | mba_t_pfn_flags_get(self) -> int | | qty - | mbl_array_t_qty_get(self) -> int + | mba_t_qty_get(self) -> int | | reqmat - | mbl_array_t_reqmat_get(self) -> mba_maturity_t + | mba_t_reqmat_get(self) -> mba_maturity_t | | restricted_memory - | mbl_array_t_restricted_memory_get(self) -> ivlset_t + | mba_t_restricted_memory_get(self) -> ivlset_t | | retsize - | mbl_array_t_retsize_get(self) -> int + | mba_t_retsize_get(self) -> int | | retvaridx - | mbl_array_t_retvaridx_get(self) -> int + | mba_t_retvaridx_get(self) -> int | | shadow_args - | mbl_array_t_shadow_args_get(self) -> int + | mba_t_shadow_args_get(self) -> int | | spd_adjust - | mbl_array_t_spd_adjust_get(self) -> sval_t + | mba_t_spd_adjust_get(self) -> sval_t | | spoiled_list - | mbl_array_t_spoiled_list_get(self) -> mlist_t + | mba_t_spoiled_list_get(self) -> mlist_t | | stacksize - | mbl_array_t_stacksize_get(self) -> sval_t + | mba_t_stacksize_get(self) -> sval_t | | std_ivls - | mbl_array_t_std_ivls_get(self) -> ivl_with_name_t + | mba_t_std_ivls_get(self) -> ivl_with_name_t | | thisown | The membership flag | | tmpstk_size - | mbl_array_t_tmpstk_size_get(self) -> sval_t + | mba_t_tmpstk_size_get(self) -> sval_t | | vars - | mbl_array_t_vars_get(self) -> lvars_t + | mba_t_vars_get(self) -> lvars_t | | ---------------------------------------------------------------------- | Data and other attributes defined here: | - | __swig_destroy__ = - | delete_mbl_array_t(self) + | __swig_destroy__ = + | delete_mba_t(self) -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_deserialize(bytes) -> mbl_array_t +mba_t_deserialize(*args) + mba_t_deserialize(bytes) -> mba_t + bytes: uchar const * Help on class mbl_graph_t in module ida_hexrays: @@ -25906,25 +28598,54 @@ class mbl_graph_t(simple_graph_t) | get_chain_stamp(self) -> int | | get_du(self, *args) + | Get def-use chains. + | | get_du(self, gctype) -> graph_chains_t + | @param gctype (C++: gctype_t) | | get_mblock(self, *args) | get_mblock(self, n) -> mblock_t + | @param n (C++: int) | | get_ud(self, *args) + | Get use-def chains. + | | get_ud(self, gctype) -> graph_chains_t + | @param gctype (C++: gctype_t) | | is_du_chain_dirty(self, *args) + | Is the def-use chain of the specified kind dirty? + | | is_du_chain_dirty(self, gctype) -> bool + | @param gctype (C++: gctype_t) | | is_redefined_globally(self, *args) + | Is LIST redefined in the graph? + | | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | @param list (C++: const mlist_t &) + | @param b1 (C++: int) + | @param b2 (C++: int) + | @param m1 (C++: const minsn_t *) + | @param m2 (C++: const minsn_t *) + | @param maymust (C++: maymust_t) | | is_ud_chain_dirty(self, *args) + | Is the use-def chain of the specified kind dirty? + | | is_ud_chain_dirty(self, gctype) -> bool + | @param gctype (C++: gctype_t) | | is_used_globally(self, *args) + | Is LIST used in the graph? + | | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | @param list (C++: const mlist_t &) + | @param b1 (C++: int) + | @param b2 (C++: int) + | @param m1 (C++: const minsn_t *) + | @param m2 (C++: const minsn_t *) + | @param maymust (C++: maymust_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25960,64 +28681,208 @@ class mblock_t(__builtin__.object) | | _print(self, *args) | _print(self, vp) + | vp: vd_printer_t & | | append_def_list(self, *args) + | 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. + | | append_def_list(self, list, op, maymust) + | @param list: ptr to the output buffer. we will append to it. (C++: + | mlist_t *) + | @param op: operand to calculate the def list of (C++: const mop_t &) + | @param maymust: should we calculate 'may-def' or 'must-def' list? see + | maymust_t for more details. (C++: maymust_t) | | append_use_list(self, *args) + | 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. + | | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) + | @param list: ptr to the output buffer. we will append to it. (C++: + | mlist_t *) + | @param op: operand to calculate the use list of (C++: const mop_t &) + | @param maymust: should we calculate 'may-use' or 'must-use' list? see + | maymust_t for more details. (C++: maymust_t) + | @param mask: 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. + | (C++: bitrange_t) | | build_def_list(self, *args) + | 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. + | | build_def_list(self, ins, maymust) -> mlist_t + | @param ins: instruction to calculate the def list of (C++: const + | minsn_t &) + | @param maymust: should we calculate 'may-def' or 'must-def' list? see + | maymust_t for more details. (C++: maymust_t) + | @return: the calculated def-list | | build_lists(self, *args) + | Build def-use lists and eliminate deads. + | | build_lists(self, kill_deads) -> int + | @param kill_deads: do delete dead instructions? (C++: bool) + | @return: the number of eliminated instructions Better mblock_t::call + | make_lists_ready() rather than this function. | | build_use_list(self, *args) + | 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. + | | build_use_list(self, ins, maymust) -> mlist_t + | @param ins: instruction to calculate the use list of (C++: const + | minsn_t &) + | @param maymust: should we calculate 'may-use' or 'must-use' list? see + | maymust_t for more details. (C++: maymust_t) + | @return: the calculated use-list | | dump(self, *args) - | dump(self) + | Dump block info. This function is useful for debugging, see + | 'mba_t::dump' for info | | dump_block(self, *args) | dump_block(self, title) + | @param title (C++: const char *) | | empty(self, *args) | empty(self) -> bool | | find_access(self, *args) + | Find the instruction that accesses the specified operand. This + | function search inside one block. + | | find_access(self, op, parent, mend, fdflags) -> minsn_t + | @param op: operand to search for (C++: const mop_t &) + | @param parent (C++: minsn_t **) + | @param mend (C++: const minsn_t *) + | @param fdflags (C++: int) + | @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. NULL means 'not found'. | | find_def(self, *args) | find_def(self, op, p_i1, i2, fdflags) -> minsn_t + | @param op (C++: const mop_t &) + | @param p_i1 (C++: minsn_t **) + | @param i2 (C++: const minsn_t *) + | @param fdflags (C++: int) | | find_first_use(self, *args) + | Find the first insn that uses the specified list in the insn range. + | | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | @param list: list of locations. LIST may be modified by the function: + | redefined locations will be removed from it. (C++: + | mlist_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) + | @return: pointer to such instruction or NULL. Upon return LIST will + | contain only locations not redefined by insns [i1..result] | | find_redefinition(self, *args) + | Find the first insn that redefines any part of the list in the insn + | range. + | | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | @param list: list of locations to check. (C++: const mlist_t &) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) + | @return: pointer to such instruction or NULL. | | find_use(self, *args) | find_use(self, op, p_i1, i2, fdflags) -> minsn_t + | @param op (C++: const mop_t &) + | @param p_i1 (C++: minsn_t **) + | @param i2 (C++: const minsn_t *) + | @param fdflags (C++: int) | | for_all_insns(self, *args) + | Visit all instructions. This function visits subinstructions too. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() | | for_all_ops(self, *args) + | Visit all operands. This function visit subinstruction operands too. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @return: zero or the value returned by mv.visit_mop() | | for_all_uses(self, *args) + | Visit all operands that use LIST. + | | for_all_uses(self, list, i1, i2, mmv) -> int + | @param list: ptr to the list of locations. it may be modified: parts + | that get redefined by the instructions in [i1,i2) will be + | deleted. (C++: mlist_t *) + | @param i1: starting instruction. must be a top level insn. (C++: + | minsn_t *) + | @param i2: ending instruction (excluded). must be a top level insn. + | (C++: minsn_t *) + | @param mmv: operand visitor (C++: mlist_mop_visitor_t &) + | @return: zero or the value returned by mmv.visit_mop() | | get_reginsn_qty(self, *args) - | get_reginsn_qty(self) -> size_t + | Calculate number of register instructions in the block. Assertions are + | skipped by this function. | | get_valranges(self, *args) + | Find possible values for a block. + | | get_valranges(self, res, vivl, vrflags) -> bool + | @param res: set of value ranges (C++: valrng_t *) + | @param vivl: what to search for (C++: const vivl_t &) + | @param vrflags: combination of bits for get_valranges bits (C++: + | int) + | + | | get_valranges(self, res, vivl, m, vrflags) -> bool + | @param res: set of value ranges (C++: valrng_t *) + | @param vivl: what to search for (C++: const vivl_t &) + | m: minsn_t const * + | @param vrflags: combination of bits for get_valranges bits (C++: + | int) | | insert_into_block(self, *args) + | Insert instruction into the doubly linked list + | | insert_into_block(self, nm, om) -> minsn_t + | @param nm: new instruction (C++: minsn_t *) + | @param om: existing instruction, part of the doubly linked list if + | NULL, then the instruction will be inserted at the + | beginning of the list NM will be inserted immediately after + | OM (C++: minsn_t *) + | @return: pointer to NM | | is_branch(self, *args) | is_branch(self) -> bool @@ -26029,10 +28894,32 @@ class mblock_t(__builtin__.object) | is_nway(self) -> bool | | is_redefined(self, *args) + | Is the list redefined by the specified instructions? + | | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | @param list: list of locations to check. (C++: const mlist_t &) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) | | is_rhs_redefined(self, *args) + | Is the right hand side of the instruction redefined the insn range? + | "right hand side" corresponds to the source operands of the + | instruction. + | | is_rhs_redefined(self, ins, i1, i2) -> bool + | @param ins: instruction to consider (C++: const minsn_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) | | is_simple_goto_block(self, *args) | is_simple_goto_block(self) -> bool @@ -26044,7 +28931,20 @@ class mblock_t(__builtin__.object) | is_unknown_call(self) -> bool | | is_used(self, *args) + | Is the list used by the specified instruction range? + | | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | @param list: list of locations. LIST may be modified by the function: + | redefined locations will be removed from it. (C++: + | mlist_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) | | lists_dirty(self, *args) | lists_dirty(self) -> bool @@ -26056,7 +28956,12 @@ class mblock_t(__builtin__.object) | make_lists_ready(self) -> int | | make_nop(self, *args) + | 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. + | | make_nop(self, m) + | @param m (C++: minsn_t *) | | mark_lists_dirty(self, *args) | mark_lists_dirty(self) @@ -26065,28 +28970,49 @@ class mblock_t(__builtin__.object) | needs_propagation(self) -> bool | | npred(self, *args) - | npred(self) -> int + | Get number of block predecessors. | | nsucc(self, *args) - | nsucc(self) -> int + | Get number of block successors. | | optimize_block(self, *args) - | 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. | | optimize_insn(self, *args) + | Optimize one instruction in the context of the block. + | | optimize_insn(self, m, optflags=0x0002|0x0004) -> int + | @param m: pointer to a top level instruction (C++: minsn_t *) + | @param optflags: combination of optimization flags bits (C++: int) + | @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) - | 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). | | pred(self, *args) | pred(self, n) -> int + | @param n (C++: int) | | preds(self) | Iterates the list of predecessor blocks | | remove_from_block(self, *args) + | Remove instruction from the doubly linked list + | | remove_from_block(self, m) -> minsn_t + | @param m: instruction to remove The removed instruction is not + | deleted, the caller gets its ownership (C++: minsn_t *) + | @return: pointer to the next instruction | | request_demote64(self, *args) | request_demote64(self) @@ -26096,6 +29022,7 @@ class mblock_t(__builtin__.object) | | succ(self, *args) | succ(self, n) -> int + | @param n (C++: int) | | succs(self) | Iterates the list of successor blocks @@ -26134,7 +29061,7 @@ class mblock_t(__builtin__.object) | mblock_t_maybuse_get(self) -> mlist_t | | mba - | mblock_t_mba_get(self) -> mbl_array_t + | mblock_t_mba_get(self) -> mba_t | | minbargref | mblock_t_minbargref_get(self) -> sval_t @@ -26195,29 +29122,49 @@ class mcallarg_t(mop_t) | | __init__(self, *args) | __init__(self) -> mcallarg_t - | __init__(self, rarg) -> mcallarg_t + | rarg: mop_t const & | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | copy_mop(self, *args) | copy_mop(self, op) + | @param op (C++: const mop_t &) | | dstr(self, *args) | dstr(self) -> char const * | | make_int(self, *args) | make_int(self, val, val_ea, opno=0) + | @param val (C++: int) + | @param val_ea (C++: ea_t) + | @param opno (C++: int) | | make_uint(self, *args) | make_uint(self, val, val_ea, opno=0) + | @param val (C++: int) + | @param val_ea (C++: ea_t) + | @param opno (C++: int) | | set_regarg(self, *args) | set_regarg(self, mr, sz, tif) + | @param mr (C++: mreg_t) + | @param sz (C++: int) + | @param tif (C++: const tinfo_t &) + | + | | set_regarg(self, mr, tif) + | @param mr (C++: mreg_t) + | @param tif (C++: const tinfo_t &) + | + | | set_regarg(self, mr, dt, sign=type_unsigned) + | @param mr (C++: mreg_t) + | dt: char + | sign: type_sign_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26248,12 +29195,15 @@ class mcallarg_t(mop_t) | | __eq__(self, *args) | __eq__(self, rop) -> bool + | rop: mop_t const & | | __lt__(self, *args) | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool + | rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -26315,35 +29265,90 @@ class mcallarg_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -26365,90 +29370,172 @@ class mcallarg_t(mop_t) | | _set_a(self, *args) | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) + | _v: int | | _set_c(self, *args) | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) + | 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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) + | 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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | empty(self, *args) | empty(self) -> bool | | equal_mops(self, *args) + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) | erase(self) @@ -26457,65 +29544,122 @@ class mcallarg_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) + | 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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | is01(self, *args) - | 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) - | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool + | reg: mreg_t | | is_cc(self, *args) - | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool + | @param n (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | code: enum mcode_t | | is_kreg(self, *args) - | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) + | is_lowaddr(self) -> bool | | is_mob(self, *args) + | Is a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -26527,18 +29671,30 @@ class mcallarg_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) | is_udt(self) -> bool @@ -26550,53 +29706,136 @@ class mcallarg_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | lexcompare(self, *args) | lexcompare(self, rop) -> int + | @param rop (C++: const mop_t &) | | make_blkref(self, *args) + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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) | probably_floating(self) -> bool @@ -26606,6 +29845,9 @@ class mcallarg_t(mop_t) | set_impptr_done(self, *args) | set_impptr_done(self) | + | set_lowaddr(self, *args) + | set_lowaddr(self) + | | set_udt(self, *args) | set_udt(self) | @@ -26613,19 +29855,32 @@ class mcallarg_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) + | 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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | value(self, *args) + | 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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) | zero(self) @@ -26695,13 +29950,15 @@ class mcallargs_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< mcallarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> mcallarg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> mcallargs_t - | __init__(self, x) -> mcallargs_t + | x: qvector< mcallarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26711,20 +29968,26 @@ class mcallargs_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< mcallarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: mcallarg_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: mcallarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: mcallarg_t const & | | at(self, *args) | at(self, _idx) -> mcallarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -26748,52 +30011,74 @@ class mcallargs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> mcallarg_t + | it: qvector< mcallarg_t >::iterator + | + | | erase(self, first, last) -> mcallarg_t + | first: qvector< mcallarg_t >::iterator + | last: qvector< mcallarg_t >::iterator | | extract(self, *args) | extract(self) -> mcallarg_t | | find(self, *args) | find(self, x) -> mcallarg_t + | x: mcallarg_t const & + | + | | find(self, x) -> mcallarg_t + | x: mcallarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=mcallarg_t()) + | x: mcallarg_t const & | | has(self, *args) | has(self, x) -> bool + | x: mcallarg_t const & | | inject(self, *args) | inject(self, s, len) + | s: mcallarg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> mcallarg_t + | it: qvector< mcallarg_t >::iterator + | x: mcallarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> mcallarg_t + | x: mcallarg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: mcallarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< mcallarg_t > & | | truncate(self, *args) | truncate(self) @@ -26825,11 +30110,15 @@ class mcallinfo_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t + | _callee: ea_t + | _sargs: int | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, size=-1, shins_flags=0x04|0x02) + | size: int + | shins_flags: int | | dstr(self, *args) | dstr(self) -> char const * @@ -26842,9 +30131,11 @@ class mcallinfo_t(__builtin__.object) | | lexcompare(self, *args) | lexcompare(self, f) -> int + | @param f (C++: const mcallinfo_t &) | | set_type(self, *args) | set_type(self, type) -> bool + | @param type (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26924,24 +30215,30 @@ class mcases_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: mcases_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: mcases_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: mcases_t const & | | __init__(self, *args) | __init__(self) -> mcases_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: mcases_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: mcases_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: mcases_t const & | | __repr__ = _swig_repr(self) | @@ -26950,6 +30247,7 @@ class mcases_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int + | r: mcases_t const & | | dstr(self, *args) | dstr(self) -> char const * @@ -26959,12 +30257,14 @@ class mcases_t(__builtin__.object) | | resize(self, *args) | resize(self, s) + | @param s (C++: int) | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | @param r (C++: mcases_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26994,6 +30294,7 @@ Help on function mcode_modifies_d in module ida_hexrays: mcode_modifies_d(*args) mcode_modifies_d(mcode) -> bool + @param mcode (C++: mcode_t) Help on class microcode_filter_t in module ida_hexrays: @@ -27006,14 +30307,25 @@ class microcode_filter_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> microcode_filter_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) + | generate microcode for an instruction + | | apply(self, cdg) -> merror_t + | @param cdg (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to + | the next instruction MERR_INSN - not generated - the caller + | should try the standard way else - error | | match(self, *args) + | check if the filter object is to be appied + | | match(self, cdg) -> bool + | @param cdg (C++: codegen_t &) + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27042,10 +30354,15 @@ class minsn_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _ea) -> minsn_t + | _ea: ea_t + | + | | __init__(self, m) -> minsn_t + | m: minsn_t const & | | __lt__(self, *args) | __lt__(self, ri) -> bool + | ri: minsn_t const & | | __repr__ = _swig_repr(self) | @@ -27059,7 +30376,9 @@ class minsn_t(__builtin__.object) | _ensure_no_obj(self, o, attr, attr_is_acquired) | | _make_nop(self, *args) - | _make_nop(self) + | Convert instruction to nop. This function erases all info but the + | prev/next fields. In most cases it is better to use + | 'mblock_t::make_nop()' , which also marks the block lists as dirty. | | _maybe_disown_and_deregister(self) | @@ -27078,6 +30397,7 @@ class minsn_t(__builtin__.object) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) | _register(self) @@ -27110,47 +30430,97 @@ class minsn_t(__builtin__.object) | clr_tailcall(self) | | contains_call(self, *args) + | Does the instruction contain a call? + | | contains_call(self, with_helpers=False) -> bool + | @param with_helpers (C++: bool) | | contains_opcode(self, *args) + | Does the instruction have the specified opcode? This function searches + | subinstructions as well. + | | contains_opcode(self, mcode) -> bool + | @param mcode: opcode to search for. (C++: mcode_t) | | dstr(self, *args) - | dstr(self) -> char const * + | Get displayable text without tags in a static buffer. | | equal_insns(self, *args) + | Compare instructions. This is the main comparison function for + | instructions. + | | equal_insns(self, m, eqflags) -> bool + | @param m: instruction to compare with (C++: const minsn_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | find_call(self, *args) + | Find a call instruction. Check for the current instruction and its + | subinstructions. + | | find_call(self, with_helpers=False) -> minsn_t + | @param with_helpers: consider helper calls as well? (C++: bool) | | find_ins_op(self, *args) + | Find an operand that is a subinsruction with the specified opcode. + | This function checks only the 'l' and 'r' operands of the current + | insn. + | | find_ins_op(self, op=m_nop) -> minsn_t + | @param op: opcode to search for (C++: mcode_t) + | @return: &l or &r or NULL | | find_num_op(self, *args) - | find_num_op(self) -> mop_t + | Find a numeric operand of the current instruction. This function + | checks only the 'l' and 'r' operands of the current insn. | | find_opcode(self, *args) + | Find a (sub)insruction with the specified opcode. + | | find_opcode(self, mcode) -> minsn_t + | @param mcode: opcode to search for. (C++: mcode_t) + | + | | find_opcode(self, mcode) -> minsn_t + | @param mcode: opcode to search for. (C++: mcode_t) | | for_all_insns(self, *args) + | Visit all instructions. This function visits the instruction itself + | and all its subinstructions. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) + | Visit all instruction operands. This function visits subinstruction + | operands as well. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | get_role(self, *args) - | get_role(self) -> funcrole_t + | Get the function role of a call. | | get_split_size(self, *args) | get_split_size(self) -> int | | has_side_effects(self, *args) + | Does the instruction have a side effect? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: 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. (C++: + | bool) | | is_after(self, *args) + | Is the instruction after the specified one? + | | is_after(self, m) -> bool + | @param m: the instruction to compare against in the list (C++: const + | minsn_t *) | | is_alloca(self, *args) | is_alloca(self) -> bool @@ -27159,7 +30529,15 @@ class minsn_t(__builtin__.object) | is_assert(self) -> bool | | is_between(self, *args) + | Is the instruction in the specified range of instructions? + | | is_between(self, m1, m2) -> bool + | @param m1: beginning of the range in the doubly linked list (C++: + | const minsn_t *) + | @param m2: end of the range in the doubly linked list (excluded, may + | be NULL) This function assumes that m1 and m2 belong to the + | same basic block and they are top level instructions. (C++: + | const minsn_t *) | | is_bswap(self, *args) | is_bswap(self) -> bool @@ -27183,7 +30561,13 @@ class minsn_t(__builtin__.object) | is_fpinsn(self) -> bool | | is_helper(self, *args) + | 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. + | | is_helper(self, name) -> bool + | @param name (C++: const char *) | | is_ignlowsrc(self, *args) | is_ignlowsrc(self) -> bool @@ -27210,7 +30594,11 @@ class minsn_t(__builtin__.object) | is_multimov(self) -> bool | | is_noret_call(self, *args) + | Is a non-returing call? + | | is_noret_call(self, ignore_noret_icall=False) -> bool + | @param ignore_noret_icall: if set, indirect calls to noret functions + | will return false (C++: bool) | | is_optional(self, *args) | is_optional(self) -> bool @@ -27228,28 +30616,49 @@ class minsn_t(__builtin__.object) | is_tailcall(self) -> bool | | is_unknown_call(self, *args) - | 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) | is_wild_match(self) -> bool | | lexcompare(self, *args) | lexcompare(self, ri) -> int + | @param ri (C++: const minsn_t &) | | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool + | Is it possible for the instruction to use aliased memory? | | modifes_d(self, *args) - | modifes_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) | modifies_pair_mop(self) -> bool | | optimize_solo(self, *args) + | 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. + | | optimize_solo(self, optflags=0) -> int + | @param optflags: combination of optimization flags bits (C++: int) + | @return: number of changes, 0-unchanged See also + | mblock_t::optimize_insn() | | optimize_subtree(self, *args) + | Optimize instruction in its context. Do not use this function, use + | mblock_t::optimize() + | | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int + | @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) | @@ -27294,6 +30703,7 @@ class minsn_t(__builtin__.object) | | set_split_size(self, *args) | set_split_size(self, s) + | @param s (C++: int) | | set_tailcall(self, *args) | set_tailcall(self) @@ -27302,10 +30712,18 @@ class minsn_t(__builtin__.object) | set_wild_match(self) | | setaddr(self, *args) + | Change the instruction address. This function modifies subinstructions + | as well. + | | setaddr(self, new_ea) + | @param new_ea (C++: ea_t) | | swap(self, *args) + | Swap two instructions. The prev/next fields are not modified by this + | function because it would corrupt the doubly linked list. + | | swap(self, m) + | @param m (C++: minsn_t &) | | was_noret_icall(self, *args) | was_noret_icall(self) -> bool @@ -27376,6 +30794,9 @@ class minsn_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -27410,7 +30831,7 @@ class minsn_visitor_t(op_parent_info_t) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | topins | op_parent_info_t_topins_get(self) -> minsn_t @@ -27426,11 +30847,13 @@ class mlist_mop_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> mlist_mop_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_mop(self, *args) | visit_mop(self, op) -> int + | @param op (C++: mop_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27471,26 +30894,36 @@ class mlist_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: mlist_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: mlist_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: mlist_t const & | | __init__(self, *args) | __init__(self) -> mlist_t - | __init__(self, ivl) -> mlist_t + | ivl: ivl_t const & + | + | | __init__(self, r, size) -> mlist_t + | r: mreg_t + | size: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: mlist_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: mlist_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: mlist_t const & | | __repr__ = _swig_repr(self) | @@ -27499,18 +30932,32 @@ class mlist_t(__builtin__.object) | | add(self, *args) | add(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) + | + | | add(self, r) -> bool + | @param r (C++: mreg_t) + | + | | add(self, ivl) -> bool + | ivl: ivl_t const & + | + | | add(self, lst) -> bool + | lst: mlist_t const & | | addmem(self, *args) | addmem(self, ea, size) -> bool + | @param ea (C++: ea_t) + | @param size (C++: asize_t) | | clear(self, *args) | clear(self) | | compare(self, *args) | compare(self, r) -> int + | r: mlist_t const & | | count(self, *args) | count(self) -> asize_t @@ -27523,35 +30970,53 @@ class mlist_t(__builtin__.object) | | has(self, *args) | has(self, r) -> bool + | @param r (C++: mreg_t) | | has_all(self, *args) | has_all(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) | | has_any(self, *args) | has_any(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) | | has_common(self, *args) | has_common(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | has_memory(self, *args) | has_memory(self) -> bool | | includes(self, *args) | includes(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | intersect(self, *args) | intersect(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | is_subset_of(self, *args) | is_subset_of(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | sub(self, *args) | sub(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) + | + | | sub(self, ivl) -> bool + | ivl: ivl_t const & + | + | | sub(self, lst) -> bool + | lst: mlist_t const & | | swap(self, *args) | swap(self, r) + | @param r (C++: mlist_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27591,32 +31056,43 @@ class mnumber_t(operand_locator_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: mnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: mnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: mnumber_t const & | | __init__(self, *args) | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t + | v: uint64 + | _ea: ea_t + | n: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: mnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: mnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: mnumber_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: mnumber_t const & | | update_value(self, *args) | update_value(self, val64) + | @param val64 (C++: uint64) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27654,29 +31130,25 @@ class mnumber_t(operand_locator_t) Help on function modify_user_lvar_info in module ida_hexrays: modify_user_lvar_info(*args) + Modify saved local variable settings of one variable. + 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 + @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 + modify_user_lvars(entry_ea, mlv) -> bool + @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: @@ -27692,13 +31164,19 @@ class mop_addr_t(mop_t) | | __init__(self, *args) | __init__(self) -> mop_addr_t - | __init__(self, ra) -> mop_addr_t + | ra: mop_addr_t const & + | + | | __init__(self, ra, isz, osz) -> mop_addr_t + | ra: mop_t const & + | isz: int + | osz: int | | __repr__ = _swig_repr(self) | | lexcompare(self, *args) | lexcompare(self, ra) -> int + | @param ra (C++: const mop_addr_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27723,12 +31201,15 @@ class mop_addr_t(mop_t) | | __eq__(self, *args) | __eq__(self, rop) -> bool + | rop: mop_t const & | | __lt__(self, *args) | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool + | rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -27790,35 +31271,90 @@ class mop_addr_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -27837,90 +31373,169 @@ class mop_addr_t(mop_t) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) | _register(self) | | _set_a(self, *args) | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) + | _v: int | | _set_c(self, *args) | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) + | 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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) + | 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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | dstr(self, *args) | dstr(self) -> char const * @@ -27929,7 +31544,11 @@ class mop_addr_t(mop_t) | empty(self) -> bool | | equal_mops(self, *args) + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) | erase(self) @@ -27938,65 +31557,122 @@ class mop_addr_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) + | 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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | is01(self, *args) - | 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) - | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool + | reg: mreg_t | | is_cc(self, *args) - | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool + | @param n (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | code: enum mcode_t | | is_kreg(self, *args) - | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) + | is_lowaddr(self) -> bool | | is_mob(self, *args) + | Is a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -28008,18 +31684,30 @@ class mop_addr_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) | is_udt(self) -> bool @@ -28031,50 +31719,132 @@ class mop_addr_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | make_blkref(self, *args) + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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) | probably_floating(self) -> bool @@ -28084,6 +31854,9 @@ class mop_addr_t(mop_t) | set_impptr_done(self, *args) | set_impptr_done(self) | + | set_lowaddr(self, *args) + | set_lowaddr(self) + | | set_udt(self, *args) | set_udt(self) | @@ -28091,19 +31864,32 @@ class mop_addr_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) + | 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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | value(self, *args) + | 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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) | zero(self) @@ -28209,17 +31995,24 @@ class mop_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, rop) -> bool + | rop: mop_t const & | | __init__(self, *args) | __init__(self) -> mop_t - | __init__(self, rop) -> mop_t + | rop: mop_t const & + | + | | __init__(self, _r, _s) -> mop_t + | _r: mreg_t + | _s: int | | __lt__(self, *args) | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool + | rop: mop_t const & | | __repr__ = _swig_repr(self) | @@ -28283,35 +32076,90 @@ class mop_t(__builtin__.object) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -28330,90 +32178,169 @@ class mop_t(__builtin__.object) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) | _register(self) | | _set_a(self, *args) | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) + | _v: int | | _set_c(self, *args) | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) + | 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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) + | 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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | dstr(self, *args) | dstr(self) -> char const * @@ -28422,7 +32349,11 @@ class mop_t(__builtin__.object) | empty(self) -> bool | | equal_mops(self, *args) + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) | erase(self) @@ -28431,65 +32362,122 @@ class mop_t(__builtin__.object) | erase_but_keep_size(self) | | for_all_ops(self, *args) + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) + | 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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | is01(self, *args) - | 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) - | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool + | reg: mreg_t | | is_cc(self, *args) - | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool + | @param n (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | code: enum mcode_t | | is_kreg(self, *args) - | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) + | is_lowaddr(self) -> bool | | is_mob(self, *args) + | Is a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -28501,18 +32489,30 @@ class mop_t(__builtin__.object) | is_positive_constant(self) -> bool | | is_reg(self, *args) + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) | is_udt(self) -> bool @@ -28524,53 +32524,136 @@ class mop_t(__builtin__.object) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | lexcompare(self, *args) | lexcompare(self, rop) -> int + | @param rop (C++: const mop_t &) | | make_blkref(self, *args) + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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) | probably_floating(self) -> bool @@ -28580,6 +32663,9 @@ class mop_t(__builtin__.object) | set_impptr_done(self, *args) | set_impptr_done(self) | + | set_lowaddr(self, *args) + | set_lowaddr(self) + | | set_udt(self, *args) | set_udt(self) | @@ -28587,19 +32673,32 @@ class mop_t(__builtin__.object) | set_undef_val(self) | | shift_mop(self, *args) + | 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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | value(self, *args) + | 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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) | zero(self) @@ -28685,11 +32784,17 @@ class mop_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | | visit_mop(self, *args) | visit_mop(self, op, type, is_target) -> int + | @param op (C++: mop_t *) + | @param type (C++: const tinfo_t *) + | @param is_target (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28722,7 +32827,7 @@ class mop_visitor_t(op_parent_info_t) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | topins | op_parent_info_t_topins_get(self) -> minsn_t @@ -28736,13 +32841,15 @@ class mopvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< mop_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> mop_t + | i: size_t | | __init__(self, *args) | __init__(self) -> mopvec_t - | __init__(self, x) -> mopvec_t + | x: qvector< mop_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28752,20 +32859,26 @@ class mopvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< mop_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: mop_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: mop_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: mop_t const & | | at(self, *args) | at(self, _idx) -> mop_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -28789,52 +32902,74 @@ class mopvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> mop_t + | it: qvector< mop_t >::iterator + | + | | erase(self, first, last) -> mop_t + | first: qvector< mop_t >::iterator + | last: qvector< mop_t >::iterator | | extract(self, *args) | extract(self) -> mop_t | | find(self, *args) | find(self, x) -> mop_t + | x: mop_t const & + | + | | find(self, x) -> mop_t + | x: mop_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=mop_t()) + | x: mop_t const & | | has(self, *args) | has(self, x) -> bool + | x: mop_t const & | | inject(self, *args) | inject(self, s, len) + | s: mop_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> mop_t + | it: qvector< mop_t >::iterator + | x: mop_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> mop_t + | x: mop_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: mop_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< mop_t > & | | truncate(self, *args) | truncate(self) @@ -28860,48 +32995,41 @@ class mopvec_t(__builtin__.object) 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 + mreg2reg(reg, width) -> int + @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) + must_mcode_close_block(mcode, including_calls) -> bool + @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: unknown + calls (is_unknown_call) are 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 + @param code (C++: 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) + negated_relation(op) -> ctype_t + @param op (C++: ctype_t) Help on function new_block in module ida_hexrays: @@ -28916,38 +33044,44 @@ class number_format_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _opnum=0) -> number_format_t + | _opnum: int | | __repr__ = _swig_repr(self) | | get_radix(self, *args) - | get_radix(self) -> int + | Get number radix + | + | has_unmutable_type(self, *args) + | has_unmutable_type(self) -> bool | | is_char(self, *args) - | is_char(self) -> bool + | Is a character constant? | | is_dec(self, *args) - | is_dec(self) -> bool + | Is a decimal number? | | is_enum(self, *args) - | is_enum(self) -> bool + | Is a symbolic constant? | | is_fixed(self, *args) - | is_fixed(self) -> bool + | Is number representation fixed? Fixed representation cannot be + | modified by the decompiler | | is_hex(self, *args) - | is_hex(self) -> bool + | Is a hexadecimal number? | | is_numop(self, *args) - | is_numop(self) -> bool + | Is a number? | | is_oct(self, *args) - | is_oct(self) -> bool + | Is a octal number? | | is_stroff(self, *args) - | is_stroff(self) -> bool + | Is a structure field offset? | | needs_to_be_inverted(self, *args) - | 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: @@ -28994,6 +33128,9 @@ class op_parent_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -29013,7 +33150,7 @@ class op_parent_info_t(__builtin__.object) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -29030,50 +33167,37 @@ class op_parent_info_t(__builtin__.object) 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) + op_uses_x(op) -> bool + @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) + op_uses_y(op) -> bool + @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) + op_uses_z(op) -> bool + @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 + open_pseudocode(ea, flags) -> vdui_t + @param ea: function to decompile (C++: ea_t) + @param flags: a combination of OPF_ flags (C++: int) + @return: false if failed Help on class operand_locator_t in module ida_hexrays: @@ -29084,29 +33208,38 @@ class operand_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: operand_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: operand_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: operand_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _opnum) -> operand_locator_t + | _ea: ea_t + | _opnum: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: operand_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: operand_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: operand_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: operand_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29188,11 +33321,21 @@ class optblock_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> optblock_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | func(self, *args) + | 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 ... ... + | | func(self, blk) -> int + | @param blk: Basic block to optimize as a whole. (C++: mblock_t *) + | @return: number of changes made to the block. See also + | mark_lists_dirty. | | install(self, *args) | install(self) @@ -29229,11 +33372,31 @@ class optinsn_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> optinsn_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | func(self, *args) - | func(self, blk, ins) -> int + | Optimize an instruction. + | + | func(self, blk, ins, optflags) -> int + | @param blk: current basic block. maybe NULL, which means that the + | instruction must be optimized without context (C++: + | mblock_t *) + | @param ins: 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. (C++: minsn_t *) + | @param optflags: combination of optimization flags bits (C++: int) + | @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) | install(self) @@ -29262,40 +33425,34 @@ class optinsn_t(__builtin__.object) 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 + parse_user_call(udc, decl, silent) -> bool + @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. + partial_type_num(type) -> int + @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) + print_vdloc(loc, nbytes) + @param loc (C++: const vdloc_t &) + @param nbytes (C++: int) Help on function property_op_to_typename in module ida_hexrays: @@ -29310,19 +33467,37 @@ class qlist_cinsn_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, x) -> bool + | x: qlist< cinsn_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> cinsn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qlist_cinsn_t - | __init__(self, x) -> qlist_cinsn_t + | 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) + | __len__(self) -> size_t | | __ne__(self, *args) | __ne__(self, x) -> bool + | x: qlist< cinsn_t > const & | | __repr__ = _swig_repr(self) | - | back(self, *args) - | back(self) -> cinsn_t - | back(self) -> cinsn_t + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: cinsn_t const & + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- | | begin(self, *args) | begin(self) -> qlist_cinsn_t_iterator @@ -29338,17 +33513,42 @@ class qlist_cinsn_t(__builtin__.object) | | erase(self, *args) | erase(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | erase(self, p1, p2) + | p1: qlist< cinsn_t >::iterator + | p2: qlist< cinsn_t >::iterator + | + | | erase(self, p) + | p: qlist_cinsn_t_iterator | - | front(self, *args) - | front(self) -> cinsn_t - | front(self) -> cinsn_t + | find(self, item) + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | index(self, item) | | insert(self, *args) | insert(self, p, x) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | x: cinsn_t const & + | + | | insert(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | + | insert(self, i, v) + | i: size_t + | v: cinsn_t const & + | + | | insert(self, p, x) -> qlist_cinsn_t_iterator + | p: qlist_cinsn_t_iterator + | x: cinsn_t const & | | pop_back(self, *args) | pop_back(self) @@ -29358,15 +33558,20 @@ class qlist_cinsn_t(__builtin__.object) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> cinsn_t + | x: cinsn_t const & | | push_front(self, *args) | push_front(self, x) + | x: cinsn_t const & | | 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 + | v: cinsn_t const & + | | rend(self, *args) | rend(self) -> qlist< cinsn_t >::reverse_iterator | rend(self) -> qlist< cinsn_t >::const_reverse_iterator @@ -29376,6 +33581,7 @@ class qlist_cinsn_t(__builtin__.object) | | swap(self, *args) | swap(self, x) + | x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29404,12 +33610,14 @@ class qlist_cinsn_t_iterator(__builtin__.object) | | __eq__(self, *args) | __eq__(self, x) -> bool + | x: qlist_cinsn_t_iterator const * | | __init__(self, *args) | __init__(self) -> qlist_cinsn_t_iterator | | __ne__(self, *args) | __ne__(self, x) -> bool + | x: qlist_cinsn_t_iterator const * | | __next__(self, *args) | __next__(self) @@ -29454,11 +33662,15 @@ class qstring_printer_t(vc_printer_t) | | __init__(self, *args) | __init__(self, f, tags) -> qstring_printer_t + | f: cfunc_t const * + | tags: bool | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, indent, format) -> int + | indent: int + | format: char const * | | get_s(self, *args) | get_s(self) -> qstring @@ -29480,7 +33692,7 @@ class qstring_printer_t(vc_printer_t) | __disown__(self) | | oneliner(self, *args) - | oneliner(self) -> bool + | Are we generating one-line text representation? | | ---------------------------------------------------------------------- | Data descriptors inherited from vc_printer_t: @@ -29516,6 +33728,8 @@ Help on function qswap in module ida_hexrays: qswap(*args) qswap(a, b) + a: cinsn_t & + b: cinsn_t & Help on class qvector_carg_t in module ida_hexrays: @@ -29526,13 +33740,15 @@ class qvector_carg_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< carg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> carg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_carg_t - | __init__(self, x) -> qvector_carg_t + | x: qvector< carg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29541,17 +33757,22 @@ class qvector_carg_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< carg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: carg_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: carg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: carg_t const & | | append = push_back(self, *args) | @@ -29579,52 +33800,74 @@ class qvector_carg_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> carg_t + | it: qvector< carg_t >::iterator + | + | | erase(self, first, last) -> carg_t + | first: qvector< carg_t >::iterator + | last: qvector< carg_t >::iterator | | extract(self, *args) | extract(self) -> carg_t | | find(self, *args) | find(self, x) -> carg_t + | x: carg_t const & + | + | | find(self, x) -> carg_t + | x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=carg_t()) + | x: carg_t const & | | has(self, *args) | has(self, x) -> bool + | x: carg_t const & | | inject(self, *args) | inject(self, s, len) + | s: carg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> carg_t + | it: qvector< carg_t >::iterator + | x: carg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: carg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< carg_t > & | | truncate(self, *args) | truncate(self) @@ -29656,13 +33899,15 @@ class qvector_ccase_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< ccase_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ccase_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_ccase_t - | __init__(self, x) -> qvector_ccase_t + | x: qvector< ccase_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29671,17 +33916,22 @@ class qvector_ccase_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< ccase_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: ccase_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: ccase_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: ccase_t const & | | append = push_back(self, *args) | @@ -29709,52 +33959,74 @@ class qvector_ccase_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> ccase_t + | it: qvector< ccase_t >::iterator + | + | | erase(self, first, last) -> ccase_t + | first: qvector< ccase_t >::iterator + | last: qvector< ccase_t >::iterator | | extract(self, *args) | extract(self) -> ccase_t | | find(self, *args) | find(self, x) -> ccase_t + | x: ccase_t const & + | + | | find(self, x) -> ccase_t + | x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ccase_t()) + | x: ccase_t const & | | has(self, *args) | has(self, x) -> bool + | x: ccase_t const & | | inject(self, *args) | inject(self, s, len) + | s: ccase_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> ccase_t + | it: qvector< ccase_t >::iterator + | x: ccase_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: ccase_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< ccase_t > & | | truncate(self, *args) | truncate(self) @@ -29786,13 +34058,15 @@ class qvector_history_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< history_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> history_item_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_history_t - | __init__(self, x) -> qvector_history_t + | 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. @@ -29802,20 +34076,26 @@ class qvector_history_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< history_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: history_item_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: history_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: history_item_t const & | | at(self, *args) | at(self, _idx) -> history_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -29839,52 +34119,74 @@ class qvector_history_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> history_item_t + | it: qvector< history_item_t >::iterator + | + | | erase(self, first, last) -> history_item_t + | first: qvector< history_item_t >::iterator + | last: qvector< history_item_t >::iterator | | extract(self, *args) | extract(self) -> history_item_t | | find(self, *args) | find(self, x) -> history_item_t + | x: history_item_t const & + | + | | find(self, x) -> history_item_t + | x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=history_item_t()) + | x: history_item_t const & | | has(self, *args) | has(self, x) -> bool + | x: history_item_t const & | | inject(self, *args) | inject(self, s, len) + | s: history_item_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> history_item_t + | it: qvector< history_item_t >::iterator + | x: history_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: history_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< history_item_t > & | | truncate(self, *args) | truncate(self) @@ -29916,13 +34218,15 @@ class qvector_lvar_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< lvar_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_lvar_t - | __init__(self, x) -> qvector_lvar_t + | x: qvector< lvar_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29931,17 +34235,22 @@ class qvector_lvar_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< lvar_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: lvar_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: lvar_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: lvar_t const & | | append = push_back(self, *args) | @@ -29969,52 +34278,74 @@ class qvector_lvar_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> lvar_t + | it: qvector< lvar_t >::iterator + | + | | erase(self, first, last) -> lvar_t + | first: qvector< lvar_t >::iterator + | last: qvector< lvar_t >::iterator | | extract(self, *args) | extract(self) -> lvar_t | | find(self, *args) | find(self, x) -> lvar_t + | x: lvar_t const & + | + | | find(self, x) -> lvar_t + | x: lvar_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=lvar_t()) + | x: lvar_t const & | | has(self, *args) | has(self, x) -> bool + | x: lvar_t const & | | inject(self, *args) | inject(self, s, len) + | s: lvar_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_t + | it: qvector< lvar_t >::iterator + | x: lvar_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< lvar_t > & | | truncate(self, *args) | truncate(self) @@ -30040,18 +34371,17 @@ class qvector_lvar_t(__builtin__.object) 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 + reg2mreg(reg) -> mreg_t + @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) + @param e (C++: const citem_t *) Help on function remove_hexrays_callback in module ida_hexrays: @@ -30061,87 +34391,81 @@ remove_hexrays_callback(callback) 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() + restore_user_cmts(func_ea) -> user_cmts_t + @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 + restore_user_defined_calls(udcalls, func_ea) -> bool + @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() + restore_user_iflags(func_ea) -> user_iflags_t + @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() + restore_user_labels(func_ea) -> user_labels_t + @param func_ea: the entry address of the function, ignored if FUNC != + NULL (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_labels2 in module ida_hexrays: + +restore_user_labels2(*args) + restore_user_labels2(func_ea, func=None) -> user_labels_t + @param func_ea (C++: ea_t) + @param func (C++: const cfunc_t *) 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 + restore_user_lvar_settings(lvinf, func_ea) -> bool + @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() + restore_user_numforms(func_ea) -> user_numforms_t + @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() + restore_user_unions(func_ea) -> user_unions_t + @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: @@ -30157,8 +34481,12 @@ class rlist_t(bitset_t) | | __init__(self, *args) | __init__(self) -> rlist_t - | __init__(self, m) -> rlist_t + | m: rlist_t const & + | + | | __init__(self, reg, width) -> rlist_t + | reg: mreg_t + | width: int | | __repr__ = _swig_repr(self) | @@ -30182,110 +34510,151 @@ class rlist_t(bitset_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: bitset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: bitset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: bitset_t const & | | __iter__(self) | | __le__(self, *args) | __le__(self, r) -> bool + | r: bitset_t const & | | __len__ = count(self, *args) | count(self) -> int - | count(self, bit) -> int + | bit: int | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: bitset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: bitset_t const & | | add(self, *args) | add(self, bit) -> bool + | @param bit (C++: int) + | + | | add(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | add(self, ml) -> bool + | ml: bitset_t const & | | back(self, *args) | back(self) -> int | | begin(self, *args) - | begin(self) -> bitset_t::iterator + | begin(self) -> iterator | | clear(self, *args) | clear(self) | | compare(self, *args) | compare(self, r) -> int + | r: bitset_t const & | | copy(self, *args) | copy(self, m) -> bitset_t + | @param m (C++: const bitset_t &) | | count(self, *args) | count(self) -> int - | count(self, bit) -> int + | bit: int | | cut_at(self, *args) | cut_at(self, maxbit) -> bool + | @param maxbit (C++: int) | | empty(self, *args) | empty(self) -> bool | | end(self, *args) - | end(self) -> bitset_t::iterator + | end(self) -> iterator | | fill_with_ones(self, *args) | fill_with_ones(self, maxbit) + | @param maxbit (C++: int) | | front(self, *args) | front(self) -> int | | has(self, *args) | has(self, bit) -> bool + | @param bit (C++: int) | | has_all(self, *args) | has_all(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_any(self, *args) | has_any(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_common(self, *args) | has_common(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | inc(self, *args) | inc(self, p, n=1) + | @param p (C++: iterator &) + | @param n (C++: int) | | includes(self, *args) | includes(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | intersect(self, *args) | intersect(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | is_subset_of(self, *args) | is_subset_of(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | itat(self, *args) - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | @param n (C++: int) | | itv(self, *args) | itv(self, it) -> int + | it: bitset_t::const_iterator | | last(self, *args) | last(self) -> int | | shift_down(self, *args) | shift_down(self, shift) + | @param shift (C++: int) | | sub(self, *args) | sub(self, bit) -> bool + | @param bit (C++: int) + | + | | sub(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | sub(self, ml) -> bool + | ml: bitset_t const & | | swap(self, *args) | swap(self, r) + | @param r (C++: bitset_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from bitset_t: @@ -30299,86 +34668,81 @@ class rlist_t(bitset_t) 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 *) + save_user_cmts(func_ea, user_cmts) + @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 &) + save_user_defined_calls(func_ea, udcalls) + @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 *) + save_user_iflags(func_ea, iflags) + @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 *) + save_user_labels(func_ea, user_labels) + @param func_ea: the entry address of the function, ignored if FUNC != + NULL (C++: ea_t) + @param user_labels: collection of user defined labels (C++: const + user_labels_t *) + +Help on function save_user_labels2 in module ida_hexrays: + +save_user_labels2(*args) + save_user_labels2(func_ea, user_labels, func=None) + @param func_ea (C++: ea_t) + @param user_labels (C++: const user_labels_t *) + @param func (C++: const cfunc_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 &) + save_user_lvar_settings(func_ea, lvinf) + @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 *) + save_user_numforms(func_ea, numforms) + @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 *) + save_user_unions(func_ea, unions) + @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: @@ -30395,6 +34759,9 @@ class scif_t(vdloc_t) | | __init__(self, *args) | __init__(self, _mba, n, tif) -> scif_t + | _mba: mba_t * + | n: qstring * + | tif: tinfo_t * | | __repr__ = _swig_repr(self) | @@ -30402,7 +34769,7 @@ class scif_t(vdloc_t) | Data descriptors defined here: | | mba - | scif_t_mba_get(self) -> mbl_array_t + | scif_t_mba_get(self) -> mba_t | | name | scif_t_name_get(self) -> qstring * @@ -30424,167 +34791,234 @@ class scif_t(vdloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: vdloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: vdloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: vdloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: vdloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: vdloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: vdloc_t const & | | _set_reg1(self, *args) | _set_reg1(self, r1) + | @param r1 (C++: int) | | compare(self, *args) | compare(self, r) -> int + | r: vdloc_t const & | | is_aliasable(self, *args) | is_aliasable(self, mb, size) -> bool + | @param mb (C++: const mba_t *) + | @param size (C++: int) | | reg1(self, *args) | reg1(self) -> int | | set_reg1(self, *args) | set_reg1(self, r1) + | @param r1 (C++: int) | | ---------------------------------------------------------------------- | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg2(self, *args) + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | atype(self, *args) - | atype(self) -> argloc_type_t + | Get type ( 'Argument location types' ) | | calc_offset(self, *args) - | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) - | get_custom(self) -> void * + | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' | | get_ea(self, *args) - | get_ea(self) -> ea_t + | Get the global address. Use when 'atype()' == 'ALOC_STATIC' | | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 + | Get all register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' | | has_reg(self, *args) - | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) - | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. | | is_badloc(self, *args) - | is_badloc(self) -> bool + | See 'ALOC_NONE' . | | is_custom(self, *args) - | is_custom(self) -> bool + | See 'ALOC_CUSTOM' . | | is_ea(self, *args) - | is_ea(self) -> bool + | See 'ALOC_STATIC' . | | is_fragmented(self, *args) - | is_fragmented(self) -> bool + | 'is_scattered()' || 'is_reg2()' | | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | is_reg(self) -> bool + | 'is_reg1()' || 'is_reg2()' | | is_reg1(self, *args) - | is_reg1(self) -> bool + | See 'ALOC_REG1' . | | is_reg2(self, *args) - | is_reg2(self) -> bool + | See 'ALOC_REG2' . | | is_rrel(self, *args) - | is_rrel(self) -> bool + | See 'ALOC_RREL' . | | is_scattered(self, *args) - | is_scattered(self) -> bool + | See 'ALOC_DIST' . | | is_stkoff(self, *args) - | is_stkoff(self) -> bool + | See 'ALOC_STACK' . | | justify_reg_high(self, *args) + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | reg2(self, *args) - | reg2(self) -> int + | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' | | regoff(self, *args) - | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when + | 'atype()' == 'ALOC_REG1' | | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' | | set_badloc(self, *args) - | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) + | Set static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg2(self, *args) + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) + | Set stack offset location. + | | set_stkoff(self, off) + | @param off (C++: sval_t) | | stkoff(self, *args) - | stkoff(self) -> sval_t + | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' | | swap(self, *args) + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -30606,11 +35040,14 @@ class scif_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> scif_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_scif_mop(self, *args) | visit_scif_mop(self, r, off) -> int + | @param r (C++: const mop_t &) + | @param off (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30633,53 +35070,48 @@ class scif_visitor_t(__builtin__.object) 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 &) + select_udt_by_offset(udts, ops, applicator) -> int + @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) + send_database(err, silent) + @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 + @param code (C++: 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 + set_type(id, tif, source, force=False) -> bool + @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: @@ -30719,35 +35151,50 @@ class stkvar_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: stkvar_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: stkvar_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: stkvar_ref_t const & | | __init__(self, *args) | __init__(self, m, o) -> stkvar_ref_t + | m: mba_t * + | o: sval_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: stkvar_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: stkvar_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: stkvar_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: stkvar_ref_t const & | | get_stkvar(self, *args) + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off=None) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | swap(self, *args) | swap(self, r) + | @param r (C++: stkvar_ref_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30759,7 +35206,7 @@ class stkvar_ref_t(__builtin__.object) | list of weak references to the object (if defined) | | mba - | stkvar_ref_t_mba_get(self) -> mbl_array_t + | stkvar_ref_t_mba_get(self) -> mba_t | | off | stkvar_ref_t_off_get(self) -> sval_t @@ -30777,24 +35224,19 @@ Help on function swap_mcode_relation in module ida_hexrays: swap_mcode_relation(*args) swap_mcode_relation(code) -> mcode_t + @param code (C++: 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) + swapped_relation(op) -> ctype_t + @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: @@ -30806,12 +35248,14 @@ class treeloc_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: treeloc_t const & | | __init__(self, *args) | __init__(self) -> treeloc_t | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: treeloc_t const & | | __repr__ = _swig_repr(self) | @@ -30855,17 +35299,28 @@ class udc_filter_t(microcode_filter_t) | | __init__(self, *args) | __init__(self) -> udc_filter_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) + | generate microcode for an instruction + | | apply(self, cdg) -> merror_t + | @param cdg (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to + | the next instruction MERR_INSN - not generated - the caller + | should try the standard way else - error | | init(self, *args) | init(self, decl) -> bool + | @param decl (C++: const char *) | | match(self, *args) + | return true if the filter object should be appied to given instruction + | | match(self, cdg) -> bool + | @param cdg (C++: codegen_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30891,94 +35346,70 @@ class udc_filter_t(microcode_filter_t) 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 *) + udcall_map_begin(map) -> udcall_map_iterator_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 *) + udcall_map_clear(map) + @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 *) + udcall_map_end(map) -> udcall_map_iterator_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) + udcall_map_erase(map, p) + @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 &) + udcall_map_find(map, key) -> udcall_map_iterator_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) + udcall_map_first(p) -> ea_t const & + @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 *) + udcall_map_free(map) + @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 &) + udcall_map_insert(map, key, val) -> udcall_map_iterator_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: @@ -30989,12 +35420,14 @@ class udcall_map_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: udcall_map_iterator_t const & | | __init__(self, *args) | __init__(self) -> udcall_map_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: udcall_map_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31022,54 +35455,39 @@ class udcall_map_iterator_t(__builtin__.object) 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) + udcall_map_next(p) -> 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_prev(p) -> udcall_map_iterator_t - - Move to the previous element. - - @param p (C++: udcall_map_iterator_t) + udcall_map_prev(p) -> 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_map_second(p) -> udcall_t - - Get reference to the current map value. - - @param p (C++: udcall_map_iterator_t) + udcall_map_second(p) -> udcall_t + @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 *) + udcall_map_size(map) -> size_t + @param map (C++: udcall_map_t *) Help on class udcall_t in module ida_hexrays: @@ -31080,29 +35498,36 @@ class udcall_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: udcall_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: udcall_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: udcall_t const & | | __init__(self, *args) | __init__(self) -> udcall_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: udcall_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: udcall_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: udcall_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: udcall_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31139,11 +35564,18 @@ class ui_stroff_applicator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> ui_stroff_applicator_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) - | apply(self, opnum, path) -> bool + | apply(self, opnum, path, top_tif, spath) -> bool + | @param opnum: operand ordinal number, see below (C++: size_t) + | @param path: path describing the union selection, maybe empty (C++: + | const intvec_t &) + | @param top_tif: tinfo_t of the selected toplevel UDT (C++: const + | tinfo_t &) + | @param spath: selected path (C++: const char *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31172,12 +35604,14 @@ class ui_stroff_op_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ui_stroff_op_t const & | | __init__(self, *args) | __init__(self) -> ui_stroff_op_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ui_stroff_op_t const & | | __repr__ = _swig_repr(self) | @@ -31214,13 +35648,15 @@ class ui_stroff_ops_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< ui_stroff_op_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ui_stroff_op_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ui_stroff_ops_t - | __init__(self, x) -> ui_stroff_ops_t + | 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. @@ -31229,17 +35665,22 @@ class ui_stroff_ops_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< ui_stroff_op_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: ui_stroff_op_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: ui_stroff_op_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: ui_stroff_op_t const & | | append = push_back(self, *args) | @@ -31267,52 +35708,74 @@ class ui_stroff_ops_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> ui_stroff_op_t + | it: qvector< ui_stroff_op_t >::iterator + | + | | erase(self, first, last) -> ui_stroff_op_t + | first: qvector< ui_stroff_op_t >::iterator + | last: qvector< ui_stroff_op_t >::iterator | | extract(self, *args) | extract(self) -> ui_stroff_op_t | | find(self, *args) | find(self, x) -> ui_stroff_op_t + | x: ui_stroff_op_t const & + | + | | find(self, x) -> ui_stroff_op_t + | x: ui_stroff_op_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ui_stroff_op_t()) + | x: ui_stroff_op_t const & | | has(self, *args) | has(self, x) -> bool + | x: ui_stroff_op_t const & | | inject(self, *args) | inject(self, s, len) + | s: ui_stroff_op_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> ui_stroff_op_t + | it: qvector< ui_stroff_op_t >::iterator + | x: ui_stroff_op_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> ui_stroff_op_t + | x: ui_stroff_op_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: ui_stroff_op_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< ui_stroff_op_t > & | | truncate(self, *args) | truncate(self) @@ -31338,94 +35801,70 @@ class ui_stroff_ops_t(__builtin__.object) 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 *) + user_cmts_begin(map) -> user_cmts_iterator_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 *) + user_cmts_clear(map) + @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 *) + user_cmts_end(map) -> user_cmts_iterator_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) + user_cmts_erase(map, p) + @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 &) + user_cmts_find(map, key) -> user_cmts_iterator_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) + user_cmts_first(p) -> treeloc_t + @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 *) + user_cmts_free(map) + @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 &) + user_cmts_insert(map, key, val) -> user_cmts_iterator_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: @@ -31436,12 +35875,14 @@ class user_cmts_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: user_cmts_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_cmts_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: user_cmts_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31469,54 +35910,39 @@ class user_cmts_iterator_t(__builtin__.object) 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) + user_cmts_next(p) -> 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_prev(p) -> user_cmts_iterator_t - - Move to the previous element. - - @param p (C++: user_cmts_iterator_t) + user_cmts_prev(p) -> 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) - user_cmts_second(p) -> citem_cmt_t - - Get reference to the current map value. - - @param p (C++: user_cmts_iterator_t) + user_cmts_second(p) -> citem_cmt_t + @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 *) + user_cmts_size(map) -> size_t + @param map (C++: user_cmts_t *) Help on class user_cmts_t in module ida_hexrays: @@ -31550,6 +35976,7 @@ class user_cmts_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> citem_cmt_t + | _Keyval: treeloc_t const & | | begin lambda self, *args | @@ -31615,33 +36042,77 @@ class user_cmts_t(__builtin__.object) | | __begin = | user_cmts_begin(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * | | __clear = | user_cmts_clear(map) + | + | Parameters + | ---------- + | map: user_cmts_t * | | __end = | user_cmts_end(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * | | __erase = | user_cmts_erase(map, p) + | + | Parameters + | ---------- + | map: user_cmts_t * + | p: user_cmts_iterator_t | | __find = | user_cmts_find(map, key) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * + | key: treeloc_t const & | | __first = | user_cmts_first(p) -> treeloc_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __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 & | | __next = | user_cmts_next(p) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __second = | user_cmts_second(p) -> citem_cmt_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __size = | user_cmts_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_cmts_t * | | __swig_destroy__ = | delete_user_cmts_t(self) @@ -31655,94 +36126,70 @@ class user_cmts_t(__builtin__.object) 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 *) + user_iflags_begin(map) -> user_iflags_iterator_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 *) + user_iflags_clear(map) + @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 *) + user_iflags_end(map) -> user_iflags_iterator_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) + user_iflags_erase(map, p) + @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 &) + user_iflags_find(map, key) -> user_iflags_iterator_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) + user_iflags_first(p) -> citem_locator_t + @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 *) + user_iflags_free(map) + @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 &) + user_iflags_insert(map, key, val) -> user_iflags_iterator_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: @@ -31753,12 +36200,14 @@ class user_iflags_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: user_iflags_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_iflags_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: user_iflags_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31786,54 +36235,39 @@ class user_iflags_iterator_t(__builtin__.object) 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) + user_iflags_next(p) -> 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_prev(p) -> user_iflags_iterator_t - - Move to the previous element. - - @param p (C++: user_iflags_iterator_t) + user_iflags_prev(p) -> 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) - user_iflags_second(p) -> int32 const & - - Get reference to the current map value. - - @param p (C++: user_iflags_iterator_t) + user_iflags_second(p) -> int32 const & + @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 *) + user_iflags_size(map) -> size_t + @param map (C++: user_iflags_t *) Help on class user_iflags_t in module ida_hexrays: @@ -31867,6 +36301,7 @@ class user_iflags_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> int & + | _Keyval: citem_locator_t const & | | begin lambda self, *args | @@ -31932,33 +36367,77 @@ class user_iflags_t(__builtin__.object) | | __begin = | user_iflags_begin(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * | | __clear = | user_iflags_clear(map) + | + | Parameters + | ---------- + | map: user_iflags_t * | | __end = | user_iflags_end(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * | | __erase = | user_iflags_erase(map, p) + | + | Parameters + | ---------- + | map: user_iflags_t * + | p: user_iflags_iterator_t | | __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(p) -> citem_locator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __insert = | user_iflags_insert(map, key, val) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t * + | key: citem_locator_t const & + | val: int32 const & | | __next = | user_iflags_next(p) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __second = | user_iflags_second(p) -> int32 const & + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __size = | user_iflags_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_iflags_t * | | __swig_destroy__ = | delete_user_iflags_t(self) @@ -31985,94 +36464,70 @@ class user_iflags_t(__builtin__.object) 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 *) + user_labels_begin(map) -> user_labels_iterator_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 *) + user_labels_clear(map) + @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 *) + user_labels_end(map) -> user_labels_iterator_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) + user_labels_erase(map, p) + @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 &) + user_labels_find(map, key) -> user_labels_iterator_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) + user_labels_first(p) -> int const & + @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 *) + user_labels_free(map) + @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 &) + user_labels_insert(map, key, val) -> user_labels_iterator_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: @@ -32083,12 +36538,14 @@ class user_labels_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: user_labels_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_labels_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: user_labels_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32116,54 +36573,39 @@ class user_labels_iterator_t(__builtin__.object) 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) + user_labels_next(p) -> 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_prev(p) -> user_labels_iterator_t - - Move to the previous element. - - @param p (C++: user_labels_iterator_t) + user_labels_prev(p) -> 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) - user_labels_second(p) -> qstring & - - Get reference to the current map value. - - @param p (C++: user_labels_iterator_t) + user_labels_second(p) -> qstring & + @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 *) + user_labels_size(map) -> size_t + @param map (C++: user_labels_t *) Help on class user_labels_t in module ida_hexrays: @@ -32179,6 +36621,7 @@ class user_labels_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> _qstring< char > & + | _Keyval: int const & | | size(self, *args) | size(self) -> size_t @@ -32212,11 +36655,15 @@ class user_lvar_modifier_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> user_lvar_modifier_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | modify_lvars(self, *args) + | Modify lvar settings. Returns: true-modified + | | modify_lvars(self, lvinf) -> bool + | @param lvinf (C++: lvar_uservec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32239,95 +36686,71 @@ class user_lvar_modifier_t(__builtin__.object) 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 *) + user_numforms_begin(map) -> user_numforms_iterator_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 *) + user_numforms_clear(map) + @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 *) + user_numforms_end(map) -> user_numforms_iterator_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) + user_numforms_erase(map, p) + @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 &) + user_numforms_find(map, key) -> user_numforms_iterator_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) + user_numforms_first(p) -> operand_locator_t + @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 *) + user_numforms_free(map) + @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 &) + user_numforms_insert(map, key, val) -> user_numforms_iterator_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: @@ -32338,12 +36761,14 @@ class user_numforms_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: user_numforms_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_numforms_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: user_numforms_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32371,54 +36796,39 @@ class user_numforms_iterator_t(__builtin__.object) 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) + user_numforms_next(p) -> 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_prev(p) -> user_numforms_iterator_t - - Move to the previous element. - - @param p (C++: user_numforms_iterator_t) + user_numforms_prev(p) -> 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) - user_numforms_second(p) -> number_format_t - - Get reference to the current map value. - - @param p (C++: user_numforms_iterator_t) + user_numforms_second(p) -> number_format_t + @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 *) + user_numforms_size(map) -> size_t + @param map (C++: user_numforms_t *) Help on class user_numforms_t in module ida_hexrays: @@ -32452,6 +36862,7 @@ class user_numforms_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> number_format_t + | _Keyval: operand_locator_t const & | | begin lambda self, *args | @@ -32517,33 +36928,77 @@ class user_numforms_t(__builtin__.object) | | __begin = | user_numforms_begin(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * | | __clear = | user_numforms_clear(map) + | + | Parameters + | ---------- + | map: user_numforms_t * | | __end = | user_numforms_end(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * | | __erase = | user_numforms_erase(map, p) + | + | Parameters + | ---------- + | map: user_numforms_t * + | p: user_numforms_iterator_t | | __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(p) -> operand_locator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __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 & | | __next = | user_numforms_next(p) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __second = | user_numforms_second(p) -> number_format_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __size = | user_numforms_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_numforms_t * | | __swig_destroy__ = | delete_user_numforms_t(self) @@ -32557,94 +37012,70 @@ class user_numforms_t(__builtin__.object) 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 *) + user_unions_begin(map) -> user_unions_iterator_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 *) + user_unions_clear(map) + @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 *) + user_unions_end(map) -> user_unions_iterator_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) + user_unions_erase(map, p) + @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 &) + user_unions_find(map, key) -> user_unions_iterator_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) + user_unions_first(p) -> ea_t const & + @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 *) + user_unions_free(map) + @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 &) + user_unions_insert(map, key, val) -> user_unions_iterator_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: @@ -32655,12 +37086,14 @@ class user_unions_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: user_unions_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_unions_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: user_unions_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32688,54 +37121,39 @@ class user_unions_iterator_t(__builtin__.object) 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) + user_unions_next(p) -> 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_prev(p) -> user_unions_iterator_t - - Move to the previous element. - - @param p (C++: user_unions_iterator_t) + user_unions_prev(p) -> 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) - user_unions_second(p) -> intvec_t - - Get reference to the current map value. - - @param p (C++: user_unions_iterator_t) + user_unions_second(p) -> intvec_t + @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 *) + user_unions_size(map) -> size_t + @param map (C++: user_unions_t *) Help on class user_unions_t in module ida_hexrays: @@ -32769,6 +37187,7 @@ class user_unions_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> intvec_t + | _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -32834,33 +37253,77 @@ class user_unions_t(__builtin__.object) | | __begin = | user_unions_begin(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * | | __clear = | user_unions_clear(map) + | + | Parameters + | ---------- + | map: user_unions_t * | | __end = | user_unions_end(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * | | __erase = | user_unions_erase(map, p) + | + | Parameters + | ---------- + | map: user_unions_t * + | p: user_unions_iterator_t | | __find = | user_unions_find(map, key) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * + | key: ea_t const & | | __first = | user_unions_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __insert = | user_unions_insert(map, key, val) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t * + | key: ea_t const & + | val: intvec_t const & | | __next = | user_unions_next(p) -> user_unions_iterator_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __second = | user_unions_second(p) -> intvec_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __size = | user_unions_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_unions_t * | | __swig_destroy__ = | delete_user_unions_t(self) @@ -32879,13 +37342,15 @@ class uval_ivl_ivlset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, v) -> bool + | v: ivl_t const & | | __init__(self, *args) | __init__(self) -> uval_ivl_ivlset_t - | __init__(self, ivl) -> uval_ivl_ivlset_t + | ivl: ivl_t const & | | __ne__(self, *args) | __ne__(self, v) -> bool + | v: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -32908,6 +37373,7 @@ class uval_ivl_ivlset_t(__builtin__.object) | | getivl(self, *args) | getivl(self, idx) -> ivl_t + | idx: int | | lastivl(self, *args) | lastivl(self) -> ivl_t @@ -32922,10 +37388,12 @@ class uval_ivl_ivlset_t(__builtin__.object) | set_all_values(self) | | single_value(self, *args) - | single_value(self, v) -> bool + | single_value(self) -> bool + | v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) | swap(self, r) + | r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32954,6 +37422,8 @@ class uval_ivl_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _off, _size) -> uval_ivl_t + | _off: unsigned-ea-like-numeric-type↗ + | _size: unsigned-ea-like-numeric-type↗ | | __repr__ = _swig_repr(self) | @@ -32999,25 +37469,35 @@ class valrng_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: valrng_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: valrng_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: valrng_t const & | | __init__(self, *args) | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t + | size_: int + | + | | __init__(self, r) -> valrng_t + | r: valrng_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: valrng_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: valrng_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: valrng_t const & | | __repr__ = _swig_repr(self) | @@ -33035,9 +37515,11 @@ class valrng_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int + | r: valrng_t const & | | cvt_to_cmp(self, *args) | cvt_to_cmp(self, strict) -> bool + | @param strict (C++: bool) | | cvt_to_single_value(self, *args) | cvt_to_single_value(self) -> bool @@ -33053,9 +37535,11 @@ class valrng_t(__builtin__.object) | | has(self, *args) | has(self, v) -> bool + | @param v (C++: uvlr_t) | | intersect_with(self, *args) | intersect_with(self, r) -> bool + | @param r (C++: const valrng_t &) | | inverse(self, *args) | inverse(self) @@ -33065,27 +37549,31 @@ class valrng_t(__builtin__.object) | | max_svalue(self, *args) | max_svalue(self, size_) -> uvlr_t - | max_svalue(self) -> uvlr_t + | size_: int | | max_value(self, *args) | max_value(self, size_) -> uvlr_t - | max_value(self) -> uvlr_t + | size_: int | | min_svalue(self, *args) | min_svalue(self, size_) -> uvlr_t - | min_svalue(self) -> uvlr_t + | size_: int | | reduce_size(self, *args) | reduce_size(self, new_size) -> bool + | @param new_size (C++: int) | | set_all(self, *args) | set_all(self) | | set_cmp(self, *args) | set_cmp(self, cmp, _value) + | @param cmp (C++: cmpop_t) + | @param _value (C++: uvlr_t) | | set_eq(self, *args) | set_eq(self, v) + | @param v (C++: uvlr_t) | | set_none(self, *args) | set_none(self) @@ -33095,9 +37583,11 @@ class valrng_t(__builtin__.object) | | swap(self, *args) | swap(self, r) + | @param r (C++: valrng_t &) | | unite_with(self, *args) | unite_with(self, r) -> bool + | @param r (C++: const valrng_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33126,29 +37616,36 @@ class var_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: var_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: var_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: var_ref_t const & | | __init__(self, *args) | __init__(self) -> var_ref_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: var_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: var_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: var_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: var_ref_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33163,7 +37660,7 @@ class var_ref_t(__builtin__.object) | var_ref_t_idx_get(self) -> int | | mba - | var_ref_t_mba_get(self) -> mbl_array_t + | var_ref_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -33190,11 +37687,12 @@ class vc_printer_t(vd_printer_t) | | __init__(self, *args) | __init__(self, f) -> vc_printer_t + | f: cfunc_t const * | | __repr__ = _swig_repr(self) | | oneliner(self, *args) - | oneliner(self) -> bool + | Are we generating one-line text representation? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33219,6 +37717,8 @@ class vc_printer_t(vd_printer_t) | | _print(self, *args) | _print(self, indent, format) -> int + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -33244,9 +37744,19 @@ class vd_failure_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> vd_failure_t - | __init__(self, code, ea, buf=None) -> vd_failure_t + | code: enum merror_t + | ea: ea_t + | buf: char const * + | + | | __init__(self, code, ea, buf) -> vd_failure_t + | code: enum merror_t + | ea: ea_t + | buf: qstring const & + | + | | __init__(self, _hf) -> vd_failure_t + | _hf: hexrays_failure_t const & | | __repr__ = _swig_repr(self) | @@ -33288,6 +37798,8 @@ class vd_interr_t(vd_failure_t) | | __init__(self, *args) | __init__(self, ea, buf) -> vd_interr_t + | ea: ea_t + | buf: char const * | | __repr__ = _swig_repr(self) | @@ -33332,11 +37844,14 @@ class vd_printer_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> vd_printer_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, indent, format) -> int + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33376,41 +37891,52 @@ class vdloc_t(ida_typeinf.argloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: vdloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: vdloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: vdloc_t const & | | __init__(self, *args) | __init__(self) -> vdloc_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: vdloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: vdloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: vdloc_t const & | | __repr__ = _swig_repr(self) | | _set_reg1(self, *args) | _set_reg1(self, r1) + | @param r1 (C++: int) | | compare(self, *args) | compare(self, r) -> int + | r: vdloc_t const & | | is_aliasable(self, *args) | is_aliasable(self, mb, size) -> bool + | @param mb (C++: const mba_t *) + | @param size (C++: int) | | reg1(self, *args) | reg1(self) -> int | | set_reg1(self, *args) | set_reg1(self, r1) + | @param r1 (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33428,132 +37954,188 @@ class vdloc_t(ida_typeinf.argloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg2(self, *args) + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | atype(self, *args) - | atype(self) -> argloc_type_t + | Get type ( 'Argument location types' ) | | calc_offset(self, *args) - | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) - | get_custom(self) -> void * + | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' | | get_ea(self, *args) - | get_ea(self) -> ea_t + | Get the global address. Use when 'atype()' == 'ALOC_STATIC' | | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 + | Get all register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' | | has_reg(self, *args) - | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) - | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. | | is_badloc(self, *args) - | is_badloc(self) -> bool + | See 'ALOC_NONE' . | | is_custom(self, *args) - | is_custom(self) -> bool + | See 'ALOC_CUSTOM' . | | is_ea(self, *args) - | is_ea(self) -> bool + | See 'ALOC_STATIC' . | | is_fragmented(self, *args) - | is_fragmented(self) -> bool + | 'is_scattered()' || 'is_reg2()' | | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | is_reg(self) -> bool + | 'is_reg1()' || 'is_reg2()' | | is_reg1(self, *args) - | is_reg1(self) -> bool + | See 'ALOC_REG1' . | | is_reg2(self, *args) - | is_reg2(self) -> bool + | See 'ALOC_REG2' . | | is_rrel(self, *args) - | is_rrel(self) -> bool + | See 'ALOC_RREL' . | | is_scattered(self, *args) - | is_scattered(self) -> bool + | See 'ALOC_DIST' . | | is_stkoff(self, *args) - | is_stkoff(self) -> bool + | See 'ALOC_STACK' . | | justify_reg_high(self, *args) + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | reg2(self, *args) - | reg2(self) -> int + | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' | | regoff(self, *args) - | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when + | 'atype()' == 'ALOC_REG1' | | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' | | set_badloc(self, *args) - | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) + | Set static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg2(self, *args) + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) + | Set stack offset location. + | | set_stkoff(self, off) + | @param off (C++: sval_t) | | stkoff(self, *args) - | stkoff(self) -> sval_t + | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' | | swap(self, *args) + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -33576,139 +38158,321 @@ class vdui_t(__builtin__.object) | __repr__ = _swig_repr(self) | | calc_cmt_type(self, *args) + | Check if the specified line can have a comment. Due to the coordinate + | system for comments (http://www.hexblog.com/?p=60) some function lines + | cannot have comments. This function checks if a comment can be + | attached to the specified line. + | | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t + | @param lnnum: line number (0 based) (C++: size_t) + | @param cmttype: comment types to check (C++: cmt_type_t) + | @return: possible comment types | | clear(self, *args) - | clear(self) + | Clear the pseudocode window. It deletes the current function and + | microcode. | | collapse_item(self, *args) + | Collapse/uncollapse item. This function collapses the current item. + | | collapse_item(self, hide) -> bool + | @param hide (C++: bool) + | @return: false if failed. | | collapse_lvars(self, *args) + | Collapse/uncollapse local variable declarations. + | | collapse_lvars(self, hide) -> bool + | @param hide (C++: bool) + | @return: false if failed. | | ctree_to_disasm(self, *args) - | 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. | | del_orphan_cmts(self, *args) - | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the + | screen. | | edit_cmt(self, *args) + | Edit an indented comment. This function displays a dialog box and + | allows the user to edit the comment for the specified ctree location. + | | edit_cmt(self, loc) -> bool + | @param loc: comment location (C++: const treeloc_t &) + | @return: false if failed or cancelled | | edit_func_cmt(self, *args) - | edit_func_cmt(self) -> bool + | Edit a function comment. This function displays a dialog box and + | allows the user to edit the function comment. | | get_current_item(self, *args) + | Get current item. This function refreshes the 'cpos' , 'item' , 'tail' + | fields. 'cfunc_t::get_line_item()' + | | get_current_item(self, idv) -> bool + | @param idv: keyboard or mouse (C++: input_device_t) + | @return: false if failed | | get_current_label(self, *args) - | get_current_label(self) -> int + | Get current label. If there is a label under the cursor, return its + | number. | | get_number(self, *args) - | get_number(self) -> cnumber_t + | Get current number. If the current item is a number, return pointer to + | it. | | in_ctree(self, *args) - | in_ctree(self) -> bool + | Is the current item a statement? | | invert_bits(self, *args) - | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current + | number. | | invert_sign(self, *args) - | invert_sign(self) -> bool + | Negate a number. This function negates the current number. | | jump_enter(self, *args) + | 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. + | | jump_enter(self, idv, omflags) -> bool + | @param idv: what cursor must be used, the keyboard or the mouse (C++: + | input_device_t) + | @param omflags: OM_NEWWIN: new pseudocode window will open, 0: reuse + | the existing window (C++: int) + | @return: false if failed | | locked(self, *args) - | 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. | | map_lvar(self, *args) + | 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 + | | map_lvar(self, frm, to) -> bool + | @param frm: the variable being mapped (C++: lvar_t *) + | @param to: the variable to map to. if NULL, unmaps the variable (C++: + | lvar_t *) + | @return: false if failed | | refresh_cpos(self, *args) + | Refresh the current position. This function refreshes the 'cpos' + | field. + | | refresh_cpos(self, idv) -> bool + | @param idv: keyboard or mouse (C++: input_device_t) + | @return: false if failed | | refresh_ctext(self, *args) + | 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. 'refresh_view()' , refresh_func_ctext() + | | refresh_ctext(self, activate=True) + | @param activate (C++: bool) | | refresh_view(self, *args) + | 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. + | 'refresh_ctext()' + | | refresh_view(self, redo_mba) + | @param redo_mba: true means to redecompile the current function + | false means to rebuild ctree without regenerating + | microcode (C++: bool) | | rename_global(self, *args) + | Rename global item. This function displays a dialog box and allows the + | user to rename a global item (data or function). + | | rename_global(self, ea) -> bool + | @param ea: address of the global item (C++: ea_t) + | @return: false if failed or cancelled | | rename_label(self, *args) + | Rename a label. This function displays a dialog box and allows the + | user to rename a statement label. + | | rename_label(self, label) -> bool + | @param label: label number (C++: int) + | @return: false if failed or cancelled | | rename_lvar(self, *args) + | Rename local variable. This function permanently renames a local + | variable. + | | rename_lvar(self, v, name, is_user_name) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param name: new variable name (C++: const char *) + | @param is_user_name: use true to save the new name into the database + | (C++: bool) + | @return: false if failed | | rename_strmem(self, *args) + | Rename structure field. This function displays a dialog box and allows + | the user to rename a structure field. + | | rename_strmem(self, sptr, mptr) -> bool + | @param sptr: pointer to structure (C++: struc_t *) + | @param mptr: pointer to structure member (C++: member_t *) + | @return: false if failed or cancelled | | set_global_type(self, *args) + | 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). + | | set_global_type(self, ea) -> bool + | @param ea: address of the global item (C++: ea_t) + | @return: false if failed or cancelled | | set_locked(self, *args) | set_locked(self, v) -> bool + | @param v (C++: bool) | | set_lvar_cmt(self, *args) + | Set local variable comment. This function permanently sets a variable + | comment. + | | set_lvar_cmt(self, v, cmt) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param cmt: new comment (C++: const char *) + | @return: false if failed | | set_lvar_type(self, *args) + | 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' + | | set_lvar_type(self, v, type) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param type: new variable type (C++: const tinfo_t &) + | @return: false if failed | | set_noptr_lvar(self, *args) + | 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' + | | set_noptr_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed | | set_num_enum(self, *args) - | 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. | | set_num_radix(self, *args) + | Change number base. This function changes the current number + | representation. + | | set_num_radix(self, base) -> bool + | @param base: number radix (10 or 16) 0 means a character constant + | (C++: int) + | @return: false if failed | | set_num_stroff(self, *args) - | set_num_stroff(self) -> bool + | Convert number to structure field offset. Currently not implemented. | | set_strmem_type(self, *args) + | Set structure field type. This function displays a dialog box and + | allows the user to change the type of a structure field. + | | set_strmem_type(self, sptr, mptr) -> bool + | @param sptr: pointer to structure (C++: struc_t *) + | @param mptr: pointer to structure member (C++: member_t *) + | @return: false if failed or cancelled | | set_valid(self, *args) | set_valid(self, v) + | @param v (C++: bool) | | set_visible(self, *args) | set_visible(self, v) + | @param v (C++: bool) | | split_item(self, *args) + | Split/unsplit item. This function splits the current assignment + | expression. + | | split_item(self, split) -> bool + | @param split (C++: bool) + | @return: false if failed. | | switch_to(self, *args) + | Display the specified pseudocode. This function replaces the + | pseudocode window contents with the specified 'cfunc_t' . + | | switch_to(self, f, activate) + | @param f: pointer to the function to display. (C++: cfuncptr_t) + | @param activate: should the pseudocode window get focus? (C++: bool) | | ui_edit_lvar_cmt(self, *args) + | Set local variable comment. This function displays a dialog box and + | allows the user to edit the comment of a local variable. + | | ui_edit_lvar_cmt(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_map_lvar(self, *args) + | Map a local variable to another. This function displays a variable + | list and allows the user to select mapping. + | | ui_map_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_rename_lvar(self, *args) + | Rename local variable. This function displays a dialog box and allows + | the user to rename a local variable. + | | ui_rename_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_set_call_type(self, *args) + | Set type of a function call This function displays a dialog box and + | allows the user to change the type of a function call + | | ui_set_call_type(self, e) -> bool + | @param e: pointer to call expression (C++: const cexpr_t *) + | @return: false if failed or cancelled | | ui_set_lvar_type(self, *args) + | Set local variable type. This function displays a dialog box and + | allows the user to change the type of a local variable. + | | ui_set_lvar_type(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_unmap_lvar(self, *args) + | 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. + | | ui_unmap_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | valid(self, *args) - | 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) - | visible(self) -> bool + | Is the pseudocode window visible? if not, it might be invisible or + | destroyed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33741,7 +38505,7 @@ class vdui_t(__builtin__.object) | vdui_t_last_code_get(self) -> merror_t | | mba - | vdui_t_mba_get(self) -> mbl_array_t + | vdui_t_mba_get(self) -> mba_t | | tail | vdui_t_tail_get(self) -> ctree_item_t @@ -33775,27 +38539,45 @@ class vivl_t(voff_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: vivl_t const & + | + | | __eq__(self, mop) -> bool + | mop: mop_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: vivl_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: vivl_t const & | | __init__(self, *args) | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t + | _type: mopt_t + | _off: sval_t + | _size: int + | + | | __init__(self, ch) -> vivl_t + | ch: chain_t const & + | + | | __init__(self, op) -> vivl_t + | op: mop_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: vivl_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: vivl_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: vivl_t const & | | __repr__ = _swig_repr(self) | @@ -33804,34 +38586,63 @@ class vivl_t(voff_t) | | compare(self, *args) | compare(self, r) -> int + | r: vivl_t const & | | contains(self, *args) + | Does our value interval contain the specified value offset? + | | contains(self, voff2) -> bool + | @param voff2 (C++: const voff_t &) | | dstr(self, *args) | dstr(self) -> char const * | | extend_to_cover(self, *args) + | Extend a value interval using another value interval of the same type + | | extend_to_cover(self, r) -> bool + | @param r (C++: const vivl_t &) + | @return: success | | includes(self, *args) + | Does our value interval include another? + | | includes(self, r) -> bool + | @param r (C++: const vivl_t &) | | intersect(self, *args) + | Intersect value intervals the same type + | | intersect(self, r) -> uval_t + | @param r (C++: const vivl_t &) + | @return: size of the resulting intersection | | overlap(self, *args) + | Do two value intervals overlap? + | | overlap(self, r) -> bool + | @param r (C++: const vivl_t &) | | set(self, *args) | set(self, _type, _off, _size=0) + | @param _type (C++: mopt_t) + | @param _off (C++: sval_t) + | @param _size (C++: int) + | + | | set(self, voff, _size) + | voff: voff_t const & + | @param _size (C++: int) | | set_reg(self, *args) | set_reg(self, mreg, sz=0) + | @param mreg (C++: mreg_t) + | @param sz (C++: int) | | set_stkoff(self, *args) | set_stkoff(self, stkoff, sz=0) + | @param stkoff (C++: sval_t) + | @param sz (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33853,12 +38664,14 @@ class vivl_t(voff_t) | | add(self, *args) | add(self, width) -> voff_t + | @param width (C++: int) | | defined(self, *args) | defined(self) -> bool | | diff(self, *args) | diff(self, r) -> sval_t + | @param r (C++: const voff_t &) | | get_reg(self, *args) | get_reg(self) -> mreg_t @@ -33868,6 +38681,7 @@ class vivl_t(voff_t) | | inc(self, *args) | inc(self, delta) + | @param delta (C++: sval_t) | | is_reg(self, *args) | is_reg(self) -> bool @@ -33902,40 +38716,53 @@ class voff_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: voff_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: voff_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: voff_t const & | | __init__(self, *args) | __init__(self) -> voff_t - | __init__(self, _type, _off) -> voff_t + | _type: mopt_t + | _off: sval_t + | + | | __init__(self, op) -> voff_t + | op: mop_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: voff_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: voff_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: voff_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, width) -> voff_t + | @param width (C++: int) | | compare(self, *args) | compare(self, r) -> int + | r: voff_t const & | | defined(self, *args) | defined(self) -> bool | | diff(self, *args) | diff(self, r) -> sval_t + | @param r (C++: const voff_t &) | | get_reg(self, *args) | get_reg(self) -> mreg_t @@ -33945,6 +38772,7 @@ class voff_t(__builtin__.object) | | inc(self, *args) | inc(self, delta) + | @param delta (C++: sval_t) | | is_reg(self, *args) | is_reg(self) -> bool @@ -33954,12 +38782,16 @@ class voff_t(__builtin__.object) | | set(self, *args) | set(self, _type, _off) + | @param _type (C++: mopt_t) + | @param _off (C++: sval_t) | | set_reg(self, *args) | set_reg(self, mreg) + | @param mreg (C++: mreg_t) | | set_stkoff(self, *args) | set_stkoff(self, stkoff) + | @param stkoff (C++: sval_t) | | undef(self, *args) | undef(self) @@ -34044,11 +38876,21 @@ ida_hexrays.CFL_HELPER created from a decompiler helper function """ +ida_hexrays.CFL_NORET +""" +call does not return +""" + ida_hexrays.CFS_BOUNDS """ 'eamap' and 'boundaries' are ready """ +ida_hexrays.CFS_LOCKED +""" +cfunc is temporarily locked +""" + ida_hexrays.CFS_LVARS_HIDDEN """ local variable definitions are collapsed @@ -34159,11 +39001,21 @@ ida_hexrays.DECOMP_NO_FRAME do not use function frame info (only snippet mode) """ +ida_hexrays.DECOMP_NO_HIDE +""" +do not hide display waitbox. see close_hexrays_waitboxes() +""" + ida_hexrays.DECOMP_NO_WAIT """ do not display waitbox """ +ida_hexrays.DECOMP_NO_XREFS +""" +do not update global xrefs cache +""" + ida_hexrays.DECOMP_WARNINGS """ display warnings in the output window @@ -34181,7 +39033,7 @@ ignore instruction opcodes ida_hexrays.EQ_IGNSIZE """ -ignore operand sizes +ignore source operand sizes """ ida_hexrays.EQ_OPTINSN @@ -34828,9 +39680,32 @@ ida_hexrays.NF_NEGDONE temporary internal bit: negation has been performed """ -ida_hexrays.NF_STROFF +ida_hexrays.NF_VALID """ -internal bit: used as stroff, valid iff 'is_stroff()' +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 +""" + +ida_hexrays.OPF_NEW_WINDOW +""" +open new window +""" + +ida_hexrays.OPF_NO_WAIT +""" +do not display waitbox if decompilation happens +""" + +ida_hexrays.OPF_REUSE +""" +reuse existing window +""" + +ida_hexrays.OPF_REUSE_ACTIVE +""" +currently active widget is a pseudocode view + +reuse existing window, only if the """ ida_hexrays.OPROP_CCFLAGS @@ -34848,6 +39723,11 @@ ida_hexrays.OPROP_IMPDONE imported operand (a pointer) has been dereferenced """ +ida_hexrays.OPROP_LOWADDR +""" +a low address offset +""" + ida_hexrays.OPROP_UDEFVAL """ uses undefined value @@ -34875,7 +39755,8 @@ may update minstkref ida_hexrays.OPTI_NO_LDXOPT """ -do not optimize low/high(ldx) +the function is called after the propagation attempt, we do not +optimize low/high(ldx) in this case """ ida_hexrays.SHINS_LDXEA @@ -34948,11 +39829,6 @@ ida_hexrays.VDRUN_STATS Print statistics into vd_stats.txt. """ -ida_hexrays.VDUI_LOCKED -""" -is locked? -""" - ida_hexrays.VDUI_VALID """ is valid? @@ -34996,12 +39872,13 @@ Help on function __make_idainfo_getter in module ida_ida: __make_idainfo_getter(name) +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) - calc_default_idaplace_flags() -> int - - Get default disassembly line options. Help on class compiler_info_t in module ida_ida: @@ -35153,9 +40030,11 @@ class idainfo(__builtin__.object) | | set_maxEA(self, *args) | set_maxEA(self, ea) + | ea: ea_t | | set_minEA(self, *args) | set_minEA(self, ea) + | ea: ea_t | | set_pack_mode = __func(self, *args) | @@ -35396,9 +40275,6 @@ inf_gen_tryblks(*args) 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: @@ -35500,61 +40376,73 @@ Help on function inf_set_64bit in module ida_ida: inf_set_64bit(*args) inf_set_64bit(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_auto_enabled in module ida_ida: inf_set_auto_enabled(*args) inf_set_auto_enabled(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_be in module ida_ida: inf_set_be(*args) inf_set_be(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_gen_lzero in module ida_ida: inf_set_gen_lzero(*args) inf_set_gen_lzero(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_gen_null in module ida_ida: inf_set_gen_null(*args) inf_set_gen_null(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_gen_tryblks in module ida_ida: inf_set_gen_tryblks(*args) inf_set_gen_tryblks(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_graph_view in module ida_ida: inf_set_graph_view(*args) inf_set_graph_view(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_pack_mode in module ida_ida: inf_set_pack_mode(*args) inf_set_pack_mode(pack_mode) -> int + @param pack_mode (C++: int) Help on function inf_set_show_auto in module ida_ida: inf_set_show_auto(*args) inf_set_show_auto(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_show_void in module ida_ida: inf_set_show_void(*args) inf_set_show_void(_v=True) -> bool + @param _v (C++: bool) Help on function in module ida_ida: @@ -35564,6 +40452,7 @@ 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 + @param _v (C++: bool) Help on function inf_show_auto in module ida_ida: @@ -35743,9 +40632,6 @@ inf_get_af2(*args) 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: @@ -35756,9 +40642,6 @@ inf_get_af_high(*args) 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: @@ -35790,6 +40673,7 @@ Help on function inf_get_cc in module ida_ida: inf_get_cc(*args) inf_get_cc(out) -> bool + @param out (C++: compiler_info_t *) Help on function inf_get_cc_cm in module ida_ida: @@ -35985,7 +40869,7 @@ Help on function inf_get_privrange in module ida_ida: inf_get_privrange(*args) inf_get_privrange(out) -> bool - inf_get_privrange() -> range_t + @param out (C++: range_t *) Help on function inf_get_privrange_end_ea in module ida_ida: @@ -36126,6 +41010,7 @@ 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) + @param cnt (C++: int) Help on function inf_is_limiter_empty in module ida_ida: @@ -36181,6 +41066,7 @@ Help on function inf_postinc_strlit_sernum in module ida_ida: inf_postinc_strlit_sernum(*args) inf_postinc_strlit_sernum(cnt=1) -> uval_t + @param cnt (C++: uval_t) Help on function inf_prefix_show_funcoff in module ida_ida: @@ -36226,796 +41112,951 @@ Help on function inf_set_32bit in module ida_ida: inf_set_32bit(*args) inf_set_32bit(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_abibits in module ida_ida: inf_set_abibits(*args) inf_set_abibits(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_af in module ida_ida: inf_set_af(*args) inf_set_af(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_af2 in module ida_ida: inf_set_af2(*args) inf_set_af2(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_af2_low in module ida_ida: inf_set_af2_low(*args) inf_set_af2_low(saf) + @param saf (C++: ushort) Help on function inf_set_af_high in module ida_ida: inf_set_af_high(*args) inf_set_af_high(saf2) + @param saf2 (C++: ushort) Help on function inf_set_af_low in module ida_ida: inf_set_af_low(*args) inf_set_af_low(saf) + @param saf (C++: ushort) 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 + @param _v (C++: bool) Help on function inf_set_allow_sigmulti in module ida_ida: inf_set_allow_sigmulti(*args) inf_set_allow_sigmulti(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_appcall_options in module ida_ida: inf_set_appcall_options(*args) inf_set_appcall_options(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_append_sigcmt in module ida_ida: inf_set_append_sigcmt(*args) inf_set_append_sigcmt(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_apptype in module ida_ida: inf_set_apptype(*args) inf_set_apptype(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_asmtype in module ida_ida: inf_set_asmtype(*args) inf_set_asmtype(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_baseaddr in module ida_ida: inf_set_baseaddr(*args) inf_set_baseaddr(_v) -> bool + @param _v (C++: uval_t) 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 + @param _v (C++: 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 + @param _v (C++: short) Help on function inf_set_cc in module ida_ida: inf_set_cc(*args) inf_set_cc(_v) -> bool + @param _v (C++: const compiler_info_t &) Help on function inf_set_cc_cm in module ida_ida: inf_set_cc_cm(*args) inf_set_cc_cm(_v) -> bool + @param _v (C++: cm_t) Help on function inf_set_cc_defalign in module ida_ida: inf_set_cc_defalign(*args) inf_set_cc_defalign(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_cc_id in module ida_ida: inf_set_cc_id(*args) inf_set_cc_id(_v) -> bool + @param _v (C++: comp_t) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_cmtflg in module ida_ida: inf_set_cmtflg(*args) inf_set_cmtflg(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_coagulate_code in module ida_ida: inf_set_coagulate_code(*args) inf_set_coagulate_code(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_coagulate_data in module ida_ida: inf_set_coagulate_data(*args) inf_set_coagulate_data(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_comment in module ida_ida: inf_set_comment(*args) inf_set_comment(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_compress_idb in module ida_ida: inf_set_compress_idb(*args) inf_set_compress_idb(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_data_offset in module ida_ida: inf_set_data_offset(*args) inf_set_data_offset(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: uint32) Help on function inf_set_datatypes in module ida_ida: inf_set_datatypes(*args) inf_set_datatypes(_v) -> bool + @param _v (C++: uval_t) 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 + @param _v (C++: bool) Help on function inf_set_decode_fpp in module ida_ida: inf_set_decode_fpp(*args) inf_set_decode_fpp(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_demnames in module ida_ida: inf_set_demnames(*args) inf_set_demnames(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_dll in module ida_ida: inf_set_dll(*args) inf_set_dll(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_filetype in module ida_ida: inf_set_filetype(*args) inf_set_filetype(_v) -> bool + @param _v (C++: filetype_t) Help on function inf_set_final_pass in module ida_ida: inf_set_final_pass(*args) inf_set_final_pass(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_flat_off32 in module ida_ida: inf_set_flat_off32(*args) inf_set_flat_off32(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_gen_assume in module ida_ida: inf_set_gen_assume(*args) inf_set_gen_assume(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_gen_org in module ida_ida: inf_set_gen_org(*args) inf_set_gen_org(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_genflags in module ida_ida: inf_set_genflags(*args) inf_set_genflags(_v) -> bool + @param _v (C++: ushort) 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 + @param _v (C++: bool) Help on function inf_set_handle_eh in module ida_ida: inf_set_handle_eh(*args) inf_set_handle_eh(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_handle_rtti in module ida_ida: inf_set_handle_rtti(*args) inf_set_handle_rtti(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_hard_float in module ida_ida: inf_set_hard_float(*args) inf_set_hard_float(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_hide_comments in module ida_ida: inf_set_hide_comments(*args) inf_set_hide_comments(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_hide_libfuncs in module ida_ida: inf_set_hide_libfuncs(*args) inf_set_hide_libfuncs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_highoff in module ida_ida: inf_set_highoff(*args) inf_set_highoff(_v) -> bool + @param _v (C++: ea_t) 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 + @param _v (C++: bool) Help on function inf_set_indent in module ida_ida: inf_set_indent(*args) inf_set_indent(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_kernel_mode in module ida_ida: inf_set_kernel_mode(*args) inf_set_kernel_mode(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_lenxref in module ida_ida: inf_set_lenxref(*args) inf_set_lenxref(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_lflags in module ida_ida: inf_set_lflags(*args) inf_set_lflags(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_limiter in module ida_ida: inf_set_limiter(*args) inf_set_limiter(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_limiter_empty in module ida_ida: inf_set_limiter_empty(*args) inf_set_limiter_empty(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_limiter_thick in module ida_ida: inf_set_limiter_thick(*args) inf_set_limiter_thick(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_limiter_thin in module ida_ida: inf_set_limiter_thin(*args) inf_set_limiter_thin(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_listnames in module ida_ida: inf_set_listnames(*args) inf_set_listnames(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_loading_idc in module ida_ida: inf_set_loading_idc(*args) inf_set_loading_idc(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_long_demnames in module ida_ida: inf_set_long_demnames(*args) inf_set_long_demnames(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_lowoff in module ida_ida: inf_set_lowoff(*args) inf_set_lowoff(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_macros_enabled in module ida_ida: inf_set_macros_enabled(*args) inf_set_macros_enabled(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_main in module ida_ida: inf_set_main(*args) inf_set_main(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_map_stkargs in module ida_ida: inf_set_map_stkargs(*args) inf_set_map_stkargs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_margin in module ida_ida: inf_set_margin(*args) inf_set_margin(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_mark_code in module ida_ida: inf_set_mark_code(*args) inf_set_mark_code(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: ushort) Help on function inf_set_max_ea in module ida_ida: inf_set_max_ea(*args) inf_set_max_ea(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_maxref in module ida_ida: inf_set_maxref(*args) inf_set_maxref(_v) -> bool + @param _v (C++: uval_t) Help on function inf_set_mem_aligned4 in module ida_ida: inf_set_mem_aligned4(*args) inf_set_mem_aligned4(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_min_ea in module ida_ida: inf_set_min_ea(*args) inf_set_min_ea(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_nametype in module ida_ida: inf_set_nametype(*args) inf_set_nametype(_v) -> bool + @param _v (C++: char) Help on function inf_set_netdelta in module ida_ida: inf_set_netdelta(*args) inf_set_netdelta(_v) -> bool + @param _v (C++: sval_t) 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_noret_ana in module ida_ida: inf_set_noret_ana(*args) inf_set_noret_ana(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_omax_ea in module ida_ida: inf_set_omax_ea(*args) inf_set_omax_ea(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_omin_ea in module ida_ida: inf_set_omin_ea(*args) inf_set_omin_ea(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_op_offset in module ida_ida: inf_set_op_offset(*args) inf_set_op_offset(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_ostype in module ida_ida: inf_set_ostype(*args) inf_set_ostype(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_outflags in module ida_ida: inf_set_outflags(*args) inf_set_outflags(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_pack_idb in module ida_ida: inf_set_pack_idb(*args) inf_set_pack_idb(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_pack_stkargs in module ida_ida: inf_set_pack_stkargs(*args) inf_set_pack_stkargs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_prefflag in module ida_ida: inf_set_prefflag(*args) inf_set_prefflag(_v) -> bool + @param _v (C++: uchar) 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_privrange in module ida_ida: inf_set_privrange(*args) inf_set_privrange(_v) -> bool + @param _v (C++: const range_t &) 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 + @param _v (C++: ea_t) 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 + @param _v (C++: ea_t) Help on function inf_set_procname in module ida_ida: inf_set_procname(*args) inf_set_procname(_v, len=size_t(-1)) -> bool + @param _v (C++: const char *) + @param len (C++: size_t) Help on function inf_set_propagate_regargs in module ida_ida: inf_set_propagate_regargs(*args) inf_set_propagate_regargs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_propagate_stkargs in module ida_ida: inf_set_propagate_stkargs(*args) inf_set_propagate_stkargs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_readonly_idb in module ida_ida: inf_set_readonly_idb(*args) inf_set_readonly_idb(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_refcmtnum in module ida_ida: inf_set_refcmtnum(*args) inf_set_refcmtnum(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_rename_jumpfunc in module ida_ida: inf_set_rename_jumpfunc(*args) inf_set_rename_jumpfunc(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_rename_nullsub in module ida_ida: inf_set_rename_nullsub(*args) inf_set_rename_nullsub(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_short_demnames in module ida_ida: inf_set_short_demnames(*args) inf_set_short_demnames(_v) -> bool + @param _v (C++: uint32) 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_show_repeatables in module ida_ida: inf_set_show_repeatables(*args) inf_set_show_repeatables(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_snapshot in module ida_ida: inf_set_snapshot(*args) inf_set_snapshot(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_specsegs in module ida_ida: inf_set_specsegs(*args) inf_set_specsegs(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_stack_ldbl in module ida_ida: inf_set_stack_ldbl(*args) inf_set_stack_ldbl(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_stack_varargs in module ida_ida: inf_set_stack_varargs(*args) inf_set_stack_varargs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_start_cs in module ida_ida: inf_set_start_cs(*args) inf_set_start_cs(_v) -> bool + @param _v (C++: sel_t) Help on function inf_set_start_ea in module ida_ida: inf_set_start_ea(*args) inf_set_start_ea(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_start_ip in module ida_ida: inf_set_start_ip(*args) inf_set_start_ip(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_start_sp in module ida_ida: inf_set_start_sp(*args) inf_set_start_sp(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_start_ss in module ida_ida: inf_set_start_ss(*args) inf_set_start_ss(_v) -> bool + @param _v (C++: sel_t) Help on function inf_set_strlit_autocmt in module ida_ida: inf_set_strlit_autocmt(*args) inf_set_strlit_autocmt(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_strlit_break in module ida_ida: inf_set_strlit_break(*args) inf_set_strlit_break(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_strlit_flags in module ida_ida: inf_set_strlit_flags(*args) inf_set_strlit_flags(_v) -> bool + @param _v (C++: uchar) 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 + @param _v (C++: bool) Help on function inf_set_strlit_names in module ida_ida: inf_set_strlit_names(*args) inf_set_strlit_names(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: const char *) + @param len (C++: size_t) Help on function inf_set_strlit_savecase in module ida_ida: inf_set_strlit_savecase(*args) inf_set_strlit_savecase(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_strlit_sernum in module ida_ida: inf_set_strlit_sernum(*args) inf_set_strlit_sernum(_v) -> bool + @param _v (C++: uval_t) Help on function inf_set_strlit_zeroes in module ida_ida: inf_set_strlit_zeroes(*args) inf_set_strlit_zeroes(_v) -> bool + @param _v (C++: char) 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 + @param _v (C++: int32) Help on function inf_set_trace_flow in module ida_ida: inf_set_trace_flow(*args) inf_set_trace_flow(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_type_xrefnum in module ida_ida: inf_set_type_xrefnum(*args) inf_set_type_xrefnum(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_unicode_strlits in module ida_ida: inf_set_unicode_strlits(*args) inf_set_unicode_strlits(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_use_allasm in module ida_ida: inf_set_use_allasm(*args) inf_set_use_allasm(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_use_flirt in module ida_ida: inf_set_use_flirt(*args) inf_set_use_flirt(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_version in module ida_ida: inf_set_version(*args) inf_set_version(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_xrefflag in module ida_ida: inf_set_xrefflag(*args) inf_set_xrefflag(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_xrefnum in module ida_ida: inf_set_xrefnum(*args) inf_set_xrefnum(_v) -> bool + @param _v (C++: uchar) Help on function inf_should_create_stkvars in module ida_ida: @@ -37130,13 +42171,10 @@ inf_use_flirt(*args) 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) + is_filetype_like_binary(ft) -> bool + @param ft (C++: filetype_t) Help on function in module ida_ida: @@ -37145,14 +42183,11 @@ Help on function in module ida_ida: 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) + to_ea(reg_cs, reg_ip) -> ea_t + @param reg_cs (C++: sel_t) + @param reg_ip (C++: uval_t) === ida_ida EPYDOC INJECTIONS === ida_ida.ABI_8ALIGN4 @@ -37893,7 +42928,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -37950,9 +42988,6 @@ 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: @@ -38243,8 +43278,6 @@ 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 @@ -38254,8 +43287,6 @@ 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 @@ -38264,18 +43295,18 @@ Help on function enable_python_cli in module ida_idaapi: enable_python_cli(*args) enable_python_cli(enable) + enable: bool Help on function format_basestring in module ida_idaapi: format_basestring(*args) format_basestring(_in) -> PyObject * + _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: @@ -38291,8 +43322,6 @@ class loader_input_t(__builtin__.object) | | __init__(self, *args) | __init__(self, pycapsule=None) -> loader_input_t - | - | | Closes the file | | __repr__ = _swig_repr(self) @@ -38302,8 +43331,6 @@ class loader_input_t(__builtin__.object) | | 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) @@ -38325,14 +43352,10 @@ class loader_input_t(__builtin__.object) | | 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 @@ -38340,15 +43363,11 @@ class loader_input_t(__builtin__.object) | | 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 @@ -38357,33 +43376,23 @@ class loader_input_t(__builtin__.object) | | 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) @@ -38391,8 +43400,6 @@ class loader_input_t(__builtin__.object) | | tell(self, *args) | tell(self) -> int64 - | - | | Returns the current position | | ---------------------------------------------------------------------- @@ -38400,15 +43407,15 @@ class loader_input_t(__builtin__.object) | | from_capsule(*args) | from_capsule(pycapsule) -> loader_input_t + | pycapsule: PyObject * | | 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 + | linput: linput_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38435,16 +43442,19 @@ 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 + pycapsule: PyObject * 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 + fp: FILE * 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 + linput: linput_t * Help on function notify_when in module ida_idaapi: @@ -38483,6 +43493,7 @@ Help on function parse_command_line3 in module ida_idaapi: parse_command_line3(*args) parse_command_line3(cmdline) -> PyObject * + cmdline: char const * Help on class plugin_t in module ida_idaapi: @@ -38507,6 +43518,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 + | __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) @@ -38573,31 +43607,43 @@ Help on function pycim_get_widget in module ida_idaapi: pycim_get_widget(*args) pycim_get_widget(_self) -> TWidget * + self: PyObject * Help on function pycim_view_close in module ida_idaapi: pycim_view_close(*args) pycim_view_close(_self) + self: PyObject * Help on function pygc_create_groups in module ida_idaapi: pygc_create_groups(*args) pygc_create_groups(_self, groups_infos) -> PyObject * + self: PyObject * + 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 * + self: PyObject * + groups: PyObject * + new_current: PyObject * Help on function pygc_refresh in module ida_idaapi: pygc_refresh(*args) pygc_refresh(_self) + self: PyObject * 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 * + self: PyObject * + groups: PyObject * + expand: PyObject * + new_current: PyObject * Help on class pyidc_cvt_helper__ in module ida_idaapi: @@ -38674,8 +43720,6 @@ 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}. @@ -38694,16 +43738,24 @@ Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) get_mark_comment(slot) -> PyObject * + slot: int32 Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) get_marked_pos(slot) -> ea_t + slot: int32 Help on function mark_position in module ida_idc: mark_position(*args) mark_position(ea, lnnum, x, y, slot, comment) + ea: ea_t + lnnum: int + x: short + y: short + slot: int32 + comment: char const * Help on Appcall__ in module ida_idd object: @@ -39058,6 +44110,11 @@ Help on function appcall in module ida_idd: appcall(*args) appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * + func_ea: ea_t + tid: thid_t + _type_or_none: bytevec_t const & + _fields: bytevec_t const & + arg_list: PyObject * Help on class bptaddr_t in module ida_idd: @@ -39104,12 +44161,14 @@ class call_stack_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: call_stack_info_t const & | | __init__(self, *args) | __init__(self) -> call_stack_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: call_stack_info_t const & | | __repr__ = _swig_repr(self) | @@ -39152,13 +44211,15 @@ class call_stack_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> call_stack_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> call_stack_t - | __init__(self, x) -> call_stack_t + | 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. @@ -39168,20 +44229,26 @@ class call_stack_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< call_stack_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: call_stack_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: call_stack_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: call_stack_info_t const & | | at(self, *args) | at(self, _idx) -> call_stack_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39205,52 +44272,74 @@ class call_stack_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> call_stack_info_t + | it: qvector< call_stack_info_t >::iterator + | + | | erase(self, first, last) -> call_stack_info_t + | first: qvector< call_stack_info_t >::iterator + | last: qvector< call_stack_info_t >::iterator | | extract(self, *args) | extract(self) -> call_stack_info_t | | find(self, *args) | find(self, x) -> call_stack_info_t + | x: call_stack_info_t const & + | + | | find(self, x) -> call_stack_info_t + | x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=call_stack_info_t()) + | x: call_stack_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: call_stack_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: call_stack_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> call_stack_info_t + | it: qvector< call_stack_info_t >::iterator + | x: call_stack_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> call_stack_info_t + | x: call_stack_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: call_stack_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< call_stack_info_t > & | | truncate(self, *args) | truncate(self) @@ -39277,38 +44366,35 @@ Help on function can_exc_continue in module ida_idd: can_exc_continue(*args) can_exc_continue(ev) -> bool + ev: debug_event_t const * 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 + cleanup_appcall(tid) -> error_t + @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 + dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t + @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: @@ -39319,8 +44405,6 @@ 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 @@ -39330,8 +44414,6 @@ 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 @@ -39339,8 +44421,6 @@ 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: @@ -39352,8 +44432,6 @@ 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 @@ -39365,8 +44443,6 @@ 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) @@ -39376,8 +44452,6 @@ 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 @@ -39432,61 +44506,75 @@ class debug_event_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> debug_event_t - | __init__(self, r) -> debug_event_t + | r: debug_event_t const & | | __repr__ = _swig_repr(self) | | bpt(self, *args) - | bpt(self) -> bptaddr_t - | bpt(self) -> bptaddr_t + | 'EXCEPTION' | | bpt_ea(self, *args) - | 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) - | clear(self) + | clear the dependent information (see below), set event code to + | NO_EVENT | | clear_all(self, *args) | clear_all(self) | | copy(self, *args) | copy(self, r) -> debug_event_t + | @param r (C++: const debug_event_t &) | | eid(self, *args) - | eid(self) -> event_id_t + | Event code. | | exc(self, *args) | exc(self) -> excinfo_t | exc(self) -> excinfo_t | | exit_code(self, *args) - | exit_code(self) -> int const & + | 'THREAD_STARTED' (thread name) 'LIB_UNLOADED' (unloaded library name) + | 'INFORMATION' (will be displayed in the output window if not empty) | | info(self, *args) - | info(self) -> qstring - | info(self) -> qstring const & + | 'BREAKPOINT' | | modinfo(self, *args) - | modinfo(self) -> modinfo_t - | modinfo(self) -> modinfo_t + | Information that depends on the event code: + | + | < 'PROCESS_STARTED' , 'PROCESS_ATTACHED' , 'LIB_LOADED' + | 'PROCESS_EXITED' , 'THREAD_EXITED' | | set_bpt(self, *args) | set_bpt(self) -> bptaddr_t | | set_eid(self, *args) + | 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. + | | set_eid(self, id) + | @param id (C++: event_id_t) | | set_exception(self, *args) | set_exception(self) -> excinfo_t | | set_exit_code(self, *args) | set_exit_code(self, id, code) + | @param id (C++: event_id_t) + | @param code (C++: int) | | set_info(self, *args) | set_info(self, id) -> qstring & + | @param id (C++: event_id_t) | | set_modinfo(self, *args) | set_modinfo(self, id) -> modinfo_t + | @param id (C++: event_id_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39527,15 +44615,18 @@ class exception_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> exception_info_t - | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | _code: uint + | _flags: uint32 + | _name: char const * + | _desc: char const * | | __repr__ = _swig_repr(self) | | break_on(self, *args) - | break_on(self) -> bool + | Should we break on the exception? | | handle(self, *args) - | handle(self) -> bool + | Should we handle the exception? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39618,10 +44709,11 @@ class excvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> exception_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> excvec_t - | __init__(self, x) -> excvec_t + | 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. @@ -39633,9 +44725,12 @@ class excvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: exception_info_t const & | | at(self, *args) | at(self, _idx) -> exception_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39659,7 +44754,12 @@ class excvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> exception_info_t + | it: qvector< exception_info_t >::iterator + | + | | erase(self, first, last) -> exception_info_t + | first: qvector< exception_info_t >::iterator + | last: qvector< exception_info_t >::iterator | | extract(self, *args) | extract(self) -> exception_info_t @@ -39669,35 +44769,47 @@ class excvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=exception_info_t()) + | x: exception_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: exception_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> exception_info_t + | it: qvector< exception_info_t >::iterator + | x: exception_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> exception_info_t + | x: exception_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: exception_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< exception_info_t > & | | truncate(self, *args) | truncate(self) @@ -39724,41 +44836,49 @@ Help on function get_event_bpt_hea in module ida_idd: get_event_bpt_hea(*args) get_event_bpt_hea(ev) -> ea_t + ev: debug_event_t const * Help on function get_event_exc_code in module ida_idd: get_event_exc_code(*args) get_event_exc_code(ev) -> uint + ev: debug_event_t const * Help on function get_event_exc_ea in module ida_idd: get_event_exc_ea(*args) get_event_exc_ea(ev) -> ea_t + ev: debug_event_t const * Help on function get_event_exc_info in module ida_idd: get_event_exc_info(*args) get_event_exc_info(ev) -> str + ev: debug_event_t const * Help on function get_event_info in module ida_idd: get_event_info(*args) get_event_info(ev) -> str + ev: debug_event_t const * Help on function get_event_module_base in module ida_idd: get_event_module_base(*args) get_event_module_base(ev) -> ea_t + ev: debug_event_t const * Help on function get_event_module_name in module ida_idd: get_event_module_name(*args) get_event_module_name(ev) -> str + ev: debug_event_t const * Help on function get_event_module_size in module ida_idd: get_event_module_size(*args) get_event_module_size(ev) -> asize_t + ev: debug_event_t const * Help on class meminfo_vec_t in module ida_idd: @@ -39769,13 +44889,15 @@ class meminfo_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< memory_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> memory_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> meminfo_vec_t - | __init__(self, x) -> meminfo_vec_t + | 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. @@ -39785,20 +44907,26 @@ class meminfo_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< memory_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: memory_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: memory_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: memory_info_t const & | | at(self, *args) | at(self, _idx) -> memory_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39822,52 +44950,74 @@ class meminfo_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> memory_info_t + | it: qvector< memory_info_t >::iterator + | + | | erase(self, first, last) -> memory_info_t + | first: qvector< memory_info_t >::iterator + | last: qvector< memory_info_t >::iterator | | extract(self, *args) | extract(self) -> memory_info_t | | find(self, *args) | find(self, x) -> memory_info_t + | x: memory_info_t const & + | + | | find(self, x) -> memory_info_t + | x: memory_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=memory_info_t()) + | x: memory_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: memory_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: memory_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> memory_info_t + | it: qvector< memory_info_t >::iterator + | x: memory_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> memory_info_t + | x: memory_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: memory_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< memory_info_t > & | | truncate(self, *args) | truncate(self) @@ -39904,12 +45054,14 @@ class memory_info_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: memory_info_t const & | | __init__(self, *args) | __init__(self) -> memory_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: memory_info_t const & | | __repr__ = _swig_repr(self) | @@ -39945,37 +45097,58 @@ class memory_info_t(ida_range.range_t) | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -40083,10 +45256,11 @@ class procinfo_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> process_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> procinfo_vec_t - | __init__(self, x) -> procinfo_vec_t + | 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. @@ -40098,9 +45272,12 @@ class procinfo_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: process_info_t const & | | at(self, *args) | at(self, _idx) -> process_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -40124,7 +45301,12 @@ class procinfo_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> process_info_t + | it: qvector< process_info_t >::iterator + | + | | erase(self, first, last) -> process_info_t + | first: qvector< process_info_t >::iterator + | last: qvector< process_info_t >::iterator | | extract(self, *args) | extract(self) -> process_info_t @@ -40134,35 +45316,47 @@ class procinfo_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=process_info_t()) + | x: process_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: process_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> process_info_t + | it: qvector< process_info_t >::iterator + | x: process_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> process_info_t + | x: process_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: process_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< process_info_t > & | | truncate(self, *args) | truncate(self) @@ -40242,13 +45436,15 @@ class regval_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: regval_t const & | | __init__(self, *args) | __init__(self) -> regval_t - | __init__(self, r) -> regval_t + | r: regval_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: regval_t const & | | __repr__ = _swig_repr(self) | @@ -40257,7 +45453,7 @@ class regval_t(__builtin__.object) | bytes(self) -> bytevec_t const & | | clear(self, *args) - | clear(self) + | Clear register value. | | get_data(self, *args) | get_data(self) @@ -40268,20 +45464,29 @@ class regval_t(__builtin__.object) | | set_bytes(self, *args) | set_bytes(self, data, size) + | data: uchar const * + | size: size_t + | + | | set_bytes(self, v) - | set_bytes(self) -> bytevec_t & + | v: bytevec_t const & | | set_float(self, *args) | set_float(self, x) + | x: ushort const * | | set_int(self, *args) | set_int(self, x) + | x: uint64 | | set_unavailable(self, *args) | set_unavailable(self) | | swap(self, *args) + | Set this = r and r = this. + | | swap(self, r) + | @param r (C++: regval_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40347,43 +45552,66 @@ class scattered_segm_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -40408,6 +45636,8 @@ Help on function set_debug_event_code in module ida_idd: set_debug_event_code(*args) set_debug_event_code(ev, id) + @param ev (C++: debug_event_t *) + @param id (C++: event_id_t) Help on class thread_name_t in module ida_idd: @@ -40554,8 +45784,6 @@ 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 @@ -40578,299 +45806,729 @@ class IDB_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDB_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | + | adding_segm(self, *args) + | A segment is being created. + | + | adding_segm(self, s) + | @param s (C++: segment_t *) + | | allsegs_moved(self, *args) + | Program rebasing is complete. This event is generated after series of + | segm_moved events + | | allsegs_moved(self, info) + | @param info (C++: segm_move_infos_t *) | | auto_empty(self, *args) - | auto_empty(self) + | Info: all analysis queues are empty. This callback is called once when + | the initial analysis is finished. If the queue is not empty upon the + | return from this callback, it will be called later again. | | auto_empty_finally(self, *args) - | auto_empty_finally(self) + | Info: all analysis queues are empty definitively. This callback is + | called only once. | | bookmark_changed(self, *args) + | Boomarked position changed. + | | bookmark_changed(self, index, pos, desc) + | @param index (C++: uint32) + | @param pos (C++: const lochist_entry_t *) + | @param desc: if desc==NULL, then the bookmark was deleted. (C++: + | const char *) | | byte_patched(self, *args) + | A byte has been patched. + | | byte_patched(self, ea, old_value) + | @param ea (C++: ea_t) + | @param old_value (C++: uint32) | | callee_addr_changed(self, *args) + | Callee address has been updated by the user. + | | callee_addr_changed(self, ea, callee) + | @param ea (C++: ea_t) + | @param callee (C++: ea_t) | | changing_cmt(self, *args) + | An item comment is to be changed. + | | changing_cmt(self, ea, repeatable_cmt, newcmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) + | @param newcmt (C++: const char *) | | changing_enum_bf(self, *args) + | An enum type 'bitfield' attribute is to be changed. + | | changing_enum_bf(self, id, new_bf) + | @param id (C++: enum_t) + | @param new_bf (C++: bool) | | changing_enum_cmt(self, *args) + | An enum or member type comment is to be changed. + | | changing_enum_cmt(self, id, repeatable, newcmt) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_op_ti(self, *args) + | An operand typestring (c/c++ prototype) is to be changed. + | | changing_op_ti(self, ea, n, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | changing_op_type(self, *args) + | An operand type (offset, hex, etc...) is to be changed. + | | changing_op_type(self, ea, n, opinfo) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param opinfo: additional operand info (C++: const opinfo_t *) | | changing_range_cmt(self, *args) + | Range comment is to be changed. + | | changing_range_cmt(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | changing_segm_class(self, *args) + | Segment class is being changed. + | | changing_segm_class(self, s) + | @param s (C++: segment_t *) | | changing_segm_end(self, *args) + | Segment end address is to be changed. + | | changing_segm_end(self, s, new_end, segmod_flags) + | @param s (C++: segment_t *) + | @param new_end (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_segm_name(self, *args) + | Segment name is being changed. + | | changing_segm_name(self, s, oldname) + | @param s (C++: segment_t *) + | @param oldname (C++: const char *) | | changing_segm_start(self, *args) + | Segment start address is to be changed. + | | changing_segm_start(self, s, new_start, segmod_flags) + | @param s (C++: segment_t *) + | @param new_start (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_struc_align(self, *args) + | A structure type is being changed (the struct alignment). + | | changing_struc_align(self, sptr) + | @param sptr (C++: struc_t *) | | changing_struc_cmt(self, *args) + | A structure type comment is to be changed. + | | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | @param struc_id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_struc_member(self, *args) + | A structure member is to be changed. + | | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param flag (C++: flags_t) + | @param ti (C++: const opinfo_t *) + | @param nbytes (C++: asize_t) | | changing_ti(self, *args) + | An item typestring (c/c++ prototype) is to be changed. + | | changing_ti(self, ea, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | closebase(self, *args) - | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) + | An item comment has been changed. + | | cmt_changed(self, ea, repeatable_cmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) | | compiler_changed(self, *args) - | compiler_changed(self) + | The kernel has changed the compiler information. (\inf{cc} structure; + | 'get_abi_name' ) | | deleting_enum(self, *args) + | An enum type is to be deleted. + | | deleting_enum(self, id) + | @param id (C++: enum_t) | | deleting_enum_member(self, *args) + | An enum member is to be deleted. + | | deleting_enum_member(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | deleting_func(self, *args) + | The kernel is about to delete a function. + | | deleting_func(self, pfn) + | @param pfn (C++: func_t *) | | deleting_func_tail(self, *args) + | A function tail chunk is to be removed. + | | deleting_func_tail(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: const range_t *) | | deleting_segm(self, *args) + | A segment is to be deleted. + | | deleting_segm(self, start_ea) + | @param start_ea (C++: ea_t) | | deleting_struc(self, *args) + | A structure type is to be deleted. + | | deleting_struc(self, sptr) + | @param sptr (C++: struc_t *) | | deleting_struc_member(self, *args) + | A structure member is to be deleted. + | | deleting_struc_member(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | deleting_tryblks(self, *args) + | About to delete tryblk information in given range + | | deleting_tryblks(self, range) + | @param range (C++: const range_t *) | | destroyed_items(self, *args) + | Instructions/data have been destroyed in [ea1,ea2). + | | destroyed_items(self, ea1, ea2, will_disable_range) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) + | @param will_disable_range (C++: bool) | | determined_main(self, *args) + | The main() function has been determined. + | | determined_main(self, main) + | @param main: address of the main() function (C++: ea_t) + | + | dirtree_link(self, *args) + | Dirtree: an item has been linked/unlinked. + | + | dirtree_link(self, dt, path, link) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param link (C++: bool) + | + | dirtree_mkdir(self, *args) + | Dirtree: a directory has been created. + | + | dirtree_mkdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_move(self, *args) + | Dirtree: a directory or item has been moved. + | + | dirtree_move(self, dt, _from, to) + | @param dt (C++: dirtree_t *) + | @param _from (C++: const char *) + | @param to (C++: const char *) + | + | dirtree_rank(self, *args) + | Dirtree: a directory or item rank has been changed. + | + | dirtree_rank(self, dt, path, rank) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param rank (C++: size_t) + | + | dirtree_rmdir(self, *args) + | Dirtree: a directory has been deleted. + | + | dirtree_rmdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_rminode(self, *args) + | Dirtree: an inode became unavailable. + | + | dirtree_rminode(self, dt, inode) + | @param dt (C++: dirtree_t *) + | @param inode (C++: inode_t) | | dump_state(self, *args) | dump_state(self) -> qstring | | enum_bf_changed(self, *args) + | An enum type 'bitfield' attribute has been changed. + | | enum_bf_changed(self, id) + | @param id (C++: enum_t) | | enum_cmt_changed(self, *args) + | An enum or member type comment has been changed. + | | enum_cmt_changed(self, id, repeatable) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) | | enum_created(self, *args) + | An enum type has been created. + | | enum_created(self, id) + | @param id (C++: enum_t) | | enum_deleted(self, *args) + | An enum type has been deleted. + | | enum_deleted(self, id) + | @param id (C++: enum_t) | | enum_member_created(self, *args) + | An enum member has been created. + | | enum_member_created(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_member_deleted(self, *args) + | An enum member has been deleted. + | | enum_member_deleted(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_renamed(self, *args) + | An enum or member has been renamed. + | | enum_renamed(self, id) + | @param id (C++: tid_t) | | expanding_struc(self, *args) + | A structure type is to be expanded/shrunk. + | | expanding_struc(self, sptr, offset, delta) + | @param sptr (C++: struc_t *) + | @param offset (C++: ea_t) + | @param delta (C++: adiff_t) | | extlang_changed(self, *args) + | The list of extlangs or the default extlang was changed. + | | extlang_changed(self, kind, el, idx) + | @param kind: 0: extlang installed 1: extlang removed 2: default + | extlang changed (C++: int) + | @param el: pointer to the extlang affected (C++: extlang_t *) + | @param idx: extlang index (C++: int) | | extra_cmt_changed(self, *args) + | An extra comment has been changed. + | | extra_cmt_changed(self, ea, line_idx, cmt) + | @param ea (C++: ea_t) + | @param line_idx (C++: int) + | @param cmt (C++: const char *) | | flow_chart_created(self, *args) + | Gui has retrieved a function flow chart. Plugins may modify the flow + | chart in this callback. + | | flow_chart_created(self, fc) + | @param fc (C++: qflow_chart_t *) | | frame_deleted(self, *args) + | The kernel has deleted a function frame. + | | frame_deleted(self, pfn) + | @param pfn (C++: func_t *) | | func_added(self, *args) + | The kernel has added a function. + | | func_added(self, pfn) + | @param pfn (C++: func_t *) + | + | func_deleted(self, *args) + | A function has been deleted. + | + | func_deleted(self, func_ea) + | @param func_ea (C++: ea_t) | | func_noret_changed(self, *args) + | 'FUNC_NORET' bit has been changed. + | | func_noret_changed(self, pfn) + | @param pfn (C++: func_t *) | | func_tail_appended(self, *args) + | A function tail chunk has been appended. + | | func_tail_appended(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: func_t *) | | func_tail_deleted(self, *args) + | A function tail chunk has been removed. + | | func_tail_deleted(self, pfn, tail_ea) + | @param pfn (C++: func_t *) + | @param tail_ea (C++: ea_t) | | func_updated(self, *args) + | The kernel has updated a function. + | | func_updated(self, pfn) + | @param pfn (C++: func_t *) | | hook(self, *args) | hook(self) -> bool | | idasgn_loaded(self, *args) + | FLIRT signature has been loaded for normal processing (not for + | recognition of startup sequences). + | | idasgn_loaded(self, short_sig_name) + | @param short_sig_name (C++: const char *) | | item_color_changed(self, *args) + | An item color has been changed. + | | item_color_changed(self, ea, color) + | @param ea (C++: ea_t) + | @param color: if color==DEFCOLOR, the the color is deleted. (C++: + | bgcolor_t) | | kernel_config_loaded(self, *args) - | kernel_config_loaded(self) + | This event is issued when ida.cfg is parsed. + | + | kernel_config_loaded(self, pass_number) + | @param pass_number (C++: int) | | loader_finished(self, *args) + | External file loader finished its work. Use this event to augment the + | existing loader functionality. + | | loader_finished(self, li, neflags, filetypename) + | @param li (C++: linput_t *) + | @param neflags: Load file flags (C++: uint16) + | @param filetypename (C++: const char *) | | local_types_changed(self, *args) - | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) + | An instruction is being created. + | | make_code(self, insn) + | @param insn (C++: const insn_t*) | | make_data(self, *args) + | A data item is being created. + | | make_data(self, ea, flags, tid, len) + | @param ea (C++: ea_t) + | @param flags (C++: flags_t) + | @param tid (C++: tid_t) + | @param len (C++: asize_t) | | op_ti_changed(self, *args) + | An operand typestring (c/c++ prototype) has been changed. + | | op_ti_changed(self, ea, n, type, fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | op_type_changed(self, *args) + | An operand type (offset, hex, etc...) has been set or deleted. + | | op_type_changed(self, ea, n) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) | | range_cmt_changed(self, *args) + | Range comment has been changed. + | | range_cmt_changed(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | renamed(self, *args) + | The kernel has renamed a byte. See also the \idpcode{rename} event + | | renamed(self, ea, new_name, local_name) + | @param ea (C++: ea_t) + | @param new_name (C++: const char *) + | @param local_name (C++: bool) | | renaming_enum(self, *args) + | An enum or enum member is to be renamed. + | | renaming_enum(self, id, is_enum, newname) + | @param id (C++: tid_t) + | @param is_enum (C++: bool) + | @param newname (C++: const char *) | | renaming_struc(self, *args) + | A structure type is to be renamed. + | | renaming_struc(self, id, oldname, newname) + | @param id (C++: tid_t) + | @param oldname (C++: const char *) + | @param newname (C++: const char *) | | renaming_struc_member(self, *args) + | A structure member is to be renamed. + | | renaming_struc_member(self, sptr, mptr, newname) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param newname (C++: const char *) | | savebase(self, *args) - | savebase(self) + | The database is being saved. | | segm_added(self, *args) + | A new segment has been created. + | | segm_added(self, s) + | @param s: See also adding_segm (C++: segment_t *) | | segm_attrs_updated(self, *args) + | Segment attributes has been changed. + | | segm_attrs_updated(self, s) + | @param s: This event is generated for secondary segment attributes + | (examples: color, permissions, etc) (C++: segment_t *) | | segm_class_changed(self, *args) + | Segment class has been changed. + | | segm_class_changed(self, s, sclass) + | @param s (C++: segment_t *) + | @param sclass (C++: const char *) | | segm_deleted(self, *args) + | A segment has been deleted. + | | segm_deleted(self, start_ea, end_ea) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) | | segm_end_changed(self, *args) + | Segment end address has been changed. + | | segm_end_changed(self, s, oldend) + | @param s (C++: segment_t *) + | @param oldend (C++: ea_t) | | segm_moved(self, *args) + | Segment has been moved. + | | segm_moved(self, _from, to, size, changed_netmap) + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param size (C++: asize_t) + | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) | | segm_name_changed(self, *args) + | Segment name has been changed. + | | segm_name_changed(self, s, name) + | @param s (C++: segment_t *) + | @param name (C++: const char *) | | segm_start_changed(self, *args) + | Segment start address has been changed. + | | segm_start_changed(self, s, oldstart) + | @param s (C++: segment_t *) + | @param oldstart (C++: ea_t) | | set_func_end(self, *args) + | Function chunk end address will be changed. + | | set_func_end(self, pfn, new_end) + | @param pfn (C++: func_t *) + | @param new_end (C++: ea_t) | | set_func_start(self, *args) + | Function chunk start address will be changed. + | | set_func_start(self, pfn, new_start) + | @param pfn (C++: func_t *) + | @param new_start (C++: ea_t) | | sgr_changed(self, *args) + | The kernel has changed a segment register value. + | | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) + | @param value (C++: sel_t) + | @param old_value (C++: sel_t) + | @param tag: Segment register range tags (C++: uchar) | | sgr_deleted(self, *args) + | The kernel has deleted a segment register value. + | | sgr_deleted(self, start_ea, end_ea, regnum) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) | | stkpnts_changed(self, *args) + | Stack change points have been modified. + | | stkpnts_changed(self, pfn) + | @param pfn (C++: func_t *) | | struc_align_changed(self, *args) + | A structure type has been changed (the struct alignment). + | | struc_align_changed(self, sptr) + | @param sptr (C++: struc_t *) | | struc_cmt_changed(self, *args) + | A structure type comment has been changed. + | | struc_cmt_changed(self, struc_id, repeatable_cmt) + | @param struc_id (C++: tid_t) + | @param repeatable_cmt (C++: bool) | | struc_created(self, *args) + | A new structure type has been created. + | | struc_created(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_deleted(self, *args) + | A structure type has been deleted. + | | struc_deleted(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_expanded(self, *args) + | A structure type has been expanded/shrank. + | | struc_expanded(self, sptr) + | @param sptr (C++: struc_t *) | | struc_member_changed(self, *args) + | A structure member has been changed. + | | struc_member_changed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_created(self, *args) + | A structure member has been created. + | | struc_member_created(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_deleted(self, *args) + | A structure member has been deleted. + | | struc_member_deleted(self, sptr, member_id, offset) + | @param sptr (C++: struc_t *) + | @param member_id (C++: tid_t) + | @param offset (C++: ea_t) | | struc_member_renamed(self, *args) + | A structure member has been renamed. + | | struc_member_renamed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_renamed(self, *args) + | A structure type has been renamed. + | | struc_renamed(self, sptr) + | @param sptr (C++: struc_t *) | | tail_owner_changed(self, *args) + | A tail chunk owner has been changed. + | | tail_owner_changed(self, tail, owner_func, old_owner) + | @param tail (C++: func_t *) + | @param owner_func (C++: ea_t) + | @param old_owner (C++: ea_t) | | thunk_func_created(self, *args) + | A thunk bit has been set for a function. + | | thunk_func_created(self, pfn) + | @param pfn (C++: func_t *) | | ti_changed(self, *args) + | An item typestring (c/c++ prototype) has been changed. + | | ti_changed(self, ea, type, fnames) + | @param ea (C++: ea_t) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | tryblks_updated(self, *args) + | Updated tryblk information + | | tryblks_updated(self, tbv) + | @param tbv (C++: const tryblks_t *) | | unhook(self, *args) | unhook(self) -> bool | | updating_tryblks(self, *args) + | About to update tryblk information + | | updating_tryblks(self, tbv) + | @param tbv (C++: const tryblks_t *) | | upgraded(self, *args) + | The database has been upgraded and the receiver can upgrade its info + | as well + | | upgraded(self, _from) + | @param _from: - old IDB version (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40901,6 +46559,7 @@ class IDP_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDP_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -40908,473 +46567,1244 @@ class IDP_Hooks(__builtin__.object) | dump_state(self) -> qstring | | ev_add_cref(self, *args) + | A code reference is being created. + | | ev_add_cref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: cref_t) + | @retval: <0 - cancel cref creation + | @retval: 0 - not implemented or continue | | ev_add_dref(self, *args) + | A data reference is being created. + | | ev_add_dref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: dref_t) + | @retval: <0 - cancel dref creation + | @retval: 0 - not implemented or continue | | ev_adjust_argloc(self, *args) + | Adjust argloc according to its type/size and platform endianess + | | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | @param argloc: , inout (C++: argloc_t *) + | optional_type: tinfo_t const * + | @param size: 'size' makes no sense if type != NULL (type->get_size() + | should be used instead) (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_adjust_libfunc_ea(self, *args) + | 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.'ea' initially contains the ea_t of + | the start of the pattern match + | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | @param sig (C++: const idasgn_t *) + | @param libfun (C++: const libfunc_t *) + | @param ea (C++: ea_t *) + | @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) + | 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) + | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | @param ri (C++: refinfo_t *) + | @param ea: instruction address (C++: ea_t) + | @param n: operand number (C++: int) + | @param fd (C++: const fixup_data_t *) + | @retval: <0 - do not create an offset + | @retval: 0 - not implemented or refinfo adjusted | | ev_ana_insn(self, *args) + | 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. + | | 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. + | @param out (C++: insn_t *) + | @retval: 0 - if instruction can't be decoded. | | ev_analyze_prolog(self, *args) + | Analyzes function prolog, epilog, and updates purge, and function + | attributes + | | ev_analyze_prolog(self, ea) -> int + | @param ea: start of function (C++: ea_t) + | @retval: 1 - ok + | @retval: 0 - not implemented + | + | ev_arch_changed(self, *args) + | The loader is done parsing arch-related information, which the + | processor module might want to use to finish its initialization. | | ev_arg_addrs_ready(self, *args) + | Argument address info is ready. + | | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | @param caller (C++: ea_t) + | @param n: number of formal arguments (C++: int) + | @param tif: call prototype (C++: tinfo_t *) + | @param addrs: argument intilization addresses (C++: ea_t *) + | @retval: <0 - do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) + | After setting a new assembler + | + | ev_asm_installed(self, asmnum) -> int + | @param asmnum: See also ev_newasm (C++: int) | | ev_assemble(self, *args) + | Assemble an instruction. (display a warning if an error is found). + | | 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 + | @param ea: linear address of instruction (C++: ea_t) + | @param cs: cs of instruction (C++: ea_t) + | @param ip: ip of instruction (C++: ea_t) + | @param use32: is 32bit segment? (C++: bool) + | @param line: line to assemble (C++: const char *) | | ev_auto_queue_empty(self, *args) - | ev_auto_queue_empty(self, type) + | One analysis queue is empty. + | + | ev_auto_queue_empty(self, type) -> int + | @param type (C++: atype_t) + | @retval: void - see also idb_event::auto_empty_finally | | ev_calc_arglocs(self, *args) + | Calculate function argument locations. This callback should fill + | retloc, all arglocs, and stkargs. This callback is never called for + | 'CM_CC_SPECIAL' functions. + | | ev_calc_arglocs(self, fti) -> int + | @param fti: points to the func type info (C++: func_type_data_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_calc_cdecl_purged_bytes(self, *args) + | Calculate number of purged bytes after call. + | | ev_calc_cdecl_purged_bytes(self, ea) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) + | Calculate list of addresses the instruction in 'insn' may pass control + | to. This callback is required for source level debugging. + | | ev_calc_next_eas(self, res, insn, over) -> int + | @param res: , out: array for the results. (C++: eavec_t *) + | @param insn: the instruction (C++: const insn_t*) + | @param over: calculate for step over (ignore call targets) (C++: + | bool) + | @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) + | Calculate number of purged bytes by the given function type. + | | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | @param p_purged_bytes: ptr to output (C++: int *) + | @param fti: func type details (C++: const func_type_data_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_calc_retloc(self, *args) + | Calculate return value location. + | | ev_calc_retloc(self, retloc, rettype, cc) -> int + | @param retloc (C++: argloc_t *) + | @param rettype (C++: const tinfo_t *) + | @param cc (C++: cm_t) + | @retval: 0 - not implemented + | @retval: 1 - ok, + | @retval: -1 - error | | ev_calc_spdelta(self, *args) + | Calculate amount of change to sp for the given insn. This event is + | required to decompile code snippets. + | | ev_calc_spdelta(self, spdelta, insn) -> int + | @param spdelta (C++: sval_t *) + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_calc_step_over(self, *args) + | 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' . + | | ev_calc_step_over(self, target, ip) -> int + | @param target: pointer to the answer (C++: ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_calc_switch_cases(self, *args) + | Calculate case values and targets for a custom jump table. + | | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | @param casevec: vector of case values (may be NULL) (C++: casevec_t + | *) + | @param targets: corresponding target addresses (my be NULL) (C++: + | eavec_t *) + | @param insn_ea: address of the 'indirect jump' instruction (C++: + | ea_t) + | @param si: switch information (C++: switch_info_t *) + | @retval: 1 - ok + | @retval: <=0 - failed | | ev_calc_varglocs(self, *args) + | Calculate locations of the arguments that correspond to '...'. + | | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | @param ftd: , inout: info about all arguments (including varargs) + | (C++: func_type_data_t *) + | @param aux_regs: buffer for hidden register arguments, may be NULL + | (C++: regobjs_t *) + | @param aux_stkargs: buffer for hidden stack arguments, may be NULL + | (C++: relobj_t *) + | @param nfixed: number of fixed arguments (C++: int) + | @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) - | ev_calcrel(self) -> int + | Reserved. | | ev_can_have_type(self, *args) + | 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) + | | ev_can_have_type(self, op) -> int + | @param op (C++: const op_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_clean_tbit(self, *args) + | Clear the TF bit after an insn like pushf stored it in memory. + | | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | @param ea: instruction address (C++: ea_t) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 1 - ok + | @retval: 0 - failed | | ev_cmp_operands(self, *args) + | Compare instruction operands + | | ev_cmp_operands(self, op1, op2) -> int + | @param op1 (C++: const op_t*) + | @param op2 (C++: const op_t*) + | @retval: 1 - equal + | @retval: -1 - not equal + | @retval: 0 - not implemented | | ev_coagulate(self, *args) + | 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. + | | ev_coagulate(self, start_ea) -> int + | @param start_ea (C++: ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, *args) + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. + | for thumb mode refs, we clear the last bit) + | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param may_define (C++: bool) + | @param code_ea (C++: ea_t *) + | @retval: <0 - cancel dref analysis + | @retval: 0 - not implemented or continue | | ev_create_flat_group(self, *args) + | Create special segment representing the flat group. + | | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | @param image_base (C++: ea_t) + | @param bitness (C++: int) + | @param dataseg_sel: return value is ignored (C++: sel_t) | | ev_create_func_frame(self, *args) + | Create a function frame for a newly created function Set up frame + | size, its attributes etc + | | ev_create_func_frame(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_create_switch_xrefs(self, *args) + | Create xrefs for a custom jump table. + | | ev_create_switch_xrefs(self, jumpea, si) -> int + | @param jumpea: address of the jump insn (C++: ea_t) + | @param si: switch information (C++: const switch_info_t *) + | @return: must return 1 Must be implemented if module uses custom jump + | tables, | | ev_creating_segm(self, *args) + | A new segment is about to be created. + | | ev_creating_segm(self, seg) -> int + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: <0 - segment should not be created | | ev_decorate_name(self, *args) + | Decorate/undecorate a C symbol name. + | | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | @param name: name of symbol (C++: const char *) + | @param mangle: true-mangle, false-unmangle (C++: bool) + | @param cc: calling convention (C++: cm_t) + | optional_type: tinfo_t const * + | @retval: 1 - if success + | @retval: 0 - not implemented or failed | | ev_del_cref(self, *args) + | A code reference is being deleted. + | | ev_del_cref(self, _from, to, expand) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param expand (C++: bool) + | @retval: <0 - cancel cref deletion + | @retval: 0 - not implemented or continue | | ev_del_dref(self, *args) + | A data reference is being deleted. + | | ev_del_dref(self, _from, to) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @retval: <0 - cancel dref deletion + | @retval: 0 - not implemented or continue | | ev_delay_slot_insn(self, *args) + | Get delay slot instructionInput EA may point to the instruction with a + | delay slot or to the delay slot instruction itself. + | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | @param ea: 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) (C++: ea_t *) + | @param bexec: execute slot if jumping, initially set to 'true' (C++: + | bool *) + | @param fexec: execute slot if not jumping, initally set to 'true' + | (C++: bool *) + | @retval: 1 - positive answer + | @retval: <=0 - ordinary insn | | ev_demangle_name(self, *args) + | Demangle a C++ (or another language) name into a user-readable string. + | This event is called by 'demangle_name()' if you call + | 'demangle_name()' from the handler, protect against recursion! + | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | @param name: mangled name (C++: const char *) + | @param disable_mask: flags to inhibit parts of output or compiler + | info/other (see MNG_) (C++: uint32) + | @param demreq: operation to perform (C++: demreq_type_t) + | @retval: 1 - if success + | @retval: 0 - not implemented | | 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. + | 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_emu_insn(self, insn) -> bool + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: -1 - the kernel will delete the instruction | | ev_endbinary(self, *args) + | IDA has loaded a binary file. + | | ev_endbinary(self, ok) -> int + | @param ok: file loaded successfully? (C++: bool) | | ev_ending_undo(self, *args) + | Ended undoing/redoing an action + | | ev_ending_undo(self, action_name, is_undo) -> int + | @param action_name: action that we finished undoing/redoing. is not + | NULL. (C++: const char *) + | @param is_undo: true if performing undo, false if performing redo + | (C++: bool) | | ev_equal_reglocs(self, *args) + | Are 2 register arglocs the same?. We need this callback for the pc + | module. + | | ev_equal_reglocs(self, a1, a2) -> int + | @param a1 (C++: argloc_t *) + | @param a2 (C++: argloc_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented | | ev_extract_address(self, *args) + | Extract address from a string. + | | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | @param out_ea: , out (C++: ea_t *) + | @param screen_ea (C++: ea_t) + | @param string (C++: const char *) + | @param position (C++: size_t) + | @retval: 1 - ok + | @retval: 0 - kernel should use the standard algorithm + | @retval: -1 - error | | ev_find_op_value(self, *args) + | Find operand value via a register tracker. The returned value in 'out' + | is valid before executing the instruction. + | | ev_find_op_value(self, pinsn, opn) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param opn: operand index (C++: int) + | @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) + | Find register value via a register tracker. The returned value in + | 'out' is valid before executing the instruction. + | | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param reg: register index (C++: int) + | @retval: 1 - if implemented, and value was found + | @retval: 0 - not implemented, -1 decoding failed, or no value found | | ev_func_bounds(self, *args) - | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) + | 'find_func_bounds()' finished its work. The module may fine tune the + | function bounds + | + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | @param possible_return_code: , in/out (C++: int *) + | @param pfn (C++: func_t *) + | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) + | @retval: void - | | ev_gen_asm_or_lst(self, *args) - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) + | Callback: generating asm or lst file. The kernel calls this callback + | twice, at the beginning and at the end of listing generation. The + | processor module can intercept this event and adjust its output + | + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | @param starting: beginning listing generation (C++: bool) + | @param fp: output file (C++: FILE *) + | @param is_asm: true:assembler, false:listing (C++: bool) + | @param flags: flags passed to gen_file() (C++: int) + | @param outline: 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 (C++: html_line_cb_t + | **) + | @retval: void - | | ev_gen_map_file(self, *args) + | Generate map file. If not implemented the kernel itself will create + | the map file. + | | ev_gen_map_file(self, nlines, fp) -> int + | @param nlines: number of lines in map file (-1 means write error) + | (C++: int *) + | @param fp: output file (C++: FILE *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - write error | | ev_gen_regvar_def(self, *args) + | Generate register variable definition line. + | | ev_gen_regvar_def(self, outctx, v) -> int + | @param outctx (C++: outctx_t *) + | @param v (C++: regvar_t *) + | @retval: >0 - ok, generated the definition text + | @retval: 0 - not implemented | | ev_gen_src_file_lnnum(self, *args) + | Callback: generate analog of: + | + | < #line "file.c" 123 + | < + | + | directive. + | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | @param outctx: output context (C++: outctx_t *) + | @param file: source file (may be NULL) (C++: const char *) + | @param lnnum: line number (C++: size_t) + | @retval: 1 - directive has been generated + | @retval: 0 - not implemented | | ev_gen_stkvar_def(self, *args) + | Generate stack variable definition line Default line is varname = type + | ptr value, where 'type' is one of byte,word,dword,qword,tbyte + | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | @param outctx (C++: outctx_t *) + | @param mptr (C++: const member_t *) + | @param v (C++: sval_t) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_get_abi_info(self, *args) + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and + | underscore + | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | @param abi_names: - all possible ABis each in form abiname- + | opt1-opt2-... (C++: qstrvec_t *) + | @param abi_opts: - array of all possible options in form + | "opt:description" or opt:hint-line#description (C++: + | qstrvec_t *) + | @param comp: - compiler ID (C++: comp_t) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_get_autocmt(self, *args) + | Callback: get dynamic auto comment. Will be called if the autocomments + | are enabled and the comment retrieved from ida.int starts with '$!'. + | 'insn' contains valid info. + | | ev_get_autocmt(self, insn) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @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) + | Get item background color. Plugins can hook this callback to color + | disassembly lines dynamically + | | ev_get_bg_color(self, ea) -> int or None + | @param color: , out (C++: bgcolor_t *) + | @param ea (C++: ea_t) + | @retval: 0 - not implemented + | @retval: 1 - color set | | ev_get_cc_regs(self, *args) + | Get register allocation convention for given calling convention + | | ev_get_cc_regs(self, regs, cc) -> int + | @param regs: , out (C++: callregs_t *) + | @param cc (C++: cm_t) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_get_code16_mode(self, *args) + | Get ISA 16-bit mode + | | ev_get_code16_mode(self, ea) -> int + | @param ea: address to get the ISA mode (C++: ea_t) + | @retval: 1 - 16-bit mode + | @retval: 0 - not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) + | Get the number of the operand to be displayed in the debugger + | reference view (text mode). + | | ev_get_dbr_opnum(self, opnum, insn) -> int + | @param opnum: operand number (out, -1 means no such operand) (C++: + | int *) + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_default_enum_size(self, *args) - | ev_get_default_enum_size(self, cm) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is + | used instead | | ev_get_frame_retsize(self, *args) + | Get size of function return address in bytes If this event is not + | implemented, the kernel will assume8 bytes for 64-bit function4 bytes + | for 32-bit function2 bytes otherwise + | | ev_get_frame_retsize(self, frsize, pfn) -> int + | @param frsize: frame size (out) (C++: int *) + | @param pfn: , can't be NULL (C++: const func_t *) | | ev_get_macro_insn_head(self, *args) + | Calculate the start of a macro instruction. This notification is + | called if IP points to the middle of an instruction + | | ev_get_macro_insn_head(self, head, ip) -> int + | @param head: , out: answer, BADADDR means normal instruction (C++: + | ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_operand_string(self, *args) + | Request text string for operand (cli, java, ...). + | | ev_get_operand_string(self, insn, opnum) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @param opnum: operand number, -1 means any string operand (C++: int) + | @retval: 0 - no string (or empty string) + | @retval: >0 - original string length without terminating zero + | + | ev_get_procmod(self, *args) + | 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) + | Get info about the registers that are used/changed by an instruction. + | + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | @param accvec: out: info about accessed registers (C++: + | reg_accesses_t*) + | @param insn: instruction in question (C++: const insn_t *) + | @param flags: reserved, must be 0 (C++: int) + | @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) + | 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 + | \ph{reg_names} and they all have the same size + | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | @param main_regname: , out (C++: const char **) + | @param bitrange: , out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | (C++: bitrange_t *) + | @param regname (C++: const char *) + | @retval: 1 - ok + | @retval: -1 - failed (not found) + | @retval: 0 - unimplemented | | ev_get_reg_name(self, *args) + | Generate text representation of a register. Most processor modules do + | not need to implement this callback. It is useful only if + | \ph{reg_names}[reg] does not provide the correct register name. + | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | @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 not -1 then this function will return the register + | pair (C++: int) + | @retval: -1 - if error + | @retval: strlen(buf) - if success | | ev_get_simd_types(self, *args) + | Get SIMD-related types according to given attributes ant/or argument + | location + | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | @param out (C++: simd_info_vec_t *) + | @param simd_attrs: , may be NULL (C++: const simd_info_t *) + | @param argloc: , may be NULL (C++: const argloc_t *) + | @param create_tifs: return valid tinfo_t objects, create if neccessary + | (C++: bool) + | @retval: number - of found types + | @retval: -1 - error If name==NULL, initialize all SIMD types | | ev_get_stkarg_offset(self, *args) - | ev_get_stkarg_offset(self) -> int + | Get offset from SP to the first stack argument. For example: pc: 0, + | hppa: -0x34, ppc: 0x38 | | ev_get_stkvar_scale_factor(self, *args) - | 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 + | 'PR_SCALE_STKVARS' should be set to use this callback | | ev_getreg(self, *args) + | IBM PC only internal request, should never be used for other purpose + | Get register value by internal index + | | ev_getreg(self, regval, regnum) -> int + | @param regval: , out (C++: uval_t *) + | @param regnum (C++: int) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - failed (undefined value or bad regnum) | | ev_init(self, *args) + | The IDP module is just loaded. + | | ev_init(self, idp_modname) -> int + | @param idp_modname: processor module name (C++: const char *) + | @retval: <0 - on failure | | ev_insn_reads_tbit(self, *args) + | Check if insn will read the TF bit. + | | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @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) + | Is the instruction created only for alignment purposes?. Do not + | directly call this function, use 'is_align_insn()' + | | ev_is_align_insn(self, ea) -> int + | @param ea: - instruction address (C++: ea_t) + | @retval: number - of bytes in the instruction | | ev_is_alloca_probe(self, *args) + | Does the function at 'ea' behave as __alloca_probe? + | | ev_is_alloca_probe(self, ea) -> int + | @param ea (C++: ea_t) + | @retval: 1 - yes + | @retval: 0 - no | | ev_is_basic_block_end(self, *args) + | Is the current instruction end of a basic block?. This function should + | be defined for processors with delayed jump slots. + | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param call_insn_stops_block (C++: 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 + | ev_is_call_insn(self, insn) -> int + | @param insn: instruction (C++: const insn_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_cond_insn(self, *args) + | Is conditional instruction? + | | ev_is_cond_insn(self, insn) -> int + | @param insn: instruction address (C++: const insn_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented or not instruction | | ev_is_far_jump(self, *args) + | is indirect far jump or call instruction? meaningful only if the + | processor has 'near' and 'far' reference types + | | ev_is_far_jump(self, icode) -> int + | @param icode (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - yes + | @retval: -1 - no | | ev_is_indirect_jump(self, *args) + | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot + | describe all jump types jumps, please define this callback. + | | ev_is_indirect_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - use CF_JUMP + | @retval: 1 - no + | @retval: 2 - yes | | ev_is_insn_table_jump(self, *args) + | Determine if instruction is a table jump or call. If 'CF_JUMP' bit + | cannot describe all kinds of table jumps, please define this callback. + | It will be called for insns with 'CF_JUMP' bit set. + | | ev_is_insn_table_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - yes + | @retval: <0 - no | | ev_is_jump_func(self, *args) + | Is the function a trivial "jump" function?. + | | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | @param pfn (C++: func_t *) + | @param jump_target (C++: ea_t *) + | @param func_pointer (C++: 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) - | 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_ret_insn(self, insn, strict) -> int + | @param insn: instruction (C++: const insn_t *) + | @param strict: 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog (C++: + | bool) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_sane_insn(self, *args) + | Is the instruction sane for the current file type?. + | | 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 + | @param insn: the instruction (C++: const insn_t*) + | @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. + | (C++: int) + | @retval: >=0 - ok + | @retval: <0 - no, the instruction isn't likely to appear in the + | program | | ev_is_sp_based(self, *args) + | 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. + | | ev_is_sp_based(self, mode, insn, op) -> int + | @param mode: out, combination of SP/FP operand flags (C++: int *) + | @param insn (C++: const insn_t *) + | @param op (C++: const op_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_is_switch(self, *args) + | Find 'switch' idiom. It will be called for instructions marked with + | 'CF_JUMP' . + | | ev_is_switch(self, si, insn) -> int + | @param si: , out (C++: switch_info_t *) + | @param insn: instruction possibly belonging to a switch (C++: const + | insn_t *) + | @retval: 1 - switch is found, 'si' is filled + | @retval: 0 - no switch found or not implemented | | ev_last_cb_before_loader(self, *args) | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) - | 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) + | 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. + | | ev_lower_func_type(self, argnums, fti) -> int + | @param argnums: , out - numbers of arguments to be converted to + | pointers in acsending order (C++: intvec_t *) + | @param fti: , inout func type details (special values -1/-2 for return + | value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) (C++: func_type_data_t *) + | @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) - | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. | | 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_be_func(self, insn, state) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param state: autoanalysis phase 0: creating functions 1: creating + | chunks (C++: int) + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) + | The kernel wants to display the segment registers in the messages + | window. + | | ev_may_show_sreg(self, current_ea) -> int + | @param current_ea (C++: 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) + | May the kernel move the segment? + | | ev_moving_segm(self, seg, to, flags) -> int + | @param seg: segment to move (C++: segment_t *) + | @param to: new segment start address (C++: ea_t) + | @param flags: combination of Move segment flags (C++: int) + | @retval: 0 - yes + | @retval: <0 - the kernel should stop | | ev_newasm(self, *args) + | Before setting a new assembler. + | | ev_newasm(self, asmnum) -> int + | @param asmnum: See also ev_asm_installed (C++: int) | | ev_newbinary(self, *args) + | IDA is about to load a binary file. + | | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | @param filename: binary file name (C++: char *) + | @param fileoff: offset in the file (C++: qoff64_t) + | @param basepara: base loading paragraph (C++: ea_t) + | @param binoff: loader offset (C++: ea_t) + | @param nbytes: number of bytes to load (C++: uint64) | | ev_newfile(self, *args) + | A new file has been loaded. + | | ev_newfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_newprc(self, *args) + | Before changing processor type. + | | ev_newprc(self, pnum, keep_cfg) -> int + | @param pnum: processor number in the array of processor names (C++: + | int) + | @param keep_cfg: true: do not modify kernel configuration (C++: bool) + | @retval: 1 - ok + | @retval: <0 - prohibit | | ev_next_exec_insn(self, *args) + | 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. + | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | @param target: , out: pointer to the answer (C++: ea_t *) + | @param ea: instruction address (C++: ea_t) + | @param tid: current therad id (C++: int) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_oldfile(self, *args) + | An old file has been loaded. + | | ev_oldfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_out_assumes(self, *args) + | Function to produce assume directives when segment register value + | changes. + | | ev_out_assumes(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_data(self, *args) + | Generate text representation of data items This function may change + | the database and create cross-references if analyze_only is set + | | ev_out_data(self, outctx, analyze_only) -> int + | @param outctx (C++: outctx_t *) + | @param analyze_only (C++: bool) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_footer(self, *args) - | ev_out_footer(self, outctx) + | Function to produce end of disassembled text + | + | ev_out_footer(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_header(self, *args) - | ev_out_header(self, outctx) + | Function to produce start of disassembled text + | + | ev_out_header(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_insn(self, *args) + | 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. + | | ev_out_insn(self, outctx) -> bool - | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_label(self, *args) + | The kernel is going to generate an instruction label line or a + | function header. + | | ev_out_label(self, outctx, colored_name) -> int + | @param outctx (C++: outctx_t *) + | @param colored_name (C++: const char *) + | @retval: <0 - if the kernel should not generate the label + | @retval: 0 - not implemented or continue | | ev_out_mnem(self, *args) + | Generate instruction mnemonics. This callback should append the + | colored mnemonics to ctx.outbuf Optional notification, if absent, + | out_mnem will be called. + | | ev_out_mnem(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - if appended the mnemonics + | @retval: 0 - not implemented | | ev_out_operand(self, *args) + | 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. + | | 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) + | @param outctx (C++: outctx_t *) + | @param op (C++: const op_t *) + | @retval: 1 - ok + | @retval: -1 - operand is hidden | | ev_out_segend(self, *args) + | Function to produce end of segment + | | ev_out_segend(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_segstart(self, *args) + | Function to produce start of segment + | | ev_out_segstart(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_special_item(self, *args) + | Generate text representation of an item in a special segment i.e. + | absolute symbols, externs, communal definitions etc + | | ev_out_special_item(self, outctx, segtype) -> int + | @param outctx (C++: outctx_t *) + | @param segtype (C++: uchar) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - overflow | | ev_realcvt(self, *args) + | Floating point -> IEEE conversion + | | ev_realcvt(self, m, e, swt) -> int + | @param m: pointer to data (C++: void *) + | @param e: internal IEEE format data (C++: uint16 *) + | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) + | @retval: 0 - not implemented + | @retval: 1 - ok | | 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_rename(self, ea, new_name) -> int + | @param ea (C++: ea_t) + | @param new_name (C++: 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 + | \idpcode{renamed} the return value is ignored when kernel + | is going to delete name | | ev_replaying_undo(self, *args) + | Replaying an undo/redo buffer + | | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | @param action_name: action that we perform undo/redo for. may be NULL + | for intermediary buffers. (C++: const char *) + | @param vec (C++: const undo_records_t *) + | @param is_undo: true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | (C++: bool) | | ev_set_code16_mode(self, *args) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, + | MIPS16 Set ISA 16-bit mode + | | ev_set_code16_mode(self, ea, code16) -> int + | @param ea: address to set new ISA mode (C++: ea_t) + | @param code16: true for 16-bit mode, false for 32-bit mode (C++: + | bool) | | ev_set_idp_options(self, *args) - | ev_set_idp_options(self, keyword, value_type, value, errbuf, idb_loaded) -> int + | Set IDP-specific configuration option Also see set_options_t in + | 'config.hpp' + | + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | @param keyword (C++: const char *) + | @param value_type (C++: int) + | @param value (C++: const void *) + | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been + | generated (C++: bool) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - error (and message in errbuf) | | ev_set_proc_options(self, *args) + | 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(). + | | ev_set_proc_options(self, options, confidence) -> int + | @param options (C++: const char *) + | @param confidence: 0: loader's suggestion 1: user's decision (C++: + | int) + | @retval: <0 - if bad option string | | ev_setup_til(self, *args) - | ev_setup_til(self) + | 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. | | ev_shadow_args_size(self, *args) + | Get size of shadow args in bytes. + | | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | @param shadow_args_size (C++: int *) + | @param pfn: (may be NULL) (C++: func_t *) + | @retval: 1 - if filled *shadow_args_size + | @retval: 0 - not implemented | | ev_str2reg(self, *args) + | Convert a register name to a register number. The register number is + | the register index in the \ph{reg_names} array Most processor modules + | do not need to implement this callback It is useful only if + | \ph{reg_names}[reg] does not provide the correct register names + | | ev_str2reg(self, regname) -> int + | @param regname (C++: const char *) + | @retval: register - number + 1 + | @retval: 0 - not implemented or could not be decoded | | ev_term(self, *args) - | ev_term(self) -> int + | The IDP module is being unloaded. | | ev_treat_hindering_item(self, *args) + | An item hinders creation of another item. + | | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | @param hindering_item_ea (C++: ea_t) + | @param new_item_flags: (0 for code) (C++: flags_t) + | @param new_item_ea (C++: ea_t) + | @param new_item_length (C++: asize_t) + | @retval: 0 - no reaction + | @retval: !=0 - the kernel may delete the hindering item | | ev_undefine(self, *args) + | An item in the database (insn or data) is being deleted. + | | 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 + | @param ea (C++: ea_t) + | @retval: 1 - do not delete srranges at the item end + | @retval: 0 - srranges can be deleted | | ev_use_arg_types(self, *args) + | Use information about callee arguments. + | | ev_use_arg_types(self, ea, fti, rargs) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @param fti: info about function type (C++: func_type_data_t *) + | @param rargs: array of register arguments (C++: funcargvec_t *) + | @retval: 1 - (and removes handled arguments from fti and rargs) + | @retval: 0 - not implemented | | ev_use_regarg_type(self, *args) + | Use information about register argument. + | | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | @param ea: address of the instruction (C++: ea_t) + | @param rargs: vector of register arguments (including regs extracted + | from scattered arguments) (C++: const funcargvec_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_use_stkarg_type(self, *args) + | Use information about a stack argument. + | | ev_use_stkarg_type(self, ea, arg) -> int + | @param ea: address of the push instruction which pushes the function + | argument into the stack (C++: ea_t) + | @param arg: argument info (C++: const funcarg_t *) + | @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) + | 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. + | | ev_validate_flirt_func(self, start_ea, funcname) -> int + | @param start_ea (C++: ea_t) + | @param funcname (C++: const char *) + | @retval: -1 - do not create a function, + | @retval: 0 - function is validated | | ev_verify_noreturn(self, *args) + | The kernel wants to set 'noreturn' flags for a function. + | | ev_verify_noreturn(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 0 - ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, *args) + | All function instructions have been analyzed. Now the processor module + | can analyze the stack pointer for the whole function + | | ev_verify_sp(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 0 - ok + | @retval: <0 - bad stack pointer | | 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: @@ -41439,6 +47869,13 @@ class __ph(__builtin__.object) | | version +Help on class _idp_cvar_t in module ida_idp: + +class _idp_cvar_t + | Data descriptors defined here: + | + | ash + Help on class _notify_when_dispatcher_t in module ida_idp: class _notify_when_dispatcher_t @@ -41486,296 +47923,725 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | | __repr__ = _swig_repr(self) | + | adding_segm(self, *args) + | A segment is being created. + | + | adding_segm(self, s) + | @param s (C++: segment_t *) + | | allsegs_moved(self, *args) + | Program rebasing is complete. This event is generated after series of + | segm_moved events + | | allsegs_moved(self, info) + | @param info (C++: segm_move_infos_t *) | | auto_empty(self, *args) - | auto_empty(self) + | Info: all analysis queues are empty. This callback is called once when + | the initial analysis is finished. If the queue is not empty upon the + | return from this callback, it will be called later again. | | auto_empty_finally(self, *args) - | auto_empty_finally(self) + | Info: all analysis queues are empty definitively. This callback is + | called only once. | | bookmark_changed(self, *args) + | Boomarked position changed. + | | bookmark_changed(self, index, pos, desc) + | @param index (C++: uint32) + | @param pos (C++: const lochist_entry_t *) + | @param desc: if desc==NULL, then the bookmark was deleted. (C++: + | const char *) | | byte_patched(self, *args) + | A byte has been patched. + | | byte_patched(self, ea, old_value) + | @param ea (C++: ea_t) + | @param old_value (C++: uint32) | | callee_addr_changed(self, *args) + | Callee address has been updated by the user. + | | callee_addr_changed(self, ea, callee) + | @param ea (C++: ea_t) + | @param callee (C++: ea_t) | | changing_cmt(self, *args) + | An item comment is to be changed. + | | changing_cmt(self, ea, repeatable_cmt, newcmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) + | @param newcmt (C++: const char *) | | changing_enum_bf(self, *args) + | An enum type 'bitfield' attribute is to be changed. + | | changing_enum_bf(self, id, new_bf) + | @param id (C++: enum_t) + | @param new_bf (C++: bool) | | changing_enum_cmt(self, *args) + | An enum or member type comment is to be changed. + | | changing_enum_cmt(self, id, repeatable, newcmt) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_op_ti(self, *args) + | An operand typestring (c/c++ prototype) is to be changed. + | | changing_op_ti(self, ea, n, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | changing_op_type(self, *args) + | An operand type (offset, hex, etc...) is to be changed. + | | changing_op_type(self, ea, n, opinfo) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param opinfo: additional operand info (C++: const opinfo_t *) | | changing_range_cmt(self, *args) + | Range comment is to be changed. + | | changing_range_cmt(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | changing_segm_class(self, *args) + | Segment class is being changed. + | | changing_segm_class(self, s) + | @param s (C++: segment_t *) | | changing_segm_end(self, *args) + | Segment end address is to be changed. + | | changing_segm_end(self, s, new_end, segmod_flags) + | @param s (C++: segment_t *) + | @param new_end (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_segm_name(self, *args) + | Segment name is being changed. + | | changing_segm_name(self, s, oldname) + | @param s (C++: segment_t *) + | @param oldname (C++: const char *) | | changing_segm_start(self, *args) + | Segment start address is to be changed. + | | changing_segm_start(self, s, new_start, segmod_flags) + | @param s (C++: segment_t *) + | @param new_start (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_struc_align(self, *args) + | A structure type is being changed (the struct alignment). + | | changing_struc_align(self, sptr) + | @param sptr (C++: struc_t *) | | changing_struc_cmt(self, *args) + | A structure type comment is to be changed. + | | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | @param struc_id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_struc_member(self, *args) + | A structure member is to be changed. + | | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param flag (C++: flags_t) + | @param ti (C++: const opinfo_t *) + | @param nbytes (C++: asize_t) | | changing_ti(self, *args) + | An item typestring (c/c++ prototype) is to be changed. + | | changing_ti(self, ea, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | closebase(self, *args) - | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) + | An item comment has been changed. + | | cmt_changed(self, ea, repeatable_cmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) | | compiler_changed(self, *args) - | compiler_changed(self) + | The kernel has changed the compiler information. (\inf{cc} structure; + | 'get_abi_name' ) | | deleting_enum(self, *args) + | An enum type is to be deleted. + | | deleting_enum(self, id) + | @param id (C++: enum_t) | | deleting_enum_member(self, *args) + | An enum member is to be deleted. + | | deleting_enum_member(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | deleting_func(self, *args) + | The kernel is about to delete a function. + | | deleting_func(self, pfn) + | @param pfn (C++: func_t *) | | deleting_func_tail(self, *args) + | A function tail chunk is to be removed. + | | deleting_func_tail(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: const range_t *) | | deleting_segm(self, *args) + | A segment is to be deleted. + | | deleting_segm(self, start_ea) + | @param start_ea (C++: ea_t) | | deleting_struc(self, *args) + | A structure type is to be deleted. + | | deleting_struc(self, sptr) + | @param sptr (C++: struc_t *) | | deleting_struc_member(self, *args) + | A structure member is to be deleted. + | | deleting_struc_member(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | deleting_tryblks(self, *args) + | About to delete tryblk information in given range + | | deleting_tryblks(self, range) + | @param range (C++: const range_t *) | | destroyed_items(self, *args) + | Instructions/data have been destroyed in [ea1,ea2). + | | destroyed_items(self, ea1, ea2, will_disable_range) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) + | @param will_disable_range (C++: bool) | | determined_main(self, *args) + | The main() function has been determined. + | | determined_main(self, main) + | @param main: address of the main() function (C++: ea_t) + | + | dirtree_link(self, *args) + | Dirtree: an item has been linked/unlinked. + | + | dirtree_link(self, dt, path, link) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param link (C++: bool) + | + | dirtree_mkdir(self, *args) + | Dirtree: a directory has been created. + | + | dirtree_mkdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_move(self, *args) + | Dirtree: a directory or item has been moved. + | + | dirtree_move(self, dt, _from, to) + | @param dt (C++: dirtree_t *) + | @param _from (C++: const char *) + | @param to (C++: const char *) + | + | dirtree_rank(self, *args) + | Dirtree: a directory or item rank has been changed. + | + | dirtree_rank(self, dt, path, rank) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param rank (C++: size_t) + | + | dirtree_rmdir(self, *args) + | Dirtree: a directory has been deleted. + | + | dirtree_rmdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_rminode(self, *args) + | Dirtree: an inode became unavailable. + | + | dirtree_rminode(self, dt, inode) + | @param dt (C++: dirtree_t *) + | @param inode (C++: inode_t) | | dump_state(self, *args) | dump_state(self) -> qstring | | enum_bf_changed(self, *args) + | An enum type 'bitfield' attribute has been changed. + | | enum_bf_changed(self, id) + | @param id (C++: enum_t) | | enum_cmt_changed(self, *args) + | An enum or member type comment has been changed. + | | enum_cmt_changed(self, id, repeatable) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) | | enum_created(self, *args) + | An enum type has been created. + | | enum_created(self, id) + | @param id (C++: enum_t) | | enum_deleted(self, *args) + | An enum type has been deleted. + | | enum_deleted(self, id) + | @param id (C++: enum_t) | | enum_member_created(self, *args) + | An enum member has been created. + | | enum_member_created(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_member_deleted(self, *args) + | An enum member has been deleted. + | | enum_member_deleted(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_renamed(self, *args) + | An enum or member has been renamed. + | | enum_renamed(self, id) + | @param id (C++: tid_t) | | expanding_struc(self, *args) + | A structure type is to be expanded/shrunk. + | | expanding_struc(self, sptr, offset, delta) + | @param sptr (C++: struc_t *) + | @param offset (C++: ea_t) + | @param delta (C++: adiff_t) | | extlang_changed(self, *args) + | The list of extlangs or the default extlang was changed. + | | extlang_changed(self, kind, el, idx) + | @param kind: 0: extlang installed 1: extlang removed 2: default + | extlang changed (C++: int) + | @param el: pointer to the extlang affected (C++: extlang_t *) + | @param idx: extlang index (C++: int) | | extra_cmt_changed(self, *args) + | An extra comment has been changed. + | | extra_cmt_changed(self, ea, line_idx, cmt) + | @param ea (C++: ea_t) + | @param line_idx (C++: int) + | @param cmt (C++: const char *) | | flow_chart_created(self, *args) + | Gui has retrieved a function flow chart. Plugins may modify the flow + | chart in this callback. + | | flow_chart_created(self, fc) + | @param fc (C++: qflow_chart_t *) | | frame_deleted(self, *args) + | The kernel has deleted a function frame. + | | frame_deleted(self, pfn) + | @param pfn (C++: func_t *) | | func_added(self, *args) + | The kernel has added a function. + | | func_added(self, pfn) + | @param pfn (C++: func_t *) + | + | func_deleted(self, *args) + | A function has been deleted. + | + | func_deleted(self, func_ea) + | @param func_ea (C++: ea_t) | | func_noret_changed(self, *args) + | 'FUNC_NORET' bit has been changed. + | | func_noret_changed(self, pfn) + | @param pfn (C++: func_t *) | | func_tail_appended(self, *args) + | A function tail chunk has been appended. + | | func_tail_appended(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: func_t *) | | func_tail_deleted(self, *args) + | A function tail chunk has been removed. + | | func_tail_deleted(self, pfn, tail_ea) + | @param pfn (C++: func_t *) + | @param tail_ea (C++: ea_t) | | func_updated(self, *args) + | The kernel has updated a function. + | | func_updated(self, pfn) + | @param pfn (C++: func_t *) | | hook(self, *args) | hook(self) -> bool | | idasgn_loaded(self, *args) + | FLIRT signature has been loaded for normal processing (not for + | recognition of startup sequences). + | | idasgn_loaded(self, short_sig_name) + | @param short_sig_name (C++: const char *) | | item_color_changed(self, *args) + | An item color has been changed. + | | item_color_changed(self, ea, color) + | @param ea (C++: ea_t) + | @param color: if color==DEFCOLOR, the the color is deleted. (C++: + | bgcolor_t) | | kernel_config_loaded(self, *args) - | kernel_config_loaded(self) + | This event is issued when ida.cfg is parsed. + | + | kernel_config_loaded(self, pass_number) + | @param pass_number (C++: int) | | loader_finished(self, *args) + | External file loader finished its work. Use this event to augment the + | existing loader functionality. + | | loader_finished(self, li, neflags, filetypename) + | @param li (C++: linput_t *) + | @param neflags: Load file flags (C++: uint16) + | @param filetypename (C++: const char *) | | local_types_changed(self, *args) - | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) + | An instruction is being created. + | | make_code(self, insn) + | @param insn (C++: const insn_t*) | | make_data(self, *args) + | A data item is being created. + | | make_data(self, ea, flags, tid, len) + | @param ea (C++: ea_t) + | @param flags (C++: flags_t) + | @param tid (C++: tid_t) + | @param len (C++: asize_t) | | op_ti_changed(self, *args) + | An operand typestring (c/c++ prototype) has been changed. + | | op_ti_changed(self, ea, n, type, fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | op_type_changed(self, *args) + | An operand type (offset, hex, etc...) has been set or deleted. + | | op_type_changed(self, ea, n) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) | | range_cmt_changed(self, *args) + | Range comment has been changed. + | | range_cmt_changed(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | renamed(self, *args) + | The kernel has renamed a byte. See also the \idpcode{rename} event + | | renamed(self, ea, new_name, local_name) + | @param ea (C++: ea_t) + | @param new_name (C++: const char *) + | @param local_name (C++: bool) | | renaming_enum(self, *args) + | An enum or enum member is to be renamed. + | | renaming_enum(self, id, is_enum, newname) + | @param id (C++: tid_t) + | @param is_enum (C++: bool) + | @param newname (C++: const char *) | | renaming_struc(self, *args) + | A structure type is to be renamed. + | | renaming_struc(self, id, oldname, newname) + | @param id (C++: tid_t) + | @param oldname (C++: const char *) + | @param newname (C++: const char *) | | renaming_struc_member(self, *args) + | A structure member is to be renamed. + | | renaming_struc_member(self, sptr, mptr, newname) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param newname (C++: const char *) | | savebase(self, *args) - | savebase(self) + | The database is being saved. | | segm_added(self, *args) + | A new segment has been created. + | | segm_added(self, s) + | @param s: See also adding_segm (C++: segment_t *) | | segm_attrs_updated(self, *args) + | Segment attributes has been changed. + | | segm_attrs_updated(self, s) + | @param s: This event is generated for secondary segment attributes + | (examples: color, permissions, etc) (C++: segment_t *) | | segm_class_changed(self, *args) + | Segment class has been changed. + | | segm_class_changed(self, s, sclass) + | @param s (C++: segment_t *) + | @param sclass (C++: const char *) | | segm_deleted(self, *args) + | A segment has been deleted. + | | segm_deleted(self, start_ea, end_ea) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) | | segm_end_changed(self, *args) + | Segment end address has been changed. + | | segm_end_changed(self, s, oldend) + | @param s (C++: segment_t *) + | @param oldend (C++: ea_t) | | segm_moved(self, *args) + | Segment has been moved. + | | segm_moved(self, _from, to, size, changed_netmap) + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param size (C++: asize_t) + | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) | | segm_name_changed(self, *args) + | Segment name has been changed. + | | segm_name_changed(self, s, name) + | @param s (C++: segment_t *) + | @param name (C++: const char *) | | segm_start_changed(self, *args) + | Segment start address has been changed. + | | segm_start_changed(self, s, oldstart) + | @param s (C++: segment_t *) + | @param oldstart (C++: ea_t) | | set_func_end(self, *args) + | Function chunk end address will be changed. + | | set_func_end(self, pfn, new_end) + | @param pfn (C++: func_t *) + | @param new_end (C++: ea_t) | | set_func_start(self, *args) + | Function chunk start address will be changed. + | | set_func_start(self, pfn, new_start) + | @param pfn (C++: func_t *) + | @param new_start (C++: ea_t) | | sgr_changed(self, *args) + | The kernel has changed a segment register value. + | | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) + | @param value (C++: sel_t) + | @param old_value (C++: sel_t) + | @param tag: Segment register range tags (C++: uchar) | | sgr_deleted(self, *args) + | The kernel has deleted a segment register value. + | | sgr_deleted(self, start_ea, end_ea, regnum) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) | | stkpnts_changed(self, *args) + | Stack change points have been modified. + | | stkpnts_changed(self, pfn) + | @param pfn (C++: func_t *) | | struc_align_changed(self, *args) + | A structure type has been changed (the struct alignment). + | | struc_align_changed(self, sptr) + | @param sptr (C++: struc_t *) | | struc_cmt_changed(self, *args) + | A structure type comment has been changed. + | | struc_cmt_changed(self, struc_id, repeatable_cmt) + | @param struc_id (C++: tid_t) + | @param repeatable_cmt (C++: bool) | | struc_created(self, *args) + | A new structure type has been created. + | | struc_created(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_deleted(self, *args) + | A structure type has been deleted. + | | struc_deleted(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_expanded(self, *args) + | A structure type has been expanded/shrank. + | | struc_expanded(self, sptr) + | @param sptr (C++: struc_t *) | | struc_member_changed(self, *args) + | A structure member has been changed. + | | struc_member_changed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_created(self, *args) + | A structure member has been created. + | | struc_member_created(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_deleted(self, *args) + | A structure member has been deleted. + | | struc_member_deleted(self, sptr, member_id, offset) + | @param sptr (C++: struc_t *) + | @param member_id (C++: tid_t) + | @param offset (C++: ea_t) | | struc_member_renamed(self, *args) + | A structure member has been renamed. + | | struc_member_renamed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_renamed(self, *args) + | A structure type has been renamed. + | | struc_renamed(self, sptr) + | @param sptr (C++: struc_t *) | | tail_owner_changed(self, *args) + | A tail chunk owner has been changed. + | | tail_owner_changed(self, tail, owner_func, old_owner) + | @param tail (C++: func_t *) + | @param owner_func (C++: ea_t) + | @param old_owner (C++: ea_t) | | thunk_func_created(self, *args) + | A thunk bit has been set for a function. + | | thunk_func_created(self, pfn) + | @param pfn (C++: func_t *) | | ti_changed(self, *args) + | An item typestring (c/c++ prototype) has been changed. + | | ti_changed(self, ea, type, fnames) + | @param ea (C++: ea_t) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | tryblks_updated(self, *args) + | Updated tryblk information + | | tryblks_updated(self, tbv) + | @param tbv (C++: const tryblks_t *) | | unhook(self, *args) | unhook(self) -> bool | | updating_tryblks(self, *args) + | About to update tryblk information + | | updating_tryblks(self, tbv) + | @param tbv (C++: const tryblks_t *) | | upgraded(self, *args) + | The database has been upgraded and the receiver can upgrade its info + | as well + | | upgraded(self, _from) + | @param _from: - old IDB version (C++: int) | | ---------------------------------------------------------------------- | Data descriptors inherited from IDB_Hooks: @@ -41982,8 +48848,6 @@ 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 @@ -41997,57 +48861,69 @@ 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 * + compid: comp_t Help on function cfg_get_cc_parm in module ida_idp: cfg_get_cc_parm(*args) cfg_get_cc_parm(compid, name) -> char const * + compid: comp_t + 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 * + compid: comp_t + +Help on function clr_module_data in module ida_idp: + +clr_module_data(*args) + Unregister pointer to database specific module data. + + clr_module_data(data_id) -> void * + @param data_id: an data_id that was assigned by set_module_data() + (C++: int) + @return: previously registered pointer for the current database. it + can be deallocated now. Multiple calls to this function with + the same id are forbidden. 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 *) + ea: ea_t * + bexec: bool * + fexec: 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) + gen_idb_event(code) + @param code (C++: idb_event::event_code_t) + +Help on function get_ash in module ida_idp: + +get_ash(*args) + get_ash() -> asm_t Help on function get_idb_notifier_addr in module ida_idp: get_idb_notifier_addr(*args) get_idb_notifier_addr(arg1) -> PyObject * + 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 * + hooks: IDB_Hooks * 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 @@ -42057,147 +48933,132 @@ Help on function get_idp_notifier_addr in module ida_idp: get_idp_notifier_addr(*args) get_idp_notifier_addr(arg1) -> PyObject * + 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 * + hooks: IDP_Hooks * + +Help on function get_module_data in module ida_idp: + +get_module_data(*args) + Get pointer to the database specific module data. + + get_module_data(data_id) -> void * + @param data_id: data id that was initialized by set_module_data() + (C++: int) + @return: previously registered pointer for the current database + +Help on function get_ph in module ida_idp: + +get_ph(*args) + get_ph() -> processor_t * 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 + regname: char const * + bitrange: bitrange_t * 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 + get_reg_name(reg, width, reghi=-1) -> str + @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) + has_cf_chg(feature, opnum) -> bool + @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) + has_cf_use(feature, opnum) -> bool + @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) + has_insn_feature(icode, bit) -> bool + @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) + is_align_insn(ea) -> int + @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) + is_basic_block_end(insn, call_insn_stops_block) -> bool + @param insn - 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) - is_call_insn(insn) -> bool - - Is the instruction a "call"? - - @param insn (C++: const insn_t &) + is_call_insn(insn) -> bool + @param insn - 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) - is_indirect_jump_insn(insn) -> bool - - Is the instruction an indirect jump? - - @param insn (C++: const insn_t &) + is_indirect_jump_insn(insn) -> bool + @param insn - 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) - is_ret_insn(insn, strict=True) -> bool - - Is the instruction a "return"? - - @param insn (C++: const insn_t &) - @param strict (C++: bool) + is_ret_insn(insn, strict=True) -> bool + @param insn - an ida_ua.insn_t, or an address (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 + parse_reg_name(ri, regname) -> bool + @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: @@ -42248,63 +49109,56 @@ Help on function ph_calcrel in module ida_idp: ph_calcrel(*args) ph_calcrel(ea) + ea: ea_t Help on function ph_find_op_value in module ida_idp: ph_find_op_value(*args) ph_find_op_value(insn, op) -> ssize_t + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + op: int Help on function ph_find_reg_value in module ida_idp: ph_find_reg_value(*args) ph_find_reg_value(insn, reg) -> ssize_t + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + reg: int 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 @@ -42312,24 +49166,18 @@ 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 @@ -42338,70 +49186,69 @@ ph_get_operand_info(*args) @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) + ph_get_reg_accesses(accvec, insn, flags) -> ssize_t + accvec: reg_accesses_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + flags: int + 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 function process_config_directive in module ida_idp: + +process_config_directive(*args) + process_config_directive(directive, priority=2) + directive: char const * + priority: int + Help on class processor_t in module ida_idp: class processor_t(IDP_Hooks) @@ -42542,7 +49389,7 @@ class processor_t(IDP_Hooks) | | ev_rename(self, *args) | - | ev_set_idp_options(self, keyword, value_type, value) + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) | | ev_set_proc_options(self, *args) | @@ -42607,205 +49454,667 @@ class processor_t(IDP_Hooks) | dump_state(self) -> qstring | | ev_add_cref(self, *args) + | A code reference is being created. + | | ev_add_cref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: cref_t) + | @retval: <0 - cancel cref creation + | @retval: 0 - not implemented or continue | | ev_add_dref(self, *args) + | A data reference is being created. + | | ev_add_dref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: dref_t) + | @retval: <0 - cancel dref creation + | @retval: 0 - not implemented or continue | | ev_adjust_argloc(self, *args) + | Adjust argloc according to its type/size and platform endianess + | | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | @param argloc: , inout (C++: argloc_t *) + | optional_type: tinfo_t const * + | @param size: 'size' makes no sense if type != NULL (type->get_size() + | should be used instead) (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_adjust_libfunc_ea(self, *args) + | 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.'ea' initially contains the ea_t of + | the start of the pattern match + | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | @param sig (C++: const idasgn_t *) + | @param libfun (C++: const libfunc_t *) + | @param ea (C++: ea_t *) + | @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) + | 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) + | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | @param ri (C++: refinfo_t *) + | @param ea: instruction address (C++: ea_t) + | @param n: operand number (C++: int) + | @param fd (C++: const fixup_data_t *) + | @retval: <0 - do not create an offset + | @retval: 0 - not implemented or refinfo adjusted | | ev_analyze_prolog(self, *args) + | Analyzes function prolog, epilog, and updates purge, and function + | attributes + | | ev_analyze_prolog(self, ea) -> int + | @param ea: start of function (C++: ea_t) + | @retval: 1 - ok + | @retval: 0 - not implemented + | + | ev_arch_changed(self, *args) + | The loader is done parsing arch-related information, which the + | processor module might want to use to finish its initialization. | | ev_arg_addrs_ready(self, *args) + | Argument address info is ready. + | | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | @param caller (C++: ea_t) + | @param n: number of formal arguments (C++: int) + | @param tif: call prototype (C++: tinfo_t *) + | @param addrs: argument intilization addresses (C++: ea_t *) + | @retval: <0 - do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) + | After setting a new assembler + | + | ev_asm_installed(self, asmnum) -> int + | @param asmnum: See also ev_newasm (C++: int) | | ev_calc_arglocs(self, *args) + | Calculate function argument locations. This callback should fill + | retloc, all arglocs, and stkargs. This callback is never called for + | 'CM_CC_SPECIAL' functions. + | | ev_calc_arglocs(self, fti) -> int + | @param fti: points to the func type info (C++: func_type_data_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_calc_cdecl_purged_bytes(self, *args) + | Calculate number of purged bytes after call. + | | ev_calc_cdecl_purged_bytes(self, ea) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) + | Calculate list of addresses the instruction in 'insn' may pass control + | to. This callback is required for source level debugging. + | | ev_calc_next_eas(self, res, insn, over) -> int + | @param res: , out: array for the results. (C++: eavec_t *) + | @param insn: the instruction (C++: const insn_t*) + | @param over: calculate for step over (ignore call targets) (C++: + | bool) + | @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) + | Calculate number of purged bytes by the given function type. + | | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | @param p_purged_bytes: ptr to output (C++: int *) + | @param fti: func type details (C++: const func_type_data_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_calc_retloc(self, *args) + | Calculate return value location. + | | ev_calc_retloc(self, retloc, rettype, cc) -> int + | @param retloc (C++: argloc_t *) + | @param rettype (C++: const tinfo_t *) + | @param cc (C++: cm_t) + | @retval: 0 - not implemented + | @retval: 1 - ok, + | @retval: -1 - error | | ev_calc_spdelta(self, *args) + | Calculate amount of change to sp for the given insn. This event is + | required to decompile code snippets. + | | ev_calc_spdelta(self, spdelta, insn) -> int + | @param spdelta (C++: sval_t *) + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_calc_switch_cases(self, *args) + | Calculate case values and targets for a custom jump table. + | | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | @param casevec: vector of case values (may be NULL) (C++: casevec_t + | *) + | @param targets: corresponding target addresses (my be NULL) (C++: + | eavec_t *) + | @param insn_ea: address of the 'indirect jump' instruction (C++: + | ea_t) + | @param si: switch information (C++: switch_info_t *) + | @retval: 1 - ok + | @retval: <=0 - failed | | ev_calc_varglocs(self, *args) + | Calculate locations of the arguments that correspond to '...'. + | | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | @param ftd: , inout: info about all arguments (including varargs) + | (C++: func_type_data_t *) + | @param aux_regs: buffer for hidden register arguments, may be NULL + | (C++: regobjs_t *) + | @param aux_stkargs: buffer for hidden stack arguments, may be NULL + | (C++: relobj_t *) + | @param nfixed: number of fixed arguments (C++: int) + | @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) - | ev_calcrel(self) -> int + | Reserved. | | ev_clean_tbit(self, *args) + | Clear the TF bit after an insn like pushf stored it in memory. + | | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | @param ea: instruction address (C++: ea_t) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 1 - ok + | @retval: 0 - failed | | ev_create_flat_group(self, *args) + | Create special segment representing the flat group. + | | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | @param image_base (C++: ea_t) + | @param bitness (C++: int) + | @param dataseg_sel: return value is ignored (C++: sel_t) | | ev_decorate_name(self, *args) + | Decorate/undecorate a C symbol name. + | | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | @param name: name of symbol (C++: const char *) + | @param mangle: true-mangle, false-unmangle (C++: bool) + | @param cc: calling convention (C++: cm_t) + | optional_type: tinfo_t const * + | @retval: 1 - if success + | @retval: 0 - not implemented or failed | | ev_del_cref(self, *args) + | A code reference is being deleted. + | | ev_del_cref(self, _from, to, expand) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param expand (C++: bool) + | @retval: <0 - cancel cref deletion + | @retval: 0 - not implemented or continue | | ev_del_dref(self, *args) + | A data reference is being deleted. + | | ev_del_dref(self, _from, to) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @retval: <0 - cancel dref deletion + | @retval: 0 - not implemented or continue | | ev_delay_slot_insn(self, *args) + | Get delay slot instructionInput EA may point to the instruction with a + | delay slot or to the delay slot instruction itself. + | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | @param ea: 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) (C++: ea_t *) + | @param bexec: execute slot if jumping, initially set to 'true' (C++: + | bool *) + | @param fexec: execute slot if not jumping, initally set to 'true' + | (C++: bool *) + | @retval: 1 - positive answer + | @retval: <=0 - ordinary insn | | ev_demangle_name(self, *args) + | Demangle a C++ (or another language) name into a user-readable string. + | This event is called by 'demangle_name()' if you call + | 'demangle_name()' from the handler, protect against recursion! + | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | @param name: mangled name (C++: const char *) + | @param disable_mask: flags to inhibit parts of output or compiler + | info/other (see MNG_) (C++: uint32) + | @param demreq: operation to perform (C++: demreq_type_t) + | @retval: 1 - if success + | @retval: 0 - not implemented | | ev_ending_undo(self, *args) + | Ended undoing/redoing an action + | | ev_ending_undo(self, action_name, is_undo) -> int + | @param action_name: action that we finished undoing/redoing. is not + | NULL. (C++: const char *) + | @param is_undo: true if performing undo, false if performing redo + | (C++: bool) | | ev_equal_reglocs(self, *args) + | Are 2 register arglocs the same?. We need this callback for the pc + | module. + | | ev_equal_reglocs(self, a1, a2) -> int + | @param a1 (C++: argloc_t *) + | @param a2 (C++: argloc_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented | | ev_extract_address(self, *args) + | Extract address from a string. + | | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | @param out_ea: , out (C++: ea_t *) + | @param screen_ea (C++: ea_t) + | @param string (C++: const char *) + | @param position (C++: size_t) + | @retval: 1 - ok + | @retval: 0 - kernel should use the standard algorithm + | @retval: -1 - error | | ev_find_op_value(self, *args) + | Find operand value via a register tracker. The returned value in 'out' + | is valid before executing the instruction. + | | ev_find_op_value(self, pinsn, opn) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param opn: operand index (C++: int) + | @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) + | Find register value via a register tracker. The returned value in + | 'out' is valid before executing the instruction. + | | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param reg: register index (C++: int) + | @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) - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) + | Callback: generating asm or lst file. The kernel calls this callback + | twice, at the beginning and at the end of listing generation. The + | processor module can intercept this event and adjust its output + | + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | @param starting: beginning listing generation (C++: bool) + | @param fp: output file (C++: FILE *) + | @param is_asm: true:assembler, false:listing (C++: bool) + | @param flags: flags passed to gen_file() (C++: int) + | @param outline: 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 (C++: html_line_cb_t + | **) + | @retval: void - | | ev_gen_stkvar_def(self, *args) + | Generate stack variable definition line Default line is varname = type + | ptr value, where 'type' is one of byte,word,dword,qword,tbyte + | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | @param outctx (C++: outctx_t *) + | @param mptr (C++: const member_t *) + | @param v (C++: sval_t) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_get_abi_info(self, *args) + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and + | underscore + | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | @param abi_names: - all possible ABis each in form abiname- + | opt1-opt2-... (C++: qstrvec_t *) + | @param abi_opts: - array of all possible options in form + | "opt:description" or opt:hint-line#description (C++: + | qstrvec_t *) + | @param comp: - compiler ID (C++: comp_t) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_get_bg_color(self, *args) + | Get item background color. Plugins can hook this callback to color + | disassembly lines dynamically + | | ev_get_bg_color(self, ea) -> int or None + | @param color: , out (C++: bgcolor_t *) + | @param ea (C++: ea_t) + | @retval: 0 - not implemented + | @retval: 1 - color set | | ev_get_cc_regs(self, *args) + | Get register allocation convention for given calling convention + | | ev_get_cc_regs(self, regs, cc) -> int + | @param regs: , out (C++: callregs_t *) + | @param cc (C++: cm_t) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_get_code16_mode(self, *args) + | Get ISA 16-bit mode + | | ev_get_code16_mode(self, ea) -> int + | @param ea: address to get the ISA mode (C++: ea_t) + | @retval: 1 - 16-bit mode + | @retval: 0 - not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) + | Get the number of the operand to be displayed in the debugger + | reference view (text mode). + | | ev_get_dbr_opnum(self, opnum, insn) -> int + | @param opnum: operand number (out, -1 means no such operand) (C++: + | int *) + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_default_enum_size(self, *args) - | ev_get_default_enum_size(self, cm) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is + | used instead | | ev_get_macro_insn_head(self, *args) + | Calculate the start of a macro instruction. This notification is + | called if IP points to the middle of an instruction + | | ev_get_macro_insn_head(self, head, ip) -> int + | @param head: , out: answer, BADADDR means normal instruction (C++: + | ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented + | + | ev_get_procmod(self, *args) + | 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) + | Get info about the registers that are used/changed by an instruction. + | + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | @param accvec: out: info about accessed registers (C++: + | reg_accesses_t*) + | @param insn: instruction in question (C++: const insn_t *) + | @param flags: reserved, must be 0 (C++: int) + | @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) + | 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 + | \ph{reg_names} and they all have the same size + | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | @param main_regname: , out (C++: const char **) + | @param bitrange: , out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | (C++: bitrange_t *) + | @param regname (C++: const char *) + | @retval: 1 - ok + | @retval: -1 - failed (not found) + | @retval: 0 - unimplemented | | ev_get_reg_name(self, *args) + | Generate text representation of a register. Most processor modules do + | not need to implement this callback. It is useful only if + | \ph{reg_names}[reg] does not provide the correct register name. + | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | @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 not -1 then this function will return the register + | pair (C++: int) + | @retval: -1 - if error + | @retval: strlen(buf) - if success | | ev_get_simd_types(self, *args) + | Get SIMD-related types according to given attributes ant/or argument + | location + | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | @param out (C++: simd_info_vec_t *) + | @param simd_attrs: , may be NULL (C++: const simd_info_t *) + | @param argloc: , may be NULL (C++: const argloc_t *) + | @param create_tifs: return valid tinfo_t objects, create if neccessary + | (C++: bool) + | @retval: number - of found types + | @retval: -1 - error If name==NULL, initialize all SIMD types | | ev_get_stkarg_offset(self, *args) - | ev_get_stkarg_offset(self) -> int + | Get offset from SP to the first stack argument. For example: pc: 0, + | hppa: -0x34, ppc: 0x38 | | ev_get_stkvar_scale_factor(self, *args) - | 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 + | 'PR_SCALE_STKVARS' should be set to use this callback | | ev_getreg(self, *args) + | IBM PC only internal request, should never be used for other purpose + | Get register value by internal index + | | ev_getreg(self, regval, regnum) -> int + | @param regval: , out (C++: uval_t *) + | @param regnum (C++: int) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - failed (undefined value or bad regnum) | | ev_init(self, *args) + | The IDP module is just loaded. + | | ev_init(self, idp_modname) -> int + | @param idp_modname: processor module name (C++: const char *) + | @retval: <0 - on failure | | ev_insn_reads_tbit(self, *args) + | Check if insn will read the TF bit. + | | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @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) + | Is conditional instruction? + | | ev_is_cond_insn(self, insn) -> int + | @param insn: instruction address (C++: const insn_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented or not instruction | | ev_is_jump_func(self, *args) + | Is the function a trivial "jump" function?. + | | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | @param pfn (C++: func_t *) + | @param jump_target (C++: ea_t *) + | @param func_pointer (C++: 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) | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) - | 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) + | 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. + | | ev_lower_func_type(self, argnums, fti) -> int + | @param argnums: , out - numbers of arguments to be converted to + | pointers in acsending order (C++: intvec_t *) + | @param fti: , inout func type details (special values -1/-2 for return + | value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) (C++: func_type_data_t *) + | @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) - | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. | | ev_newasm(self, *args) + | Before setting a new assembler. + | | ev_newasm(self, asmnum) -> int + | @param asmnum: See also ev_asm_installed (C++: int) | | ev_next_exec_insn(self, *args) + | 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. + | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | @param target: , out: pointer to the answer (C++: ea_t *) + | @param ea: instruction address (C++: ea_t) + | @param tid: current therad id (C++: int) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_realcvt(self, *args) + | Floating point -> IEEE conversion + | | ev_realcvt(self, m, e, swt) -> int + | @param m: pointer to data (C++: void *) + | @param e: internal IEEE format data (C++: uint16 *) + | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_replaying_undo(self, *args) + | Replaying an undo/redo buffer + | | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | @param action_name: action that we perform undo/redo for. may be NULL + | for intermediary buffers. (C++: const char *) + | @param vec (C++: const undo_records_t *) + | @param is_undo: true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | (C++: bool) | | ev_set_code16_mode(self, *args) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, + | MIPS16 Set ISA 16-bit mode + | | ev_set_code16_mode(self, ea, code16) -> int + | @param ea: address to set new ISA mode (C++: ea_t) + | @param code16: true for 16-bit mode, false for 32-bit mode (C++: + | bool) | | ev_setup_til(self, *args) - | ev_setup_til(self) + | 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. | | ev_shadow_args_size(self, *args) + | Get size of shadow args in bytes. + | | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | @param shadow_args_size (C++: int *) + | @param pfn: (may be NULL) (C++: func_t *) + | @retval: 1 - if filled *shadow_args_size + | @retval: 0 - not implemented | | ev_term(self, *args) - | ev_term(self) -> int + | The IDP module is being unloaded. | | ev_use_arg_types(self, *args) + | Use information about callee arguments. + | | ev_use_arg_types(self, ea, fti, rargs) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @param fti: info about function type (C++: func_type_data_t *) + | @param rargs: array of register arguments (C++: funcargvec_t *) + | @retval: 1 - (and removes handled arguments from fti and rargs) + | @retval: 0 - not implemented | | ev_use_regarg_type(self, *args) + | Use information about register argument. + | | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | @param ea: address of the instruction (C++: ea_t) + | @param rargs: vector of register arguments (including regs extracted + | from scattered arguments) (C++: const funcargvec_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_use_stkarg_type(self, *args) + | Use information about a stack argument. + | | ev_use_stkarg_type(self, ea, arg) -> int + | @param ea: address of the push instruction which pushes the function + | argument into the stack (C++: ea_t) + | @param arg: argument info (C++: const funcarg_t *) + | @retval: 1 - ok + | @retval: <=0 - failed, the kernel will create a comment with the + | argument name or type for the instruction | | 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: @@ -42825,6 +50134,390 @@ class processor_t(IDP_Hooks) | __swig_destroy__ = | delete_IDP_Hooks(self) +Help on class reg_access_t in module ida_idp: + +class reg_access_t(__builtin__.object) + | Proxy of C++ reg_access_t class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: reg_access_t const & + | + | __init__(self, *args) + | __init__(self) -> reg_access_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: reg_access_t const & + | + | __repr__ = _swig_repr(self) + | + | have_common_bits(self, *args) + | have_common_bits(self, r) -> bool + | @param r (C++: const reg_access_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | access_type + | reg_access_t_access_type_get(self) -> access_type_t + | + | opnum + | reg_access_t_opnum_get(self) -> uchar + | + | range + | reg_access_t_range_get(self) -> bitrange_t + | + | regnum + | reg_access_t_regnum_get(self) -> int + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_reg_access_t(self) + +Help on class reg_access_vec_t in module ida_idp: + +class reg_access_vec_t(__builtin__.object) + | Proxy of C++ qvector< reg_access_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> reg_access_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> reg_access_vec_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< reg_access_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: reg_access_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: reg_access_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: reg_access_t const & + | + | at(self, *args) + | at(self, _idx) -> reg_access_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> reg_access_t + | begin(self) -> reg_access_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_access_t + | end(self) -> reg_access_t + | + | erase(self, *args) + | erase(self, it) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | + | + | erase(self, first, last) -> reg_access_t + | first: qvector< reg_access_t >::iterator + | last: qvector< reg_access_t >::iterator + | + | extract(self, *args) + | extract(self) -> reg_access_t + | + | find(self, *args) + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=reg_access_t()) + | x: reg_access_t const & + | + | has(self, *args) + | has(self, x) -> bool + | x: reg_access_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: reg_access_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | x: reg_access_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: reg_access_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_access_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< reg_access_t > & + | + | 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_reg_access_vec_t(self) + +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 + | __builtin__.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> reg_accesses_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_reg_accesses_t(self) + | + | ---------------------------------------------------------------------- + | Methods inherited from reg_access_vec_t: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> reg_access_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< reg_access_t > const & + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: reg_access_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: reg_access_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: reg_access_t const & + | + | at(self, *args) + | at(self, _idx) -> reg_access_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> reg_access_t + | begin(self) -> reg_access_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_access_t + | end(self) -> reg_access_t + | + | erase(self, *args) + | erase(self, it) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | + | + | erase(self, first, last) -> reg_access_t + | first: qvector< reg_access_t >::iterator + | last: qvector< reg_access_t >::iterator + | + | extract(self, *args) + | extract(self) -> reg_access_t + | + | find(self, *args) + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=reg_access_t()) + | x: reg_access_t const & + | + | has(self, *args) + | has(self, x) -> bool + | x: reg_access_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: reg_access_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | x: reg_access_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: reg_access_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_access_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< reg_access_t > & + | + | truncate(self, *args) + | 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) + Help on class reg_info_t in module ida_idp: class reg_info_t(__builtin__.object) @@ -42834,29 +50527,36 @@ class reg_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: reg_info_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: reg_info_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: reg_info_t const & | | __init__(self, *args) | __init__(self) -> reg_info_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: reg_info_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: reg_info_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: reg_info_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: reg_info_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -42882,50 +50582,65 @@ class reg_info_t(__builtin__.object) | __swig_destroy__ = | delete_reg_info_t(self) +Help on function register_cfgopts in module ida_idp: + +register_cfgopts(*args) + register_cfgopts(opts, nopts, cb=None) -> bool + opts: cfgopt_t const [] + nopts: size_t + cb: config_changed_cb_t * + +Help on function set_module_data in module ida_idp: + +set_module_data(*args) + Starting from IDA v7.5 all modules should use the following 3 + functions to handle idb specific static data because now the kernel + supports opening and working with multiple idbs files simultaneously. + See the source code of the processor modules in the SDK for the usage + examples. Register pointer to database specific module data. + + set_module_data(data_id, data_ptr) -> void * + @param data_id: initially the pointed-to value must be 0, the kernel + will fill it with a unique id. once assigned, the + data_id does not change. (C++: int *) + @param data_ptr: pointer to the data to register (C++: void *) + @return: data_ptr. The registered pointer can later be retrieved using + get_module_data() + 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 + set_processor_type(procname, level) -> bool + @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 + set_target_assembler(asmnum) -> bool + @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 *) + str2reg(p) -> int + @param p (C++: const char *) === ida_idp EPYDOC INJECTIONS === ida_idp.AS2_BRACE @@ -43307,6 +51022,19 @@ Custom instruction codes defined by processor extension plugins must be greater than or equal to this """ +ida_idp.HKCB_AUTODEL +""" +automatically delete event listener object after uninstalling it +""" + +ida_idp.HKCB_GLOBAL +""" +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. +""" + ida_idp.IDP_INTERFACE_VERSION """ The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' @@ -43842,7 +51570,7 @@ use \\ph{use_arg_types} callback ida_idp.PR_USE_TBYTE """ - 'BTMT_SPECFLT' means _TBYTE type +'BTMT_SPECFLT' means _TBYTE type """ ida_idp.PR_WORD_INS @@ -43949,6 +51677,10 @@ class Choose(__builtin__.object) | | CHCOL_DEC = 196608 | + | CHCOL_DEFHIDDEN = 1048576 + | + | CHCOL_DRAGHINT = 2097152 + | | CHCOL_EA = 262144 | | CHCOL_FNAME = 327680 @@ -43957,6 +51689,8 @@ class Choose(__builtin__.object) | | CHCOL_HEX = 131072 | + | CHCOL_INODENAME = 4194304 + | | CHCOL_PATH = 65536 | | CHCOL_PLAIN = 0 @@ -43997,6 +51731,8 @@ class Choose(__builtin__.object) | | CH_FORCE_DEFAULT = 128 | + | CH_HAS_DIRTREE = 33554432 + | | CH_MODAL = 1 | | CH_MULTI = 4 @@ -44190,7 +51926,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44681,7 +52420,10 @@ class IDAViewWrapper(CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44833,6 +52575,7 @@ Help on function TWidget__from_ptrval__ in module ida_kernwin: TWidget__from_ptrval__(*args) TWidget__from_ptrval__(ptrval) -> TWidget * + ptrval: size_t Help on class UI_Hooks in module ida_kernwin: @@ -44845,178 +52588,253 @@ class UI_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> UI_Hooks + | _flags: uint32 + | + | __real_database_closed = database_closed(self, *args) + | The database has been closed. See also processor_t::closebase, it + | occurs earlier. See also ui_initing_database. This is not the same as + | IDA exiting. If you need to perform cleanup at the exiting time, use + | 'qatexit()' . | | __repr__ = _swig_repr(self) | | create_desktop_widget(self, *args) + | create a widget, to be placed in the widget tree (at desktop- + | creation time.) + | | create_desktop_widget(self, title, cfg) -> PyObject * + | @param title (C++: const char *) + | @param cfg (C++: const jobj_t *) | | current_widget_changed(self, *args) + | The currently-active TWidget changed. + | | current_widget_changed(self, widget, prev_widget) + | @param widget (C++: TWidget *) + | @param prev_widget (C++: TWidget *) + | + | database_closed = __wrapper(self, *args) + | The database has been closed. See also processor_t::closebase, it + | occurs earlier. See also ui_initing_database. This is not the same as + | IDA exiting. If you need to perform cleanup at the exiting time, use + | 'qatexit()' . | | database_inited(self, *args) + | database initialization has completed. the kernel is about to run + | idc scripts + | | database_inited(self, is_new_database, idc_script) + | @param is_new_database (C++: int) + | @param idc_script: - may be NULL (C++: const char *) | | debugger_menu_change(self, *args) + | debugger menu modification detected + | | debugger_menu_change(self, enable) + | @param enable: true: debugger menu has been added, or a different + | debugger has been selected false: debugger menu will be + | removed (user switched to "No debugger") (C++: bool) + | + | destroying_plugmod(self, *args) + | The plugin object is about to be destroyed + | + | destroying_plugmod(self, plugmod) + | @param plugmod (C++: const plugmod_t *) + | + | destroying_procmod(self, *args) + | The processor module is about to be destroyed + | + | destroying_procmod(self, procmod) + | @param procmod (C++: const procmod_t *) | | dump_state(self, *args) | dump_state(self) -> qstring | | finish_populating_widget_popup(self, *args) + | IDA is about to be done populating the context menu for a widget. + | This is your chance to 'attach_action_to_popup()' . + | | finish_populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | 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 (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param ctx (C++: const action_activation_ctx_t *) | | get_chooser_item_attrs(self, *args) + | get item-specific attributes for a chooser. This callback is + | generated only after enable_chooser_attrs() + | | get_chooser_item_attrs(self, chooser, n, attrs) + | @param chooser (C++: const chooser_base_t *) + | @param n (C++: size_t) + | @param attrs (C++: chooser_item_attrs_t *) | | get_custom_viewer_hint(self, *args) + | ui wants to display a hint for a viewer (idaview or custom). If + | the REG_HINTS_MARKER sequence is found in the returned hints string, + | it will be replaced with the contents of the "regular" hints. If the + | SRCDBG_HINTS_MARKER sequence is found in the returned hints string, it + | will be replaced with the contents of the source-level debugger- + | generated hints. The following keywords might appear at the beginning + | of the returned hints: HIGHLIGHT textwhere text will be highlighted + | CAPTION captioncaption for the hint widget + | | get_custom_viewer_hint(self, viewer, place) -> PyObject * + | @param viewer: viewer (C++: TWidget*) + | @param place: current position in the viewer (C++: place_t *) | | get_ea_hint(self, *args) + | ui wants to display a simple hint for an address. Use this event + | to generate a custom hint See also more generic 'ui_get_item_hint' + | | get_ea_hint(self, ea) -> PyObject * - | - | - | 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 (C++: ea_t) | | get_item_hint(self, *args) + | ui wants to display multiline hint for an item. See also more + | generic 'ui_get_custom_viewer_hint' + | | get_item_hint(self, ea, max_lines) -> PyObject * + | @param ea: or item id like a structure or enum member (C++: ea_t) + | @param max_lines: maximal number of lines (C++: int) + | + | get_lines_rendering_info(self, *args) + | get lines rendering information + | + | get_lines_rendering_info(self, out, widget, info) + | @param out (C++: lines_rendering_output_t *) + | @param widget (C++: const TWidget *) + | @param info (C++: const lines_rendering_input_t *) | | get_widget_config(self, *args) + | retrieve the widget configuration (it will be passed back at + | ui_create_desktop_widget-, and ui_set_widget_config-time) + | | get_widget_config(self, widget, cfg) -> PyObject * + | @param widget (C++: const TWidget *) + | @param cfg (C++: jobj_t *) | | hook(self, *args) | hook(self) -> bool - | - | - | Creates an UI hook - | - | @return: Boolean true on success | | idcstart(self, *args) - | idcstart(self) + | Start of IDC engine work. | | idcstop(self, *args) - | idcstop(self) + | Stop of IDC engine work. + | + | initing_database(self, *args) + | database initialization has started. | | plugin_loaded(self, *args) + | The plugin was loaded in memory. + | | plugin_loaded(self, plugin_info) + | @param plugin_info (C++: const plugin_info_t *) | | plugin_unloading(self, *args) + | The plugin is about to be unloaded + | | plugin_unloading(self, plugin_info) + | @param plugin_info (C++: const plugin_info_t *) | | populating_widget_popup(self, *args) + | IDA is populating the context menu for a widget. This is your + | chance to 'attach_action_to_popup()' .Have a look at + | ui_finish_populating_widget_popup, if you want to augment the context + | menu with your own actions after the menu has had a chance to be + | properly populated by the owning component or plugin (which typically + | does it on ui_populating_widget_popup.) + | | populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | 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 (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param ctx (C++: const action_activation_ctx_t *) | | postprocess_action(self, *args) - | postprocess_action(self) - | - | - | An ida ui action has been handled - | - | @return: Ignored + | an ida ui action has been handled | | preprocess_action(self, *args) - | preprocess_action(self, name) + | 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 + | preprocess_action(self, name) -> int + | @param name: ui action name. these names can be looked up in + | ida[tg]ui.cfg (C++: const char *) + | @retval: 0 - ok + | @retval: nonzero - a plugin has handled the command | | range(self, *args) - | range(self) + | The disassembly range has been changed (\inf{min_ea} ... + | \inf{max_ea}). UI should redraw the scrollbars. See also: + | 'ui_lock_range_refresh' | | ready_to_run(self, *args) - | ready_to_run(self) + | all UI elements have been initialized. Automatic plugins may hook + | to this event to perform their tasks. | | resume(self, *args) - | resume(self) + | Resume the suspended graphical interface. Only the text version. + | Interface should respond to it | | saved(self, *args) - | saved(self) - | - | - | The kernel has saved the database. - | - | @return: Ignored + | The kernel has saved the database. This callback just informs the + | interface. | | saving(self, *args) - | 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) + | The "current address" changed + | | screen_ea_changed(self, ea, prev_ea) + | @param ea (C++: ea_t) + | @param prev_ea (C++: ea_t) | | set_widget_config(self, *args) + | set the widget configuration + | | set_widget_config(self, widget, cfg) + | @param widget (C++: const TWidget *) + | @param cfg (C++: const jobj_t *) | | 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. + | Suspend graphical interface. Only the text version. Interface + | should respond to it. | | 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 + | IDA is done updating actions. | | updating_actions(self, *args) + | IDA is about to update all actions. If your plugin needs to + | perform expensive operations more than once (e.g., once per action it + | registers), you should do them only once, right away. + | | updating_actions(self, ctx) - | - | - | The UI is about to batch-update some actions. - | - | @param ctx: The action_update_ctx_t instance - | @return: Ignored + | @param ctx (C++: action_update_ctx_t *) | | widget_closing(self, *args) + | TWidget is about to close. This event precedes ui_widget_invisible. + | Use this to perform some possible actions relevant to the lifecycle of + | this widget + | | widget_closing(self, widget) + | @param widget (C++: TWidget *) | | widget_invisible(self, *args) + | TWidget is being closed. Use this event to destroy the window controls + | | widget_invisible(self, widget) + | @param widget (C++: TWidget *) | | widget_visible(self, *args) + | TWidget is displayed on the screen. Use this event to populate the + | window with controls + | | widget_visible(self, widget) + | @param widget (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45047,6 +52865,7 @@ class View_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> View_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -45060,40 +52879,87 @@ class View_Hooks(__builtin__.object) | unhook(self) -> bool | | view_activated(self, *args) + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, *args) + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, *args) + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_created(self, *args) + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, *args) + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, *args) + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, *args) + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, *args) + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, *args) + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, *args) + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, *args) + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, *args) + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45113,6 +52979,10 @@ class View_Hooks(__builtin__.object) | __swig_destroy__ = | 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) @@ -45147,24 +53017,34 @@ Help on function _ask_addr in module ida_kernwin: _ask_addr(*args) _ask_addr(addr, format) -> bool + addr: ea_t * + format: char const * Help on function _ask_long in module ida_kernwin: _ask_long(*args) _ask_long(value, format) -> bool + value: sval_t * + format: char const * Help on function _ask_seg in module ida_kernwin: _ask_seg(*args) _ask_seg(sel, format) -> bool + 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) + _kludge_force_declare_dirspec_t(arg1) + 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) + _kludge_force_declare_dirtree_t(arg1) + arg1: dirtree_t const * Help on class action_ctx_base_t in module ida_kernwin: @@ -45188,10 +53068,13 @@ class action_ctx_base_t(__builtin__.object) | _get_form_type(self) -> twidget_type_t | | has_flag(self, *args) + | Check if the given flag is set. + | | has_flag(self, flag) -> bool + | @param flag (C++: uint32) | | reset(self, *args) - | reset(self) + | Invalidate all context info. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45214,6 +53097,9 @@ class action_ctx_base_t(__builtin__.object) | cur_enum | action_ctx_base_t_cur_enum_get(self) -> enum_t | + | cur_enum_member + | action_ctx_base_t_cur_enum_member_get(self) -> const_t + | | cur_extracted_ea | action_ctx_base_t_cur_value_get(self) -> uval_t | @@ -45238,6 +53124,9 @@ class action_ctx_base_t(__builtin__.object) | cur_value | action_ctx_base_t_cur_value_get(self) -> uval_t | + | dirtree_selection + | action_ctx_base_t_dirtree_selection_get(self) -> dirtree_selection_t * + | | focus | action_ctx_base_t_focus_get(self) -> TWidget * | @@ -45283,6 +53172,13 @@ class action_desc_t(__builtin__.object) | | __init__(self, *args) | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t + | name: char const * + | label: char const * + | handler: PyObject * + | shortcut: char const * + | tooltip: char const * + | icon: int + | flags: int | | __repr__ = _swig_repr(self) | @@ -45311,7 +53207,7 @@ class action_desc_t(__builtin__.object) | action_desc_t_name_get(self) -> char const * | | owner - | action_desc_t_owner_get(self) -> plugin_t const * + | action_desc_t_owner_get(self) -> void const * | | shortcut | action_desc_t_shortcut_get(self) -> char const * @@ -45353,20 +53249,16 @@ class action_handler_t(__builtin__.object) 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) + activate_widget(widget, take_focus) + @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 @@ -45378,34 +53270,28 @@ add_hotkey(*args) 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 + add_idc_hotkey(hotkey, idcfunc) -> int + @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 + add_spaces(s, len) -> PyObject * + s: char const * + @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: @@ -45468,9 +53354,6 @@ class addon_info_t(__builtin__.object) 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' ) @@ -45482,38 +53365,41 @@ 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) + ask_buttons(Yes, No, Cancel, deflt, format) -> int + @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 * + @param for_saving (C++: bool) + @param defval (C++: const char *) + @param format (C++: const 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 - *) + ask_for_feedback(format) + @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: @@ -45534,8 +53420,6 @@ 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 @@ -45547,8 +53431,6 @@ 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 @@ -45559,228 +53441,220 @@ ask_text(*args) 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 . + ask_yn(deflt, format) -> int + @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 + attach_action_to_menu(menupath, name, flags) -> bool + @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 + attach_action_to_popup(widget, popup_handle, name, popuppath=None, flags=0) -> bool + @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 + attach_action_to_toolbar(toolbar_name, name) -> bool + @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 + attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=0) -> bool + @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) + banner(wait) -> bool + @param wait: time to wait before closing (C++: int) + @retval: 1 - ok + @retval: 0 - esc was pressed 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) + beep(beep_type=beep_default) + @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) + cancel_exec_request(req_id) -> bool + @param req_id: request id (C++: int) + @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) + Try to cancel asynchronous exec requests created by the specified + thread. + + cancel_thread_exec_requests(tid) -> int + @param tid: thread id (C++: qthread_t) + @return: number of the canceled requests. Help on function choose_activate in module ida_kernwin: choose_activate(*args) choose_activate(_self) + self: PyObject * Help on function choose_choose in module ida_kernwin: choose_choose(*args) choose_choose(_self) -> PyObject * + self: PyObject * Help on function choose_close in module ida_kernwin: choose_close(*args) choose_close(_self) + self: PyObject * Help on function choose_create_embedded_chobj in module ida_kernwin: choose_create_embedded_chobj(*args) choose_create_embedded_chobj(_self) -> PyObject * + 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 + choose_entry(title) -> ea_t + @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 + choose_enum(title, default_id) -> enum_t + @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 + choose_enum_by_value(title, default_id, value, nbytes) -> enum_t + @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++: uint64) + @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 * + title: char const * 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 + choose_func(title, default_ea) -> func_t * + @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 * + self: PyObject * 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 @@ -45788,85 +53662,71 @@ choose_idasgn(*args) 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 + choose_name(title) -> ea_t + @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) + self: PyObject * 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 + choose_segm(title, default_ea) -> segment_t * + @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 + choose_srcp(title) -> sreg_range_t * + @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 + choose_stkvar_xref(pfn, mptr) -> ea_t + @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 + choose_struc(title) -> struc_t * + @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 + choose_xref(to) -> ea_t + @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: @@ -45911,6 +53771,7 @@ Help on function clear_refresh_request in module ida_kernwin: clear_refresh_request(*args) clear_refresh_request(mask) + @param mask (C++: uint64) Help on class cli_t in module ida_kernwin: @@ -45926,6 +53787,43 @@ 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) @@ -45960,65 +53858,51 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) 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 + close_chooser(title) -> bool + @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) + close_widget(widget, options) + @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 *) + create_code_viewer(custview, flags=0, parent=None) -> TWidget * + @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) + create_empty_widget(title, icon=-1) -> TWidget * + @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, @@ -46040,49 +53924,44 @@ create_menu(*args) 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 + create_menu(name, label, menupath=None) -> bool + @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 + create_toolbar(name, label, before=None, flags=0) -> bool + @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 + custom_viewer_jump(v, loc, flags=0) -> bool + @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() @@ -46092,73 +53971,81 @@ del_hotkey(*args) 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 *) + del_idc_hotkey(hotkey) -> bool + @param hotkey: hotkey name (C++: const char *) + @retval: 1 - ok + @retval: 0 - failed 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 + delete_menu(name) -> bool + @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 + delete_toolbar(name) -> bool + @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 + detach_action_from_menu(menupath, name) -> bool + @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 *) + detach_action_from_popup(widget, name) -> bool + @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 + detach_action_from_toolbar(toolbar_name, name) -> bool + @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: @@ -46169,7 +54056,7 @@ class disasm_line_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> disasm_line_t - | __init__(self, other) -> disasm_line_t + | other: disasm_line_t const & | | __repr__ = _swig_repr(self) | @@ -46215,10 +54102,11 @@ class disasm_text_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> disasm_line_t + | i: size_t | | __init__(self, *args) | __init__(self) -> disasm_text_t - | __init__(self, x) -> disasm_text_t + | 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. @@ -46230,9 +54118,12 @@ class disasm_text_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: disasm_line_t const & | | at(self, *args) | at(self, _idx) -> disasm_line_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -46256,7 +54147,12 @@ class disasm_text_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> disasm_line_t + | it: qvector< disasm_line_t >::iterator + | + | | erase(self, first, last) -> disasm_line_t + | first: qvector< disasm_line_t >::iterator + | last: qvector< disasm_line_t >::iterator | | extract(self, *args) | extract(self) -> disasm_line_t @@ -46266,35 +54162,47 @@ class disasm_text_t(__builtin__.object) | | grow(self, *args) | grow(self, x=disasm_line_t()) + | x: disasm_line_t const & | | inject(self, *args) | inject(self, s, len) + | s: disasm_line_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> disasm_line_t + | it: qvector< disasm_line_t >::iterator + | x: disasm_line_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> disasm_line_t + | x: disasm_line_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: disasm_line_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< disasm_line_t > & | | truncate(self, *args) | truncate(self) @@ -46320,60 +54228,45 @@ class disasm_text_t(__builtin__.object) 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 *) + display_widget(widget, options, dest_ctrl=None) + @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) + ea2str(ea) -> str + @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) + ea_viewer_history_push_and_jump(v, ea, x, y, lnnum) -> bool + @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 @@ -46382,9 +54275,10 @@ enable_chooser_item_attrs(*args) 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 + enable_chooser_item_attrs(chooser_caption, enable) -> bool + @param chooser_caption (C++: const char *) + @param enable (C++: bool) + @return: success Help on class enumplace_t in module ida_kernwin: @@ -46431,78 +54325,183 @@ class enumplace_t(place_t) | | _print(self, *args) | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @return: number of generated lines | | id(self, *args) - | id(self) -> int + | Get the place's ID (i.e., the value returned by + | 'register_place_class()' ) | | leave(self, *args) + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | name(self) -> char const * + | Get this place type name. All instances of a given class must return + | the same string. | | next(self, *args) + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | 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) - | toea(self) -> ea_t + | Map the location to an ea_t. | | touval(self, *args) + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -46520,8 +54519,6 @@ 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 @@ -46530,8 +54527,6 @@ 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. @@ -46544,8 +54539,6 @@ 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. @@ -46557,340 +54550,306 @@ execute_ui_requests(*args) 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 + find_widget(caption) -> TWidget * + @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) + p_fa: size_t + close_normally: int Help on function formchgcbfa_enable_field in module ida_kernwin: formchgcbfa_enable_field(*args) formchgcbfa_enable_field(p_fa, fid, enable) -> bool + p_fa: size_t + fid: int + 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 * + p_fa: size_t + fid: int + ft: int + sz: size_t Help on function formchgcbfa_get_focused_field in module ida_kernwin: formchgcbfa_get_focused_field(*args) formchgcbfa_get_focused_field(p_fa) -> int + p_fa: size_t 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 + p_fa: size_t + fid: int + x: int + y: int + w: int + h: int Help on function formchgcbfa_refresh_field in module ida_kernwin: formchgcbfa_refresh_field(*args) formchgcbfa_refresh_field(p_fa, fid) + p_fa: size_t + fid: int 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 + p_fa: size_t + fid: int + ft: int + py_val: PyObject * Help on function formchgcbfa_set_focused_field in module ida_kernwin: formchgcbfa_set_focused_field(*args) formchgcbfa_set_focused_field(p_fa, fid) -> bool + p_fa: size_t + fid: int Help on function formchgcbfa_show_field in module ida_kernwin: formchgcbfa_show_field(*args) formchgcbfa_show_field(p_fa, fid, show) -> bool + p_fa: size_t + fid: int + 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) + gen_disasm_text(text, ea1, ea2, truncate_lines) + @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 + get_action_checkable(name) -> bool + @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 + get_action_checked(name) -> bool + @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 + get_action_icon(name) -> bool + @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 + get_action_label(name) -> str + @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 + get_action_shortcut(name) -> str + @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 + get_action_state(name) -> bool + @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 + get_action_tooltip(name) -> str + @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 + get_action_visibility(name) -> bool + @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 + get_addon_info(id, info) -> bool + @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 + get_addon_info_idx(index, info) -> bool + @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) + get_chooser_data(chooser_caption, n) -> PyObject * + @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 + get_chooser_obj(chooser_caption) -> void * + @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 + get_custom_viewer_curline(custom_viewer, mouse) -> char const * + @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) + get_custom_viewer_location(out, custom_viewer, mouse=False) -> 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) - 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) + get_custom_viewer_place(custom_viewer, mouse) -> place_t + @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 *) + get_ea_viewer_history_info(nback, nfwd, v) -> bool + @param nback: number of available back steps (C++: int *) + @param nfwd: number of available forward steps (C++: int *) + @param v: ea viewer (C++: TWidget *) + @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) - get_hexdump_ea(hexdump_num) -> ea_t - - Get the current address in a hex view. - @param hexdump_num: number of hexview window (C++: int) + get_hexdump_ea(hexdump_num) -> ea_t + @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 @@ -46899,39 +54858,28 @@ get_highlight(*args) 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 *) + get_key_code(keyname) -> ushort + @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) + get_navband_ea(pixel) -> ea_t + @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 @@ -46940,28 +54888,20 @@ get_navband_pixel(*args) 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 + get_output_curline(mouse) -> str + @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 @@ -46969,159 +54909,129 @@ get_output_cursor(*args) 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 + get_place_class(out_flags, out_sdk_version, id) -> place_t + @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 + get_place_class_id(name) -> int + @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) + get_place_class_template(id) -> place_t + @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_synced_group in module ida_kernwin: + +get_synced_group(*args) + Get the group of widgets/registers this view is synchronized with + + get_synced_group(w) -> synced_group_t + @param w: the widget (C++: const TWidget *) + @return: the group of widgets/registers, or NULL + 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 *) + get_tab_size(path) -> int + @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) + @param out (C++: strwinsetup_t *) 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 *) + get_view_renderer_type(v) -> tcc_renderer_type_t + @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 *) + get_viewer_place_type(viewer) -> tcc_place_type_t + @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 *) + get_viewer_user_data(viewer) -> void * + @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 *) + get_widget_title(widget) -> str + @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 *) + get_widget_type(widget) -> twidget_type_t + @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 + get_window_id(name=None) -> void * + @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: @@ -47160,78 +55070,183 @@ class idaplace_t(place_t) | | _print(self, *args) | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @return: number of generated lines | | id(self, *args) - | id(self) -> int + | Get the place's ID (i.e., the value returned by + | 'register_place_class()' ) | | leave(self, *args) + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | name(self) -> char const * + | Get this place type name. All instances of a given class must return + | the same string. | | next(self, *args) + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | 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) - | toea(self) -> ea_t + | Map the location to an ea_t. | | touval(self, *args) + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -47249,79 +55264,68 @@ Help on function info in module ida_kernwin: info(*args) info(format) + @param format (C++: const char *) 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' ) + + install_command_interpreter(py_obj) -> int + py_obj: PyObject * 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 + @param tmplate (C++: const place_t *) + @param flags (C++: int) + @param owner (C++: const plugin_t *) + @param sdk_version (C++: 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) + is_action_enabled(s) -> bool + @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) + is_chooser_widget(t) -> bool + @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) + is_place_class_ea_capable(id) -> bool + @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) + is_refresh_requested(mask) -> bool + @param mask: Window refresh flags (C++: uint64) + @return: the state (set or cleared) Help on class jobj_wrapper_t in module ida_kernwin: @@ -47352,16 +55356,342 @@ class jobj_wrapper_t(__builtin__.object) 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 + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + @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 + + + jumpto(custom_viewer, place, x, y) -> bool + custom_viewer: TWidget * + place: place_t * + x: int + y: int + @return: success + +Help on class line_rendering_output_entries_refs_t in module ida_kernwin: + +class line_rendering_output_entries_refs_t(__builtin__.object) + | Proxy of C++ qvector< line_rendering_output_entry_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< line_rendering_output_entry_t * > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> line_rendering_output_entry_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> line_rendering_output_entries_refs_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< line_rendering_output_entry_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: line_rendering_output_entry_t *const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: line_rendering_output_entry_t *const & + | + | _internal_push_back(self, *args) + | _internal_push_back(self, e) + | e: line_rendering_output_entry_t * + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: line_rendering_output_entry_t *const & + | + | at(self, *args) + | at(self, _idx) -> line_rendering_output_entry_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> qvector< line_rendering_output_entry_t * >::iterator + | begin(self) -> qvector< line_rendering_output_entry_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< line_rendering_output_entry_t * >::iterator + | end(self) -> qvector< line_rendering_output_entry_t * >::const_iterator + | + | erase(self, *args) + | erase(self, it) -> qvector< line_rendering_output_entry_t * >::iterator + | it: qvector< line_rendering_output_entry_t * >::iterator + | + | + | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator + | first: qvector< line_rendering_output_entry_t * >::iterator + | last: qvector< line_rendering_output_entry_t * >::iterator + | + | extract(self, *args) + | extract(self) -> line_rendering_output_entry_t ** + | + | find(self, *args) + | find(self, x) -> qvector< line_rendering_output_entry_t * >::iterator + | x: line_rendering_output_entry_t *const & + | + | + | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator + | x: line_rendering_output_entry_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) + | has(self, x) -> bool + | x: line_rendering_output_entry_t *const & + | + | inject(self, *args) + | inject(self, s, len) + | s: line_rendering_output_entry_t ** + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator + | it: qvector< line_rendering_output_entry_t * >::iterator + | x: line_rendering_output_entry_t *const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, e) + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: line_rendering_output_entry_t *const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< line_rendering_output_entry_t * > & + | + | 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__ = bool + | r: line_rendering_output_entry_t const & + | + | __init__(self, *args) + | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t + | _line: twinline_t const * + | _flags: uint32 + | _bg_color: bgcolor_t + | + | + | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t + | _line: twinline_t const * + | _cpx: int + | _nchars: int + | _flags: uint32 + | _bg_color: bgcolor_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: line_rendering_output_entry_t const & + | + | __repr__ = _swig_repr(self) + | + | is_bg_color_direct(self, *args) + | is_bg_color_direct(self) -> bool + | + | is_bg_color_empty(self, *args) + | is_bg_color_empty(self) -> bool + | + | is_bg_color_key(self, *args) + | 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 + | line_rendering_output_entry_t_bg_color_get(self) -> bgcolor_t + | + | cpx + | line_rendering_output_entry_t_cpx_get(self) -> int + | + | flags + | line_rendering_output_entry_t_flags_get(self) -> uint32 + | + | line + | line_rendering_output_entry_t_line_get(self) -> twinline_t + | + | nchars + | line_rendering_output_entry_t_nchars_get(self) -> int + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = lines_rendering_input_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 + | lines_rendering_input_t_cb_get(self) -> int + | + | sections_lines + | lines_rendering_input_t_sections_lines_get(self) -> sections_lines_refs_t + | + | sync_group + | lines_rendering_input_t_sync_group_get(self) -> synced_group_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_lines_rendering_input_t(self) + +Help on class lines_rendering_output_t in module ida_kernwin: + +class lines_rendering_output_t(__builtin__.object) + | Proxy of C++ lines_rendering_output_t class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: lines_rendering_output_t const & + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_output_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: lines_rendering_output_t const & + | + | __repr__ = _swig_repr(self) + | + | clear(self, *args) + | clear(self) + | + | swap(self, *args) + | swap(self, r) + | @param r (C++: 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 + | lines_rendering_output_t_entries_get(self) -> line_rendering_output_entries_refs_t + | + | flags + | lines_rendering_output_t_flags_get(self) -> uint32 + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_lines_rendering_output_t(self) Help on function load_custom_icon in module ida_kernwin: @@ -47376,44 +55706,32 @@ load_custom_icon(file_name=None, data=None, format=None) @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) + load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool + @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) + lookup_key_code(key, shift, is_qt) -> ushort + @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 @@ -47426,342 +55744,261 @@ msg(*args) 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) + msg_get_lines(count=-1) -> PyObject * + @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 + msg_save(path) -> bool + @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) + @param format (C++: const char *) 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 + open_bpts_window(ea) -> TWidget * + @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 + open_calls_window(ea) -> TWidget * + @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 + open_disasm_window(window_title, ranges=None) -> TWidget * + @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 + open_enums_window(const_id=BADADDR) -> TWidget * + @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 + open_exports_window(ea) -> TWidget * + @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 + open_frame_window(pfn, offset) -> TWidget * + @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 + open_funcs_window(ea) -> TWidget * + @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 + open_hexdump_window(window_title) -> TWidget * + @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 + open_imports_window(ea) -> TWidget * + @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 + open_loctypes_window(ordinal) -> TWidget * + @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 + open_names_window(ea) -> TWidget * + @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 + open_navband_window(ea, zoom) -> TWidget * + @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 + open_problems_window(ea) -> TWidget * + @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 + open_segments_window(ea) -> TWidget * + @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 + open_segregs_window(ea) -> TWidget * + @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 + open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * + @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 + open_structs_window(id=BADADDR, offset=0) -> TWidget * + @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 *) + open_url(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 + open_xrefs_window(ea) -> TWidget * + @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: @@ -47776,78 +56013,183 @@ class place_t(__builtin__.object) | | _print(self, *args) | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @return: number of generated lines | | id(self, *args) - | id(self) -> int + | Get the place's ID (i.e., the value returned by + | 'register_place_class()' ) | | leave(self, *args) + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | name(self) -> char const * + | Get this place type name. All instances of a given class must return + | the same string. | | next(self, *args) + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | 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) - | toea(self) -> ea_t + | Map the location to an ea_t. | | touval(self, *args) + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods defined here: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -47874,31 +56216,38 @@ 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 + p: place_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 + p: place_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 + p: 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 + p: place_t * Help on function plgform_close in module ida_kernwin: plgform_close(*args) plgform_close(py_link, options) + py_link: PyObject * + options: int Help on function plgform_get_widget in module ida_kernwin: plgform_get_widget(*args) plgform_get_widget(py_link) -> TWidget * + py_link: PyObject * Help on function plgform_new in module ida_kernwin: @@ -47909,13 +56258,15 @@ 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 + py_link: PyObject * + py_obj: PyObject * + caption: char const * + options: int 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 @@ -47935,148 +56286,192 @@ 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 + data: PyObject * + format: char const * 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 + filename: char const * Help on function py_register_compiled_form in module ida_kernwin: py_register_compiled_form(*args) py_register_compiled_form(py_form) + py_form: PyObject * Help on function py_ss_restore_callback in module ida_kernwin: py_ss_restore_callback(*args) py_ss_restore_callback(err_msg, userdata) + err_msg: char const * + userdata: void * Help on function py_unregister_compiled_form in module ida_kernwin: py_unregister_compiled_form(*args) py_unregister_compiled_form(py_form) + py_form: PyObject * Help on function pyidag_bind in module ida_kernwin: pyidag_bind(*args) pyidag_bind(_self) -> bool + self: PyObject * Help on function pyidag_unbind in module ida_kernwin: pyidag_unbind(*args) pyidag_unbind(_self) -> bool + self: PyObject * Help on function pyscv_add_line in module ida_kernwin: pyscv_add_line(*args) pyscv_add_line(py_this, py_sl) -> bool + py_this: PyObject * + py_sl: PyObject * Help on function pyscv_clear_lines in module ida_kernwin: pyscv_clear_lines(*args) pyscv_clear_lines(py_this) -> PyObject * + py_this: PyObject * Help on function pyscv_close in module ida_kernwin: pyscv_close(*args) pyscv_close(py_this) + py_this: PyObject * Help on function pyscv_count in module ida_kernwin: pyscv_count(*args) pyscv_count(py_this) -> size_t + py_this: PyObject * Help on function pyscv_del_line in module ida_kernwin: pyscv_del_line(*args) pyscv_del_line(py_this, nline) -> bool + py_this: PyObject * + nline: size_t Help on function pyscv_edit_line in module ida_kernwin: pyscv_edit_line(*args) pyscv_edit_line(py_this, nline, py_sl) -> bool + py_this: PyObject * + nline: size_t + py_sl: PyObject * 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 * + py_this: PyObject * + mouse: bool + notags: bool Help on function pyscv_get_current_word in module ida_kernwin: pyscv_get_current_word(*args) pyscv_get_current_word(py_this, mouse) -> PyObject * + py_this: PyObject * + mouse: bool Help on function pyscv_get_line in module ida_kernwin: pyscv_get_line(*args) pyscv_get_line(py_this, nline) -> PyObject * + py_this: PyObject * + nline: size_t Help on function pyscv_get_pos in module ida_kernwin: pyscv_get_pos(*args) pyscv_get_pos(py_this, mouse) -> PyObject * + py_this: PyObject * + mouse: bool Help on function pyscv_get_selection in module ida_kernwin: pyscv_get_selection(*args) pyscv_get_selection(py_this) -> PyObject * + py_this: PyObject * Help on function pyscv_get_widget in module ida_kernwin: pyscv_get_widget(*args) pyscv_get_widget(py_this) -> TWidget * + py_this: PyObject * Help on function pyscv_init in module ida_kernwin: pyscv_init(*args) pyscv_init(py_link, title) -> PyObject * + py_link: PyObject * + title: char const * Help on function pyscv_insert_line in module ida_kernwin: pyscv_insert_line(*args) pyscv_insert_line(py_this, nline, py_sl) -> bool + py_this: PyObject * + nline: size_t + py_sl: PyObject * Help on function pyscv_is_focused in module ida_kernwin: pyscv_is_focused(*args) pyscv_is_focused(py_this) -> bool + py_this: PyObject * Help on function pyscv_jumpto in module ida_kernwin: pyscv_jumpto(*args) pyscv_jumpto(py_this, ln, x, y) -> bool + py_this: PyObject * + ln: size_t + x: int + y: int Help on function pyscv_patch_line in module ida_kernwin: pyscv_patch_line(*args) pyscv_patch_line(py_this, nline, offs, value) -> bool + py_this: PyObject * + nline: size_t + offs: size_t + value: int Help on function pyscv_refresh in module ida_kernwin: pyscv_refresh(*args) pyscv_refresh(py_this) -> bool + py_this: PyObject * Help on function pyscv_show in module ida_kernwin: pyscv_show(*args) pyscv_show(py_this) -> bool + py_this: PyObject * 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 + qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str + @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: @@ -48103,21 +56498,19 @@ class quick_widget_commands_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 *) + read_range_selection(v) -> bool + @param v: view, NULL means the last active window containing addresses + (C++: TWidget *) + @retval: 0 - no range is selected + @retval: 1 - ok, start ea and end ea are filled 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: @@ -48151,14 +56544,12 @@ read_selection(*args) 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 + refresh_chooser(title) -> bool + @param title: title of chooser (C++: const char *) + @return: success Help on function refresh_choosers in module ida_kernwin: @@ -48168,36 +56559,25 @@ refresh_choosers(*args) 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) + refresh_navband(force) + @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 ( @@ -48206,47 +56586,43 @@ register_action(*args) 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 + register_action(desc) -> bool + @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 *) + register_addon(info) -> int + @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 *) + register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner, action_desc_t_flags) -> bool + @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++: void *) + @param action_desc_t_flags (C++: int) 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 @@ -48259,10 +56635,10 @@ register_timer(*args) 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' ) + + remove_command_interpreter(cli_idx) + cli_idx: int Help on class renderer_pos_info_t in module ida_kernwin: @@ -48273,12 +56649,14 @@ class renderer_pos_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: renderer_pos_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_pos_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: renderer_pos_info_t const & | | __repr__ = _swig_repr(self) | @@ -48315,173 +56693,454 @@ class renderer_pos_info_t(__builtin__.object) 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 *) + repaint_custom_viewer(custom_viewer) + @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 *) + replace_wait_box(format) + @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) + request_refresh(mask, cnd=True) + @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. + restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> PyObject * + @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const + snapshot_t *) + pyfunc_or_none: PyObject * + pytuple_or_none: PyObject * + @return: false if restoration could not be started (snapshot file was + not found). If the returned value is True then check if + the operation succeeded from the callback. + +Help on class section_lines_refs_t in module ida_kernwin: + +class section_lines_refs_t(__builtin__.object) + | Proxy of C++ qvector< twinline_t const * > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< twinline_t const * > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> twinline_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> section_lines_refs_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< twinline_t const * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: twinline_t const *const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: twinline_t const *const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: twinline_t const *const & + | + | at(self, *args) + | at(self, _idx) -> twinline_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> qvector< twinline_t const * >::iterator + | begin(self) -> qvector< twinline_t const * >::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< twinline_t const * >::iterator + | end(self) -> qvector< twinline_t const * >::const_iterator + | + | erase(self, *args) + | erase(self, it) -> qvector< twinline_t const * >::iterator + | it: qvector< twinline_t const * >::iterator + | + | + | erase(self, first, last) -> qvector< twinline_t const * >::iterator + | first: qvector< twinline_t const * >::iterator + | last: qvector< twinline_t const * >::iterator + | + | extract(self, *args) + | extract(self) -> twinline_t const ** + | + | find(self, *args) + | find(self, x) -> qvector< twinline_t const * >::iterator + | x: twinline_t const *const & + | + | + | find(self, x) -> qvector< twinline_t const * >::const_iterator + | x: twinline_t const *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) + | has(self, x) -> bool + | x: twinline_t const *const & + | + | inject(self, *args) + | inject(self, s, len) + | s: twinline_t const ** + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> qvector< twinline_t const * >::iterator + | it: qvector< twinline_t const * >::iterator + | x: twinline_t const *const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: twinline_t const *const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: twinline_t const *const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< twinline_t const * > & + | + | 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_section_lines_refs_t(self) + +Help on class sections_lines_refs_t in module ida_kernwin: + +class sections_lines_refs_t(__builtin__.object) + | Proxy of C++ qvector< section_lines_refs_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< section_lines_refs_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> section_lines_refs_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> sections_lines_refs_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< section_lines_refs_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: section_lines_refs_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: section_lines_refs_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: section_lines_refs_t const & + | + | at(self, *args) + | at(self, _idx) -> section_lines_refs_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> qvector< section_lines_refs_t >::iterator + | begin(self) -> qvector< section_lines_refs_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< section_lines_refs_t >::iterator + | end(self) -> qvector< section_lines_refs_t >::const_iterator + | + | erase(self, *args) + | erase(self, it) -> qvector< section_lines_refs_t >::iterator + | it: qvector< section_lines_refs_t >::iterator + | + | + | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator + | first: qvector< section_lines_refs_t >::iterator + | last: qvector< section_lines_refs_t >::iterator + | + | extract(self, *args) + | extract(self) -> section_lines_refs_t + | + | find(self, *args) + | find(self, x) -> qvector< section_lines_refs_t >::iterator + | x: section_lines_refs_t const & + | + | + | find(self, x) -> qvector< section_lines_refs_t >::const_iterator + | x: section_lines_refs_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=section_lines_refs_t()) + | x: section_lines_refs_t const & + | + | has(self, *args) + | has(self, x) -> bool + | x: section_lines_refs_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: section_lines_refs_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator + | it: qvector< section_lines_refs_t >::iterator + | x: section_lines_refs_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: section_lines_refs_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: section_lines_refs_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< section_lines_refs_t > & + | + | 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_sections_lines_refs_t(self) 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 + set_code_viewer_handler(code_viewer, handler_id, handler_or_data) -> void * + @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 *) + set_code_viewer_is_source(code_viewer) -> bool + @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 *) + set_code_viewer_line_handlers(code_viewer, click_handler, popup_handler, dblclick_handler, drawicon_handler, linenum_handler) + @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) + set_code_viewer_lines_alignment(code_viewer, align) -> bool + @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) + set_code_viewer_lines_icon_margin(code_viewer, margin) -> bool + @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) + set_code_viewer_lines_radix(code_viewer, radix) -> bool + @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 *) + set_code_viewer_user_data(code_viewer, ud) -> bool + @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 *) + set_custom_viewer_qt_aware(custom_viewer) -> bool + @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 @@ -48496,24 +57155,20 @@ set_dock_pos(*args) 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 + set_highlight(viewer, str, flags) -> bool + @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: @@ -48543,21 +57198,15 @@ set_nav_colorizer(*args) 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) + set_view_renderer_type(v, rt) + @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 @@ -48573,6 +57222,9 @@ show_wait_box(*args) currently displayed,alternatively it can call 'replace_wait_box()' , to replace the text of thedialog without pushing the currently- displayed text on the stack. + + show_wait_box(message) + message: char const * Help on class simplecustviewer_t in module ida_kernwin: @@ -48730,78 +57382,183 @@ class simpleline_place_t(place_t) | | _print(self, *args) | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @return: number of generated lines | | id(self, *args) - | id(self) -> int + | Get the place's ID (i.e., the value returned by + | 'register_place_class()' ) | | leave(self, *args) + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | name(self) -> char const * + | Get this place type name. All instances of a given class must return + | the same string. | | next(self, *args) + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | 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) - | toea(self) -> ea_t + | Map the location to an ea_t. | | touval(self, *args) + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -48824,8 +57581,12 @@ class simpleline_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> simpleline_t - | __init__(self, c, str) -> simpleline_t + | c: color_t + | str: char const * + | + | | __init__(self, str) -> simpleline_t + | str: char const * | | __repr__ = _swig_repr(self) | @@ -48860,8 +57621,6 @@ 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 @@ -48870,8 +57629,6 @@ 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 @@ -48879,17 +57636,15 @@ str2user(*args) 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) + strarray(array, array_size, code) -> char const * + @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: @@ -48966,78 +57721,183 @@ class structplace_t(place_t) | | _print(self, *args) | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @return: number of generated lines | | id(self, *args) - | id(self) -> int + | Get the place's ID (i.e., the value returned by + | 'register_place_class()' ) | | leave(self, *args) + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | name(self) -> char const * + | Get this place type name. All instances of a given class must return + | the same string. | | next(self, *args) + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | 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) - | toea(self) -> ea_t + | Map the location to an ea_t. | | touval(self, *args) + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -49060,13 +57920,19 @@ class sync_source_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, _o) -> bool + | _o: sync_source_t const & | | __init__(self, *args) | __init__(self, _view) -> sync_source_t + | _view: TWidget const * + | + | | __init__(self, _regname) -> sync_source_t + | _regname: char const * | | __ne__(self, *args) | __ne__(self, _o) -> bool + | _o: sync_source_t const & | | __repr__ = _swig_repr(self) | @@ -49100,30 +57966,470 @@ class sync_source_t(__builtin__.object) | __swig_destroy__ = | delete_sync_source_t(self) +Help on class sync_source_vec_t in module ida_kernwin: + +class sync_source_vec_t(__builtin__.object) + | Proxy of C++ qvector< sync_source_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> sync_source_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> sync_source_vec_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< sync_source_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: sync_source_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: sync_source_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: sync_source_t const & + | + | at(self, *args) + | at(self, _idx) -> sync_source_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> sync_source_t + | begin(self) -> sync_source_t + | + | capacity(self, *args) + | capacity(self) -> size_t + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> sync_source_t + | end(self) -> sync_source_t + | + | erase(self, *args) + | erase(self, it) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | + | + | erase(self, first, last) -> sync_source_t + | first: qvector< sync_source_t >::iterator + | last: qvector< sync_source_t >::iterator + | + | extract(self, *args) + | extract(self) -> sync_source_t + | + | find(self, *args) + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) + | has(self, x) -> bool + | x: sync_source_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: sync_source_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | x: sync_source_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: sync_source_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< sync_source_t > & + | + | 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_sync_source_vec_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 + sync_sources(what, _with, sync) -> 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 + | __builtin__.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> synced_group_t + | + | __repr__ = _swig_repr(self) + | + | has(self, *args) + | has(self, ss) -> bool + | @param ss (C++: const sync_source_t &) + | + | has_register(self, *args) + | has_register(self, r) -> bool + | @param r (C++: const char *) + | + | has_widget(self, *args) + | has_widget(self, v) -> bool + | @param v (C++: const TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_synced_group_t(self) + | + | ---------------------------------------------------------------------- + | Methods inherited from sync_source_vec_t: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> sync_source_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< sync_source_t > const & + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: sync_source_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: sync_source_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: sync_source_t const & + | + | at(self, *args) + | at(self, _idx) -> sync_source_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> sync_source_t + | begin(self) -> sync_source_t + | + | capacity(self, *args) + | capacity(self) -> size_t + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> sync_source_t + | end(self) -> sync_source_t + | + | erase(self, *args) + | erase(self, it) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | + | + | erase(self, first, last) -> sync_source_t + | first: qvector< sync_source_t >::iterator + | last: qvector< sync_source_t >::iterator + | + | extract(self, *args) + | extract(self) -> sync_source_t + | + | find(self, *args) + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | inject(self, *args) + | inject(self, s, len) + | s: sync_source_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | x: sync_source_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: sync_source_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< sync_source_t > & + | + | truncate(self, *args) + | 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) 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 + take_database_snapshot(ss) -> PyObject * + @param ss: in/out parameter. in: description, flags out: filename, + id (C++: snapshot_t *) + @return: success + +Help on class text_t in module ida_kernwin: + +class text_t(__builtin__.object) + | Proxy of C++ qvector< twinline_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) + | __getitem__(self, i) -> twinline_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> text_t + | 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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: twinline_t const & + | + | at(self, *args) + | at(self, _idx) -> twinline_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> twinline_t + | begin(self) -> twinline_t + | + | capacity(self, *args) + | capacity(self) -> size_t + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> twinline_t + | end(self) -> twinline_t + | + | erase(self, *args) + | erase(self, it) -> twinline_t + | it: qvector< twinline_t >::iterator + | + | + | erase(self, first, last) -> twinline_t + | first: qvector< twinline_t >::iterator + | last: qvector< twinline_t >::iterator + | + | extract(self, *args) + | extract(self) -> twinline_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=twinline_t()) + | x: twinline_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: twinline_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> twinline_t + | it: qvector< twinline_t >::iterator + | x: twinline_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: twinline_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: twinline_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< twinline_t > & + | + | 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_text_t(self) Help on class textctrl_info_t in module ida_kernwin: @@ -49234,6 +58540,8 @@ Help on function textctrl_info_t_assign in module ida_kernwin: textctrl_info_t_assign(*args) textctrl_info_t_assign(_self, other) -> bool + self: PyObject * + other: PyObject * Help on function textctrl_info_t_create in module ida_kernwin: @@ -49244,46 +58552,106 @@ Help on function textctrl_info_t_destroy in module ida_kernwin: textctrl_info_t_destroy(*args) textctrl_info_t_destroy(py_obj) -> bool + py_obj: PyObject * 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 * + self: PyObject * 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 * + 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 + self: PyObject * 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 + self: PyObject * 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 * + self: PyObject * 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 + self: PyObject * + flags: unsigned int 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 + self: PyObject * + tabsize: unsigned int 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 + self: PyObject * + s: char const * + +Help on class twinline_t in module ida_kernwin: + +class twinline_t(__builtin__.object) + | Proxy of C++ twinline_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> twinline_t + | t: place_t * + | pc: color_t + | bc: bgcolor_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 + | twinline_t_at_get(self) -> place_t + | + | bg_color + | twinline_t_bg_color_get(self) -> bgcolor_t + | + | is_default + | twinline_t_is_default_get(self) -> bool + | + | line + | twinline_t_line_get(self) -> qstring * + | + | prefix_color + | twinline_t_prefix_color_get(self) -> color_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_twinline_t(self) Help on class twinpos_t in module ida_kernwin: @@ -49292,16 +58660,14 @@ class twinpos_t(__builtin__.object) | | Methods defined here: | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | | __init__(self, *args) | __init__(self) -> twinpos_t - | __init__(self, t) -> twinpos_t + | t: place_t * + | + | | __init__(self, t, x0) -> twinpos_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool + | t: place_t * + | x0: int | | __repr__ = _swig_repr(self) | @@ -49342,21 +58708,21 @@ class twinpos_t(__builtin__.object) 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 **) + ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool + @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 **) + @retval: true - file was successfully loaded + @retval: false - otherwise Help on class ui_requests_t in module ida_kernwin: @@ -49391,43 +58757,34 @@ class ui_requests_t(__builtin__.object) 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 + ui_run_debugger(dbgopts, exename, argc, argv) -> bool + @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 + unregister_action(name) -> bool + @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() @@ -49437,105 +58794,86 @@ unregister_timer(*args) 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 + update_action_checkable(name, checkable) -> bool + @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 + update_action_checked(name, checked) -> bool + @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 + update_action_icon(name, icon) -> bool + @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 + update_action_label(name, label) -> bool + @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 + update_action_shortcut(name, shortcut) -> bool + @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 + update_action_state(name, state) -> bool + @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 + update_action_tooltip(name, tooltip) -> bool + @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 + update_action_visibility(name, visible) -> bool + @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: @@ -49629,8 +58967,6 @@ 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) @@ -49640,6 +58976,11 @@ warning(*args) the screen === ida_kernwin EPYDOC INJECTIONS === +ida_kernwin.ACF_HAS_FIELD_DIRTREE_SELECTION +""" +'cur_enum_member' and 'dirtree_selection' fields are present +""" + ida_kernwin.ACF_HAS_SELECTION """ there is currently a valid selection @@ -49650,6 +58991,20 @@ ida_kernwin.ACF_XTRN_EA cur_ea is in 'externs' segment """ +ida_kernwin.ADF_GLOBAL +""" +available even if no IDB is present + +Register the action globally, so that it's +""" + +ida_kernwin.ADF_NO_HIGHLIGHT +""" +according to what's under the cursor (listings only.) + +After activating, do not update the highlight +""" + ida_kernwin.ADF_NO_UNDO """ useful for actions that do not modify the database. @@ -49657,6 +59012,26 @@ useful for actions that do not modify the database. the action does not create an undo point. """ +ida_kernwin.ADF_OT_MASK +""" +Owner type mask. +""" + +ida_kernwin.ADF_OT_PLUGIN +""" +Owner is a 'plugin_t' . +""" + +ida_kernwin.ADF_OT_PLUGMOD +""" +Owner is a 'plugmod_t' . +""" + +ida_kernwin.ADF_OT_PROCMOD +""" +Owner is a 'procmod_t' . +""" + ida_kernwin.ADF_OWN_HANDLER """ handler is owned by the action; it'll be destroyed when the action is @@ -50012,6 +59387,13 @@ ida_kernwin.CHCOL_DEFHIDDEN column should be hidden by default """ +ida_kernwin.CHCOL_DRAGHINT +""" +the column number that will be used to build hints for the dragging +undo label. This should be provided for at most one column for any +given chooser. +""" + ida_kernwin.CHCOL_EA """ address @@ -50032,6 +59414,13 @@ ida_kernwin.CHCOL_HEX hexadecimal number """ +ida_kernwin.CHCOL_INODENAME +""" +if CH_HAS_DIRTREE has been specified, this instructs the chooser that +this column shows the inode name. This should be provided for at most +one column for any given chooser. +""" + ida_kernwin.CHCOL_PATH """ file path @@ -50139,6 +59528,12 @@ if a non-modal chooser was already open, change selection to the default one """ +ida_kernwin.CH_HAS_DIRTREE +""" +The chooser can provide a 'dirtree_t' , meaning a tree-like structure +can be provided to the user (instead of a flat table) +""" + ida_kernwin.CH_KEEP """ The chooser instance's lifecycle is not tied to the lifecycle of the @@ -50215,6 +59610,111 @@ restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) """ +ida_kernwin.CH_TM_FOLDERS_ONLY +""" +chooser will show in folders-only mode +""" + +ida_kernwin.CH_TM_FULL_TREE +""" +chooser will show in no-tree mode +""" + +ida_kernwin.CH_TM_NO_TREE +""" +chooser will show up in no-tree mode +""" + +ida_kernwin.CK_EXTRA1 +""" +extra background overlay #1 +""" + +ida_kernwin.CK_EXTRA10 +""" +extra background overlay #10 +""" + +ida_kernwin.CK_EXTRA11 +""" +extra background overlay #11 +""" + +ida_kernwin.CK_EXTRA12 +""" +extra background overlay #12 +""" + +ida_kernwin.CK_EXTRA13 +""" +extra background overlay #13 +""" + +ida_kernwin.CK_EXTRA14 +""" +extra background overlay #14 +""" + +ida_kernwin.CK_EXTRA15 +""" +extra background overlay #15 +""" + +ida_kernwin.CK_EXTRA16 +""" +extra background overlay #16 +""" + +ida_kernwin.CK_EXTRA2 +""" +extra background overlay #2 +""" + +ida_kernwin.CK_EXTRA3 +""" +extra background overlay #3 +""" + +ida_kernwin.CK_EXTRA4 +""" +extra background overlay #4 +""" + +ida_kernwin.CK_EXTRA5 +""" +extra background overlay #5 +""" + +ida_kernwin.CK_EXTRA6 +""" +extra background overlay #6 +""" + +ida_kernwin.CK_EXTRA7 +""" +extra background overlay #7 +""" + +ida_kernwin.CK_EXTRA8 +""" +extra background overlay #8 +""" + +ida_kernwin.CK_EXTRA9 +""" +extra background overlay #9 +""" + +ida_kernwin.CK_TRACE +""" +traced address +""" + +ida_kernwin.CK_TRACE_OVL +""" +overlay trace address +""" + ida_kernwin.CLNL_FINDCMT """ Search for the comment symbol everywhere in the line, not only at the @@ -50622,6 +60122,16 @@ ida_kernwin.IWID_XREFS xrefs (18) """ +ida_kernwin.LROEF_CPS_RANGE +""" +background for range of chars +""" + +ida_kernwin.LROEF_FULL_LINE +""" +full line background +""" + ida_kernwin.MFF_FAST """ Execute code as soon as possible. this mode is ok for calling ui @@ -50632,10 +60142,10 @@ 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. +not, the request will be ignored. the request must be created using +the 'new' operator to use it with this flag. it can be used in +'cancel_exec_request()' . This flag can be used to delay the code +execution until the next UI loop run even from the main thread. """ ida_kernwin.MFF_READ @@ -50655,6 +60165,19 @@ 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.PCF_EA_CAPABLE +""" +toea() implementation returns meaningful data +""" + +ida_kernwin.PCF_MAKEPLACE_ALLOCATES +""" +makeplace() returns a freshly allocated (i.e., non-static) instance. +All new code should pass that flag to 'register_place_class()' , and +the corresponding makeplace() class implementation should return new +instances. +""" + ida_kernwin.SETMENU_APP """ add menu item after the specified path @@ -50715,161 +60238,114 @@ COLSTR(str, tag) 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 + add_extra_cmt(ea, isprev, format) -> bool + @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 + add_extra_line(ea, isprev, format) -> bool + @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 + add_pgm_cmt(format) -> 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_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) + add_sourcefile(ea1, ea2, filename) -> bool + @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 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 + calc_bg_color(ea) -> bgcolor_t + @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 + calc_prefix_color(ea) -> color_t + @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 * + encidx: int + nr: enum encoder_t::notify_recerr_t Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) del_extra_cmt(ea, what) + ea: ea_t + what: int 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 + del_sourcefile(ea) -> bool + @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) + ea: ea_t + what: int Help on function generate_disasm_line in module ida_lines: generate_disasm_line(*args) generate_disasm_line(ea, flags=0) -> str + ea: ea_t + flags: int 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 @@ -50884,25 +60360,43 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) get_extra_cmt(ea, what) -> ssize_t + ea: ea_t + what: int 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 + ea: ea_t + 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 + get_sourcefile(ea, bounds=None) -> char const * + @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 install_user_defined_prefix in module ida_lines: + +install_user_defined_prefix(*args) + 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. + + install_user_defined_prefix(prefix_len, udp, owner) -> bool + @param prefix_len: prefixed length. if 0, then uninstall UDP (C++: + size_t) + @param udp: object to generate user-defined prefix (C++: struct + user_defined_prefix_t *) + @param owner: pointer to the plugin_t that owns UDP if non-NULL, + then the object will be uninstalled and destroyed when + the plugin gets unloaded (C++: const void *) Help on function requires_color_esc in module ida_lines: @@ -50910,107 +60404,128 @@ 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 + Deprecated. Please use install_user_defined_prefix() instead 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) + tag_addr(ea) -> PyObject * + @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 + tag_advance(line, cnt) -> int + @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) + Remove color escape sequences from a string. + 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 + nonnul_instr: char const * + @return: length of resulting string, -1 if error 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 + tag_skipcode(line) -> int + @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 + tag_skipcodes(line) -> int + @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 + tag_strlen(line) -> ssize_t + @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) + ea: ea_t + what: int + str: char const * + +Help on class user_defined_prefix_t in module ida_lines: + +class user_defined_prefix_t(__builtin__.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 + | prefix_len: size_t + | owner: void const * + | + | __repr__ = _swig_repr(self) + | + | get_user_defined_prefix(self, *args) + | This callback must be overridden by the derived class. + | + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) + | @param ea: the current address (C++: ea_t) + | @param insn: the current instruction. if the current item is not an + | instruction, then insn.itype is zero. - an + | ida_ua.insn_t, or an address (C++: const insn_t &) + | @param lnnum (C++: int) + | @param indent: see explanations for gen_printf() (C++: int) + | @param line: the line to be generated. the line usually contains color + | tags. this argument can be examined to decide whether to + | generate the prefix. (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for 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_defined_prefix_t(self) === ida_lines EPYDOC INJECTIONS === ida_lines.COLOR_ADDR_SIZE @@ -51333,193 +60848,169 @@ Void operand. 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 + base2file(fp, pos, ea1, ea2) -> int + @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 + build_snapshot_tree(root) -> bool + @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) + @param dbfl (C++: uint32) 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) + extract_module_from_archive(fname, is_remote=False) -> PyObject * + fname: char const * + @param is_remote: is the input file remote? (C++: bool) + @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) - 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) + file2base(li, pos, ea1, ea2, patchable) -> int + @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) + @retval: 1 - ok + @retval: 0 - read error, a warning is displayed 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 + find_plugin(name, load_if_needed=False) -> plugin_t * + @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 + gen_exe_file(fp) -> int + @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 + @retval: 1 - ok + @retval: 0 - failed 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 + gen_file(otype, fp, ea1, ea2, flags) -> int + @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 + @retval: 0 - can't generate exe file + @retval: 1 - ok 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 *) + get_basic_file_type(li) -> filetype_t + @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) + get_fileregion_ea(offset) -> ea_t + @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) + get_fileregion_offset(ea) -> qoff64_t + @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 + get_path(pt) -> char const * + @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 *) + get_plugin_options(plugin) -> char const * + @param plugin (C++: const char *) Help on class idp_desc_t in module ida_loader: @@ -51611,62 +61102,51 @@ class idp_name_t(__builtin__.object) 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) + is_database_flag(dbfl) -> bool + @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) + load_and_run_plugin(name, arg) -> bool + @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) + load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool + @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) + @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) - 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, @@ -51674,14 +61154,16 @@ load_ids_module(*args) 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 *) + load_ids_module(fname) -> int + @param fname: name of file to apply (C++: char *) + @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) load_plugin(name) -> PyObject * - - Loads a plugin @return: - None if plugin could not be loaded @@ -51727,8 +61209,6 @@ 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 @@ -51804,20 +61284,18 @@ class plugin_info_t(__builtin__.object) 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 *) + process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str + @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: @@ -51828,13 +61306,15 @@ class qvector_snapshotvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< snapshot_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> snapshot_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_snapshotvec_t - | __init__(self, x) -> qvector_snapshotvec_t + | x: qvector< snapshot_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -51844,20 +61324,26 @@ class qvector_snapshotvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< snapshot_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: snapshot_t *const & | | _del(self, *args) | _del(self, x) -> bool + | x: snapshot_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: snapshot_t *const & | | at(self, *args) | at(self, _idx) -> snapshot_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -51881,49 +61367,70 @@ class qvector_snapshotvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< snapshot_t * >::iterator + | it: qvector< snapshot_t * >::iterator + | + | | erase(self, first, last) -> qvector< snapshot_t * >::iterator + | first: qvector< snapshot_t * >::iterator + | last: qvector< snapshot_t * >::iterator | | extract(self, *args) | extract(self) -> snapshot_t ** | | find(self, *args) | find(self, x) -> qvector< snapshot_t * >::iterator + | x: snapshot_t *const & + | + | | find(self, x) -> qvector< snapshot_t * >::const_iterator + | x: snapshot_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: snapshot_t *const & | | inject(self, *args) | inject(self, s, len) + | s: snapshot_t ** + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< snapshot_t * >::iterator + | it: qvector< snapshot_t * >::iterator + | x: snapshot_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> snapshot_t *& + | x: snapshot_t *const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: snapshot_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< snapshot_t * > & | | truncate(self, *args) | truncate(self) @@ -51949,25 +61456,21 @@ class qvector_snapshotvec_t(__builtin__.object) 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 + reload_file(file, is_remote) -> bool + @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 @@ -51975,41 +61478,35 @@ run_plugin(*args) 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 + save_database(outfile, flags, root=None, attr=None) -> bool + @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) + set_database_flag(dbfl, cnd=True) + @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 *) + set_path(pt, 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: @@ -52020,24 +61517,30 @@ class snapshot_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: snapshot_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: snapshot_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: snapshot_t const & | | __init__(self, *args) | __init__(self) -> snapshot_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: snapshot_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: snapshot_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: snapshot_t const & | | __repr__ = _swig_repr(self) | @@ -52131,43 +61634,43 @@ iterated data, etc) ida_loader.GENFLG_ASMINC """ - 'OFILE_ASM' , 'OFILE_LST' : gen information only about types +'OFILE_ASM' , 'OFILE_LST' : gen information only about types """ ida_loader.GENFLG_ASMTYPE """ - 'OFILE_ASM' , 'OFILE_LST' : gen information about types too +'OFILE_ASM' , 'OFILE_LST' : gen information about types too """ ida_loader.GENFLG_GENHTML """ - 'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' +'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' will be used) """ ida_loader.GENFLG_IDCTYPE """ - 'OFILE_IDC' : gen only information about types +'OFILE_IDC' : gen only information about types """ ida_loader.GENFLG_MAPDMNG """ - 'OFILE_MAP' : demangle names +'OFILE_MAP' : demangle names """ ida_loader.GENFLG_MAPLOC """ - 'OFILE_MAP' : include local names +'OFILE_MAP' : include local names """ ida_loader.GENFLG_MAPNAME """ - 'OFILE_MAP' : include dummy names +'OFILE_MAP' : include dummy names """ ida_loader.GENFLG_MAPSEG """ - 'OFILE_MAP' : generate map of segments +'OFILE_MAP' : generate map of segments """ ida_loader.LDRF_RELOAD @@ -52287,16 +61790,23 @@ Help on function apply_metadata in module ida_lumina: apply_metadata(*args) apply_metadata(ea, fi, flags=0) + @param ea (C++: ea_t) + @param fi (C++: const func_info_t &) + @param flags (C++: uint32) Help on function backup_metadata in module ida_lumina: backup_metadata(*args) backup_metadata(ea) -> bool + @param ea (C++: ea_t) 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 + @param out_fi (C++: func_info_t *) + @param pfn (C++: const func_t *) + @param append_metadata (C++: metadata_appender_t *) Help on function create_simple_diff_handler in module ida_lumina: @@ -52307,16 +61817,22 @@ 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 + @param pfn (C++: const func_t *) Help on function diff_metadata in module ida_lumina: diff_metadata(*args) diff_metadata(handler, left, right, flags=0) -> bool + @param handler (C++: func_md_diff_handler_t &) + @param left (C++: const func_info_t &) + @param right (C++: const func_info_t &) + @param flags (C++: uint32) Help on function ea_to_ea64 in module ida_lumina: ea_to_ea64(*args) ea_to_ea64(ea) -> ea64_t + @param ea (C++: ea_t) Help on class extra_cmt_t in module ida_lumina: @@ -52358,6 +61874,7 @@ class extra_cmt_t(insn_site_t) | | toea(self, *args) | toea(self, pfn) -> ea_t + | @param pfn (C++: const func_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -52383,10 +61900,11 @@ class extra_cmts_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> extra_cmt_t + | i: size_t | | __init__(self, *args) | __init__(self) -> extra_cmts_t - | __init__(self, x) -> extra_cmts_t + | 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. @@ -52398,9 +61916,12 @@ class extra_cmts_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: extra_cmt_t const & | | at(self, *args) | at(self, _idx) -> extra_cmt_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52424,7 +61945,12 @@ class extra_cmts_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> extra_cmt_t + | it: qvector< extra_cmt_t >::iterator + | + | | erase(self, first, last) -> extra_cmt_t + | first: qvector< extra_cmt_t >::iterator + | last: qvector< extra_cmt_t >::iterator | | extract(self, *args) | extract(self) -> extra_cmt_t @@ -52434,35 +61960,47 @@ class extra_cmts_t(__builtin__.object) | | grow(self, *args) | grow(self, x=extra_cmt_t()) + | x: extra_cmt_t const & | | inject(self, *args) | inject(self, s, len) + | s: extra_cmt_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> extra_cmt_t + | it: qvector< extra_cmt_t >::iterator + | x: extra_cmt_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> extra_cmt_t + | x: extra_cmt_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: extra_cmt_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< extra_cmt_t > & | | truncate(self, *args) | truncate(self) @@ -52489,31 +62027,43 @@ 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) + @param out (C++: extra_cmts_t *) + @param ptr (C++: const uchar *) 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) + @param out (C++: frame_desc_t *) + @param ptr (C++: const uchar *) 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) + @param out (C++: insn_cmts_t *) + @param ptr (C++: const uchar *) 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) + @param out (C++: insn_ops_reprs_t *) + @param ptr (C++: const uchar *) Help on function extract_type_from_metadata in module ida_lumina: extract_type_from_metadata(*args) extract_type_from_metadata(out, _in) -> bool + @param out (C++: md_type_parts_t *) + in: bytevec_t const & 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) + @param out (C++: user_stkpnts_t *) + @param ptr (C++: const uchar *) Help on class frame_desc_t in module ida_lumina: @@ -52617,10 +62167,11 @@ class frame_mems_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> frame_mem_t + | i: size_t | | __init__(self, *args) | __init__(self) -> frame_mems_t - | __init__(self, x) -> frame_mems_t + | 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. @@ -52632,9 +62183,12 @@ class frame_mems_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: frame_mem_t const & | | at(self, *args) | at(self, _idx) -> frame_mem_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52658,7 +62212,12 @@ class frame_mems_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> frame_mem_t + | it: qvector< frame_mem_t >::iterator + | + | | erase(self, first, last) -> frame_mem_t + | first: qvector< frame_mem_t >::iterator + | last: qvector< frame_mem_t >::iterator | | extract(self, *args) | extract(self) -> frame_mem_t @@ -52668,35 +62227,47 @@ class frame_mems_t(__builtin__.object) | | grow(self, *args) | grow(self, x=frame_mem_t()) + | x: frame_mem_t const & | | inject(self, *args) | inject(self, s, len) + | s: frame_mem_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> frame_mem_t + | it: qvector< frame_mem_t >::iterator + | x: frame_mem_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> frame_mem_t + | x: frame_mem_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: frame_mem_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< frame_mem_t > & | | truncate(self, *args) | truncate(self) @@ -52778,10 +62349,11 @@ class func_info_and_frequency_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> func_info_and_frequency_t + | i: size_t | | __init__(self, *args) | __init__(self) -> func_info_and_frequency_vec_t - | __init__(self, x) -> func_info_and_frequency_vec_t + | 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. @@ -52793,9 +62365,12 @@ class func_info_and_frequency_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: func_info_and_frequency_t const & | | at(self, *args) | at(self, _idx) -> func_info_and_frequency_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52819,7 +62394,12 @@ class func_info_and_frequency_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> func_info_and_frequency_t + | it: qvector< func_info_and_frequency_t >::iterator + | + | | erase(self, first, last) -> func_info_and_frequency_t + | first: qvector< func_info_and_frequency_t >::iterator + | last: qvector< func_info_and_frequency_t >::iterator | | extract(self, *args) | extract(self) -> func_info_and_frequency_t @@ -52829,35 +62409,47 @@ class func_info_and_frequency_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=func_info_and_frequency_t()) + | x: func_info_and_frequency_t const & | | inject(self, *args) | inject(self, s, len) + | s: func_info_and_frequency_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> func_info_and_frequency_t + | it: qvector< func_info_and_frequency_t >::iterator + | x: func_info_and_frequency_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> func_info_and_frequency_t + | x: func_info_and_frequency_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: func_info_and_frequency_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< func_info_and_frequency_t > & | | truncate(self, *args) | truncate(self) @@ -52939,10 +62531,11 @@ class func_info_and_pattern_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> func_info_and_pattern_t + | i: size_t | | __init__(self, *args) | __init__(self) -> func_info_and_pattern_vec_t - | __init__(self, x) -> func_info_and_pattern_vec_t + | 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. @@ -52954,9 +62547,12 @@ class func_info_and_pattern_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: func_info_and_pattern_t const & | | at(self, *args) | at(self, _idx) -> func_info_and_pattern_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52980,7 +62576,12 @@ class func_info_and_pattern_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> func_info_and_pattern_t + | it: qvector< func_info_and_pattern_t >::iterator + | + | | erase(self, first, last) -> func_info_and_pattern_t + | first: qvector< func_info_and_pattern_t >::iterator + | last: qvector< func_info_and_pattern_t >::iterator | | extract(self, *args) | extract(self) -> func_info_and_pattern_t @@ -52990,35 +62591,47 @@ class func_info_and_pattern_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=func_info_and_pattern_t()) + | x: func_info_and_pattern_t const & | | inject(self, *args) | inject(self, s, len) + | s: func_info_and_pattern_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> func_info_and_pattern_t + | it: qvector< func_info_and_pattern_t >::iterator + | x: func_info_and_pattern_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> func_info_and_pattern_t + | x: func_info_and_pattern_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: func_info_and_pattern_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< func_info_and_pattern_t > & | | truncate(self, *args) | truncate(self) @@ -53143,10 +62756,11 @@ class func_info_pattern_and_frequency_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> func_info_pattern_and_frequency_t + | 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 + | 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. @@ -53158,9 +62772,12 @@ class func_info_pattern_and_frequency_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: func_info_pattern_and_frequency_t const & | | at(self, *args) | at(self, _idx) -> func_info_pattern_and_frequency_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -53184,7 +62801,12 @@ class func_info_pattern_and_frequency_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> func_info_pattern_and_frequency_t + | it: qvector< func_info_pattern_and_frequency_t >::iterator + | + | | erase(self, first, last) -> func_info_pattern_and_frequency_t + | first: qvector< func_info_pattern_and_frequency_t >::iterator + | last: qvector< func_info_pattern_and_frequency_t >::iterator | | extract(self, *args) | extract(self) -> func_info_pattern_and_frequency_t @@ -53194,35 +62816,47 @@ class func_info_pattern_and_frequency_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=func_info_pattern_and_frequency_t()) + | x: func_info_pattern_and_frequency_t const & | | inject(self, *args) | inject(self, s, len) + | s: func_info_pattern_and_frequency_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> func_info_pattern_and_frequency_t + | it: qvector< func_info_pattern_and_frequency_t >::iterator + | x: func_info_pattern_and_frequency_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> func_info_pattern_and_frequency_t + | x: func_info_pattern_and_frequency_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: func_info_pattern_and_frequency_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< func_info_pattern_and_frequency_t > & | | truncate(self, *args) | truncate(self) @@ -53293,10 +62927,11 @@ class func_info_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> func_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> func_info_vec_t - | __init__(self, x) -> func_info_vec_t + | 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. @@ -53308,9 +62943,12 @@ class func_info_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: func_info_t const & | | at(self, *args) | at(self, _idx) -> func_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -53334,7 +62972,12 @@ class func_info_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> func_info_t + | it: qvector< func_info_t >::iterator + | + | | erase(self, first, last) -> func_info_t + | first: qvector< func_info_t >::iterator + | last: qvector< func_info_t >::iterator | | extract(self, *args) | extract(self) -> func_info_t @@ -53344,35 +62987,47 @@ class func_info_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=func_info_t()) + | x: func_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: func_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> func_info_t + | it: qvector< func_info_t >::iterator + | x: func_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> func_info_t + | x: func_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: func_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< func_info_t > & | | truncate(self, *args) | truncate(self) @@ -53406,35 +63061,66 @@ class func_md_diff_handler_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_md_diff_handler_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | on_comment_changed(self, *args) | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_extra_comment_changed(self, *args) | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param is_prev (C++: bool) | | on_frame_member_changed(self, *args) | on_frame_member_changed(self, offset, l, r) + | @param offset (C++: uint32) + | @param l (C++: const frame_mem_t *) + | @param r (C++: const frame_mem_t *) | | on_function_comment_changed(self, *args) | on_function_comment_changed(self, l, r, rep) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_insn_ops_repr_changed(self, *args) | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const insn_ops_repr_t *) + | @param r (C++: const insn_ops_repr_t *) | | on_name_changed(self, *args) | on_name_changed(self, l, r) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) | | on_proto_changed(self, *args) | on_proto_changed(self, l, r) + | @param l (C++: const md_type_parts_t &) + | @param r (C++: const md_type_parts_t &) | | on_score_changed(self, *args) | on_score_changed(self, l, r) + | @param l (C++: uint32) + | @param r (C++: uint32) | | on_user_stkpnt_changed(self, *args) | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const int64 *) + | @param r (C++: const int64 *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53458,6 +63144,7 @@ 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 + @param code (C++: lumina_rpc_packet_t) Help on function get_server_connection in module ida_lumina: @@ -53468,45 +63155,7 @@ 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) + @param ea (C++: ea_t) Help on class input_file_t in module ida_lumina: @@ -53581,6 +63230,7 @@ class insn_cmt_t(insn_site_t) | | toea(self, *args) | toea(self, pfn) -> ea_t + | @param pfn (C++: const func_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -53606,10 +63256,11 @@ class insn_cmts_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> insn_cmt_t + | i: size_t | | __init__(self, *args) | __init__(self) -> insn_cmts_t - | __init__(self, x) -> insn_cmts_t + | 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. @@ -53621,9 +63272,12 @@ class insn_cmts_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: insn_cmt_t const & | | at(self, *args) | at(self, _idx) -> insn_cmt_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -53647,7 +63301,12 @@ class insn_cmts_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> insn_cmt_t + | it: qvector< insn_cmt_t >::iterator + | + | | erase(self, first, last) -> insn_cmt_t + | first: qvector< insn_cmt_t >::iterator + | last: qvector< insn_cmt_t >::iterator | | extract(self, *args) | extract(self) -> insn_cmt_t @@ -53657,35 +63316,47 @@ class insn_cmts_t(__builtin__.object) | | grow(self, *args) | grow(self, x=insn_cmt_t()) + | x: insn_cmt_t const & | | inject(self, *args) | inject(self, s, len) + | s: insn_cmt_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> insn_cmt_t + | it: qvector< insn_cmt_t >::iterator + | x: insn_cmt_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> insn_cmt_t + | x: insn_cmt_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: insn_cmt_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< insn_cmt_t > & | | truncate(self, *args) | truncate(self) @@ -53751,6 +63422,7 @@ class insn_ops_repr_t(insn_site_t) | | toea(self, *args) | toea(self, pfn) -> ea_t + | @param pfn (C++: const func_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -53776,10 +63448,11 @@ class insn_ops_reprs_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> insn_ops_repr_t + | i: size_t | | __init__(self, *args) | __init__(self) -> insn_ops_reprs_t - | __init__(self, x) -> insn_ops_reprs_t + | 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. @@ -53791,9 +63464,12 @@ class insn_ops_reprs_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: insn_ops_repr_t const & | | at(self, *args) | at(self, _idx) -> insn_ops_repr_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -53817,7 +63493,12 @@ class insn_ops_reprs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> insn_ops_repr_t + | it: qvector< insn_ops_repr_t >::iterator + | + | | erase(self, first, last) -> insn_ops_repr_t + | first: qvector< insn_ops_repr_t >::iterator + | last: qvector< insn_ops_repr_t >::iterator | | extract(self, *args) | extract(self) -> insn_ops_repr_t @@ -53827,35 +63508,47 @@ class insn_ops_reprs_t(__builtin__.object) | | grow(self, *args) | grow(self, x=insn_ops_repr_t()) + | x: insn_ops_repr_t const & | | inject(self, *args) | inject(self, s, len) + | s: insn_ops_repr_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> insn_ops_repr_t + | it: qvector< insn_ops_repr_t >::iterator + | x: insn_ops_repr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> insn_ops_repr_t + | x: insn_ops_repr_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: insn_ops_repr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< insn_ops_repr_t > & | | truncate(self, *args) | truncate(self) @@ -53892,6 +63585,7 @@ class insn_site_t(__builtin__.object) | | toea(self, *args) | toea(self, pfn) -> ea_t + | @param pfn (C++: const func_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53930,19 +63624,34 @@ class lumina_client_t(__builtin__.object) | | get_pop(self, *args) | get_pop(self, nresults=10) -> pkt_get_pop_result_t + | @param nresults (C++: uint32) | | is_pattern_id(self, *args) | is_pattern_id(self, pid, md5) -> bool + | @param pid (C++: const pattern_id_t &) + | @param md5 (C++: const md5_t &) | | pull_md(self, *args) | pull_md(self, pattern_ids, pull_md_flags=0) -> pkt_pull_md_result_t + | @param pattern_ids (C++: pattern_ids_t &) + | @param pull_md_flags (C++: uint32) + | + | | pull_md(self, funcs, pull_md_flags=0) -> pkt_pull_md_result_t + | funcs: eavec_t * + | @param pull_md_flags (C++: uint32) | | push_md(self, *args) | push_md(self, result, opts, append_metadata=None, flags=0) -> bool + | @param result (C++: push_md_result_t *) + | @param opts (C++: const push_md_opts_t &) + | @param append_metadata (C++: metadata_appender_t *) + | @param flags (C++: uint32) | | set_pattern_id_md5(self, *args) | set_pattern_id_md5(self, out, md5) + | @param out (C++: pattern_id_t *) + | @param md5 (C++: const md5_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53971,13 +63680,15 @@ class lumina_op_res_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< lumina_op_res_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lumina_op_res_t const & + | i: size_t | | __init__(self, *args) | __init__(self) -> lumina_op_res_vec_t - | __init__(self, x) -> lumina_op_res_vec_t + | 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. @@ -53987,20 +63698,26 @@ class lumina_op_res_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< lumina_op_res_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: lumina_op_res_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: lumina_op_res_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: lumina_op_res_t const & | | at(self, *args) | at(self, _idx) -> lumina_op_res_t const & + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -54024,52 +63741,74 @@ class lumina_op_res_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< lumina_op_res_t >::iterator + | it: qvector< lumina_op_res_t >::iterator + | + | | erase(self, first, last) -> qvector< lumina_op_res_t >::iterator + | first: qvector< lumina_op_res_t >::iterator + | 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 + | x: lumina_op_res_t const & + | + | | find(self, x) -> qvector< lumina_op_res_t >::const_iterator + | x: lumina_op_res_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=lumina_op_res_t()) + | x: lumina_op_res_t const & | | has(self, *args) | has(self, x) -> bool + | x: lumina_op_res_t const & | | inject(self, *args) | inject(self, s, len) + | s: lumina_op_res_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< lumina_op_res_t >::iterator + | it: qvector< lumina_op_res_t >::iterator + | x: lumina_op_res_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> lumina_op_res_t & + | x: lumina_op_res_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: lumina_op_res_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< lumina_op_res_t > & | | truncate(self, *args) | truncate(self) @@ -54101,12 +63840,14 @@ class md_type_parts_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: md_type_parts_t const & | | __init__(self, *args) | __init__(self) -> md_type_parts_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: md_type_parts_t const & | | __repr__ = _swig_repr(self) | @@ -54146,6 +63887,7 @@ class metadata_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _md) -> metadata_iterator_t + | _md: metadata_t const & | | __repr__ = _swig_repr(self) | @@ -54186,6 +63928,10 @@ 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 * + @param code (C++: uchar) + @param ptr (C++: const uchar *) + @param len (C++: size_t) + @param version (C++: int) Help on class oprepr_t in module ida_lumina: @@ -54833,6 +64579,7 @@ class push_md_opts_t(__builtin__.object) | | __init__(self, *args) | __init__(self, mfs=size_t(-1)) -> push_md_opts_t + | mfs: size_t | | __repr__ = _swig_repr(self) | @@ -54903,11 +64650,13 @@ Help on function revert_metadata in module ida_lumina: revert_metadata(*args) revert_metadata(ea) -> bool + @param ea (C++: ea_t) Help on function score_metadata in module ida_lumina: score_metadata(*args) score_metadata(fi) -> uint32 + @param fi (C++: const func_info_t &) Help on class serialized_tinfo in module ida_lumina: @@ -54963,30 +64712,60 @@ class simple_diff_handler_t(func_md_diff_handler_t) | | on_comment_changed(self, *args) | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_extra_comment_changed(self, *args) | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param is_prev (C++: bool) | | on_frame_member_changed(self, *args) | on_frame_member_changed(self, offset, l, r) + | @param offset (C++: uint32) + | @param l (C++: const frame_mem_t *) + | @param r (C++: const frame_mem_t *) | | on_function_comment_changed(self, *args) | on_function_comment_changed(self, l, r, rep) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_insn_ops_repr_changed(self, *args) | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const insn_ops_repr_t *) + | @param r (C++: const insn_ops_repr_t *) | | on_name_changed(self, *args) | on_name_changed(self, l, r) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) | | on_proto_changed(self, *args) | on_proto_changed(self, l, r) + | @param l (C++: const md_type_parts_t &) + | @param r (C++: const md_type_parts_t &) | | on_score_changed(self, *args) | on_score_changed(self, l, r) + | @param l (C++: uint32) + | @param r (C++: uint32) | | on_user_stkpnt_changed(self, *args) | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const int64 *) + | @param r (C++: const int64 *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55060,30 +64839,60 @@ class simple_idb_diff_handler_t(simple_diff_handler_t) | | on_comment_changed(self, *args) | on_comment_changed(self, fchunk_nr, fchunk_off, l, r, rep) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_extra_comment_changed(self, *args) | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param is_prev (C++: bool) | | on_frame_member_changed(self, *args) | on_frame_member_changed(self, offset, l, r) + | @param offset (C++: uint32) + | @param l (C++: const frame_mem_t *) + | @param r (C++: const frame_mem_t *) | | on_function_comment_changed(self, *args) | on_function_comment_changed(self, l, r, rep) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_insn_ops_repr_changed(self, *args) | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const insn_ops_repr_t *) + | @param r (C++: const insn_ops_repr_t *) | | on_name_changed(self, *args) | on_name_changed(self, l, r) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) | | on_proto_changed(self, *args) | on_proto_changed(self, l, r) + | @param l (C++: const md_type_parts_t &) + | @param r (C++: const md_type_parts_t &) | | on_score_changed(self, *args) | on_score_changed(self, l, r) + | @param l (C++: uint32) + | @param r (C++: uint32) | | on_user_stkpnt_changed(self, *args) | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const int64 *) + | @param r (C++: const int64 *) | | ---------------------------------------------------------------------- | Data descriptors inherited from simple_diff_handler_t: @@ -55153,10 +64962,11 @@ class skipped_funcs_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> skipped_func_t + | i: size_t | | __init__(self, *args) | __init__(self) -> skipped_funcs_t - | __init__(self, x) -> skipped_funcs_t + | 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. @@ -55168,9 +64978,12 @@ class skipped_funcs_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: skipped_func_t const & | | at(self, *args) | at(self, _idx) -> skipped_func_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -55194,7 +65007,12 @@ class skipped_funcs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> skipped_func_t + | it: qvector< skipped_func_t >::iterator + | + | | erase(self, first, last) -> skipped_func_t + | first: qvector< skipped_func_t >::iterator + | last: qvector< skipped_func_t >::iterator | | extract(self, *args) | extract(self) -> skipped_func_t @@ -55204,35 +65022,47 @@ class skipped_funcs_t(__builtin__.object) | | grow(self, *args) | grow(self, x=skipped_func_t()) + | x: skipped_func_t const & | | inject(self, *args) | inject(self, s, len) + | s: skipped_func_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> skipped_func_t + | it: qvector< skipped_func_t >::iterator + | x: skipped_func_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> skipped_func_t + | x: skipped_func_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: skipped_func_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< skipped_func_t > & | | truncate(self, *args) | truncate(self) @@ -55259,6 +65089,7 @@ Help on function split_metadata in module ida_lumina: split_metadata(*args) split_metadata(md) -> PyObject * + md: metadata_t const & Help on class user_identification_t in module ida_lumina: @@ -55336,6 +65167,7 @@ class user_stkpnt_t(insn_site_t) | | toea(self, *args) | toea(self, pfn) -> ea_t + | @param pfn (C++: const func_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -55361,10 +65193,11 @@ class user_stkpnts_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> user_stkpnt_t + | i: size_t | | __init__(self, *args) | __init__(self) -> user_stkpnts_t - | __init__(self, x) -> user_stkpnts_t + | 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. @@ -55376,9 +65209,12 @@ class user_stkpnts_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: user_stkpnt_t const & | | at(self, *args) | at(self, _idx) -> user_stkpnt_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -55402,7 +65238,12 @@ class user_stkpnts_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> user_stkpnt_t + | it: qvector< user_stkpnt_t >::iterator + | + | | erase(self, first, last) -> user_stkpnt_t + | first: qvector< user_stkpnt_t >::iterator + | last: qvector< user_stkpnt_t >::iterator | | extract(self, *args) | extract(self) -> user_stkpnt_t @@ -55412,35 +65253,47 @@ class user_stkpnts_t(__builtin__.object) | | grow(self, *args) | grow(self, x=user_stkpnt_t()) + | x: user_stkpnt_t const & | | inject(self, *args) | inject(self, s, len) + | s: user_stkpnt_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> user_stkpnt_t + | it: qvector< user_stkpnt_t >::iterator + | x: user_stkpnt_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> user_stkpnt_t + | x: user_stkpnt_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: user_stkpnt_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< user_stkpnt_t > & | | truncate(self, *args) | truncate(self) @@ -55499,21 +65352,40 @@ class bookmarks_t(__builtin__.object) | | erase(*args) | erase(e, index, ud) -> bool + | e: lochist_entry_t const & + | index: uint32 + | ud: void * | | find_index(*args) | find_index(e, ud) -> uint32 + | e: lochist_entry_t const & + | ud: void * | | get(*args) | get(out_entry, out_desc, index, ud) -> bool + | out_entry: lochist_entry_t * + | out_desc: qstring * + | index: uint32 * + | ud: void * | | get_desc(*args) | get_desc(e, index, ud) -> bool + | e: lochist_entry_t const & + | index: uint32 + | ud: void * | | mark(*args) | mark(e, index, title, desc, ud) -> uint32 + | e: lochist_entry_t const & + | index: uint32 + | title: char const * + | desc: char const * + | ud: void * | | size(*args) | size(e, ud) -> uint32 + | e: lochist_entry_t const & + | ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55531,31 +65403,50 @@ Help on function bookmarks_t_erase in module ida_moves: bookmarks_t_erase(*args) bookmarks_t_erase(e, index, ud) -> bool + e: lochist_entry_t const & + index: uint32 + ud: void * Help on function bookmarks_t_find_index in module ida_moves: bookmarks_t_find_index(*args) bookmarks_t_find_index(e, ud) -> uint32 + e: lochist_entry_t const & + ud: void * Help on function bookmarks_t_get in module ida_moves: bookmarks_t_get(*args) bookmarks_t_get(out_entry, out_desc, index, ud) -> bool + out_entry: lochist_entry_t * + out_desc: qstring * + index: uint32 * + ud: void * Help on function bookmarks_t_get_desc in module ida_moves: bookmarks_t_get_desc(*args) bookmarks_t_get_desc(e, index, ud) -> str + e: lochist_entry_t const & + index: uint32 + ud: void * Help on function bookmarks_t_mark in module ida_moves: bookmarks_t_mark(*args) bookmarks_t_mark(e, index, title, desc, ud) -> uint32 + e: lochist_entry_t const & + index: uint32 + title: char const * + desc: char const * + ud: void * Help on function bookmarks_t_size in module ida_moves: bookmarks_t_size(*args) bookmarks_t_size(e, ud) -> uint32 + e: lochist_entry_t const & + ud: void * Help on class graph_location_info_t in module ida_moves: @@ -55566,12 +65457,14 @@ class graph_location_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: graph_location_info_t const & | | __init__(self, *args) | __init__(self) -> graph_location_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: graph_location_info_t const & | | __repr__ = _swig_repr(self) | @@ -55609,21 +65502,20 @@ class lochist_entry_t(__builtin__.object) | | 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 + | p: place_t const * + | r: renderer_info_t const & + | + | | __init__(self, other) -> lochist_entry_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool + | other: lochist_entry_t const & | | __repr__ = _swig_repr(self) | | acquire_place(self, *args) | acquire_place(self, in_p) + | @param in_p (C++: place_t *) | | is_valid(self, *args) | is_valid(self) -> bool @@ -55638,6 +65530,7 @@ class lochist_entry_t(__builtin__.object) | | set_place(self, *args) | set_place(self, p) + | @param p (C++: const place_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55677,6 +65570,8 @@ class lochist_t(__builtin__.object) | | back(self, *args) | back(self, cnt, try_to_unhide) -> bool + | @param cnt (C++: uint32) + | @param try_to_unhide (C++: bool) | | clear(self, *args) | clear(self) @@ -55686,9 +65581,13 @@ class lochist_t(__builtin__.object) | | fwd(self, *args) | fwd(self, cnt, try_to_unhide) -> bool + | @param cnt (C++: uint32) + | @param try_to_unhide (C++: bool) | | get(self, *args) | get(self, out, index) -> bool + | @param out (C++: lochist_entry_t *) + | @param index (C++: uint32) | | get_current(self, *args) | get_current(self) -> lochist_entry_t @@ -55701,12 +65600,18 @@ class lochist_t(__builtin__.object) | | init(self, *args) | init(self, stream_name, _defpos, _ud, _flags) -> bool + | @param stream_name (C++: const char *) + | @param _defpos (C++: const place_t *) + | @param _ud (C++: void *) + | @param _flags (C++: uint32) | | is_history_enabled(self, *args) | is_history_enabled(self) -> bool | | jump(self, *args) | jump(self, try_to_unhide, e) + | @param try_to_unhide (C++: bool) + | @param e (C++: const lochist_entry_t &) | | netcode(self, *args) | netcode(self) -> nodeidx_t @@ -55716,12 +65621,17 @@ class lochist_t(__builtin__.object) | | seek(self, *args) | seek(self, index, try_to_unhide) -> bool + | @param index (C++: uint32) + | @param try_to_unhide (C++: bool) | | set(self, *args) | set(self, index, e) + | @param index (C++: uint32) + | @param e (C++: const lochist_entry_t &) | | set_current(self, *args) | set_current(self, e) + | @param e (C++: const lochist_entry_t &) | | size(self, *args) | size(self) -> uint32 @@ -55753,12 +65663,14 @@ class renderer_info_pos_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: renderer_info_pos_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_pos_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: renderer_info_pos_t const & | | __repr__ = _swig_repr(self) | @@ -55798,12 +65710,14 @@ class renderer_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: renderer_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: renderer_info_t const & | | __repr__ = _swig_repr(self) | @@ -55846,12 +65760,17 @@ class segm_move_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: segm_move_info_t const & | | __init__(self, *args) | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t + | _from: ea_t + | _to: ea_t + | _sz: size_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: segm_move_info_t const & | | __repr__ = _swig_repr(self) | @@ -55891,13 +65810,15 @@ class segm_move_info_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> segm_move_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> segm_move_info_vec_t - | __init__(self, x) -> segm_move_info_vec_t + | 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. @@ -55907,20 +65828,26 @@ class segm_move_info_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: segm_move_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: segm_move_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: segm_move_info_t const & | | at(self, *args) | at(self, _idx) -> segm_move_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -55944,52 +65871,74 @@ class segm_move_info_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | + | | erase(self, first, last) -> segm_move_info_t + | first: qvector< segm_move_info_t >::iterator + | last: qvector< segm_move_info_t >::iterator | | extract(self, *args) | extract(self) -> segm_move_info_t | | find(self, *args) | find(self, x) -> segm_move_info_t + | x: segm_move_info_t const & + | + | | find(self, x) -> segm_move_info_t + | x: segm_move_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=segm_move_info_t()) + | x: segm_move_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: segm_move_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: segm_move_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | x: segm_move_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> segm_move_info_t + | x: segm_move_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: segm_move_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< segm_move_info_t > & | | truncate(self, *args) | truncate(self) @@ -56031,6 +65980,7 @@ class segm_move_infos_t(segm_move_info_vec_t) | | find(self, *args) | find(self, ea) -> segm_move_info_t + | @param ea (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -56049,9 +65999,11 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> segm_move_info_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -56061,18 +66013,24 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: segm_move_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: segm_move_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: segm_move_info_t const & | | at(self, *args) | at(self, _idx) -> segm_move_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -56096,7 +66054,12 @@ class segm_move_infos_t(segm_move_info_vec_t) | | erase(self, *args) | erase(self, it) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | + | | erase(self, first, last) -> segm_move_info_t + | first: qvector< segm_move_info_t >::iterator + | last: qvector< segm_move_info_t >::iterator | | extract(self, *args) | extract(self) -> segm_move_info_t @@ -56106,38 +66069,51 @@ class segm_move_infos_t(segm_move_info_vec_t) | | grow(self, *args) | grow(self, x=segm_move_info_t()) + | x: segm_move_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: segm_move_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: segm_move_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | x: segm_move_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> segm_move_info_t + | x: segm_move_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: segm_move_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< segm_move_info_t > & | | truncate(self, *args) | truncate(self) @@ -56155,18 +66131,18 @@ Help on function get_switch_info in module ida_nalt: get_switch_info(*args) get_switch_info(out, ea) -> ssize_t + @param out (C++: switch_info_t *) + @param ea (C++: ea_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 + add_encoding(encoding) -> int + @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: @@ -56211,132 +66187,154 @@ Help on function clr__bnot0 in module ida_nalt: clr__bnot0(*args) clr__bnot0(ea) + @param ea (C++: ea_t) Help on function clr__bnot1 in module ida_nalt: clr__bnot1(*args) clr__bnot1(ea) + @param ea (C++: ea_t) Help on function clr__invsign0 in module ida_nalt: clr__invsign0(*args) clr__invsign0(ea) + @param ea (C++: ea_t) Help on function clr__invsign1 in module ida_nalt: clr__invsign1(*args) clr__invsign1(ea) + @param ea (C++: ea_t) Help on function clr_abits in module ida_nalt: clr_abits(*args) clr_abits(ea, bits) + @param ea (C++: ea_t) + @param bits (C++: uint32) Help on function clr_align_flow in module ida_nalt: clr_align_flow(*args) clr_align_flow(ea) + @param ea (C++: ea_t) Help on function clr_colored_item in module ida_nalt: clr_colored_item(*args) clr_colored_item(ea) + @param ea (C++: ea_t) Help on function clr_fixed_spd in module ida_nalt: clr_fixed_spd(*args) clr_fixed_spd(ea) + @param ea (C++: ea_t) Help on function clr_has_lname in module ida_nalt: clr_has_lname(*args) clr_has_lname(ea) + @param ea (C++: ea_t) Help on function clr_has_ti in module ida_nalt: clr_has_ti(*args) clr_has_ti(ea) + @param ea (C++: ea_t) Help on function clr_has_ti0 in module ida_nalt: clr_has_ti0(*args) clr_has_ti0(ea) + @param ea (C++: ea_t) Help on function clr_has_ti1 in module ida_nalt: clr_has_ti1(*args) clr_has_ti1(ea) + @param ea (C++: ea_t) Help on function clr_libitem in module ida_nalt: clr_libitem(*args) clr_libitem(ea) + @param ea (C++: ea_t) Help on function clr_lzero0 in module ida_nalt: clr_lzero0(*args) clr_lzero0(ea) + @param ea (C++: ea_t) Help on function clr_lzero1 in module ida_nalt: clr_lzero1(*args) clr_lzero1(ea) + @param ea (C++: ea_t) Help on function clr_noret in module ida_nalt: clr_noret(*args) clr_noret(ea) + @param ea (C++: ea_t) Help on function clr_notcode in module ida_nalt: clr_notcode(*args) - clr_notcode(ea) - - Clear not-code mark. - - @param ea (C++: ea_t) + clr_notcode(ea) + @param ea (C++: ea_t) Help on function clr_notproc in module ida_nalt: clr_notproc(*args) clr_notproc(ea) + @param ea (C++: ea_t) Help on function clr_retfp in module ida_nalt: clr_retfp(*args) clr_retfp(ea) + @param ea (C++: ea_t) Help on function clr_terse_struc in module ida_nalt: clr_terse_struc(*args) clr_terse_struc(ea) + @param ea (C++: ea_t) Help on function clr_tilcmt in module ida_nalt: clr_tilcmt(*args) clr_tilcmt(ea) + @param ea (C++: ea_t) Help on function clr_usemodsp in module ida_nalt: clr_usemodsp(*args) clr_usemodsp(ea) + @param ea (C++: ea_t) Help on function clr_usersp in module ida_nalt: clr_usersp(*args) clr_usersp(ea) + @param ea (C++: ea_t) Help on function clr_userti in module ida_nalt: clr_userti(*args) clr_userti(ea) + @param ea (C++: ea_t) Help on function clr_zstroff in module ida_nalt: clr_zstroff(*args) clr_zstroff(ea) + @param ea (C++: ea_t) Help on class custom_data_type_ids_fids_array in module ida_nalt: @@ -56347,9 +66345,11 @@ class custom_data_type_ids_fids_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> short const & + | i: size_t | | __init__(self, *args) | __init__(self, data) -> custom_data_type_ids_fids_array + | data: short (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -56361,6 +66361,8 @@ class custom_data_type_ids_fids_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: short const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -56398,6 +66400,10 @@ class custom_data_type_ids_t(__builtin__.object) | _custom_data_type_ids_t__getFids = __getFids(self, *args) | __getFids(self) -> custom_data_type_ids_fids_array | + | set(self, *args) + | set(self, tid) + | @param tid (C++: tid_t) + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -56425,121 +66431,122 @@ class custom_data_type_ids_t(__builtin__.object) 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) + @param ea (C++: ea_t) Help on function del_aflags in module ida_nalt: del_aflags(*args) del_aflags(ea) + @param ea (C++: ea_t) Help on function del_alignment in module ida_nalt: del_alignment(*args) del_alignment(ea) + @param ea (C++: ea_t) Help on function del_array_parameters in module ida_nalt: del_array_parameters(*args) del_array_parameters(ea) + @param ea (C++: ea_t) Help on function del_custom_data_type_ids in module ida_nalt: del_custom_data_type_ids(*args) del_custom_data_type_ids(ea) + @param ea (C++: ea_t) 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) + del_encoding(idx) -> bool + @param idx (C++: int) Help on function del_ind_purged in module ida_nalt: del_ind_purged(*args) del_ind_purged(ea) + @param ea (C++: ea_t) Help on function del_item_color in module ida_nalt: del_item_color(*args) del_item_color(ea) -> bool + @param ea (C++: ea_t) Help on function del_op_tinfo in module ida_nalt: del_op_tinfo(*args) del_op_tinfo(ea, n) + @param ea (C++: ea_t) + @param n (C++: int) Help on function del_refinfo in module ida_nalt: del_refinfo(*args) del_refinfo(ea, n) -> bool + @param ea (C++: ea_t) + @param n (C++: int) Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) del_source_linnum(ea) + @param ea (C++: ea_t) Help on function del_str_type in module ida_nalt: del_str_type(*args) del_str_type(ea) + @param ea (C++: ea_t) Help on function del_switch_info in module ida_nalt: del_switch_info(*args) del_switch_info(ea) + @param ea (C++: ea_t) Help on function del_switch_parent in module ida_nalt: del_switch_parent(*args) del_switch_parent(ea) + @param ea (C++: ea_t) Help on function del_tinfo in module ida_nalt: del_tinfo(*args) del_tinfo(ea) + @param ea (C++: ea_t) 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) + ea2node(ea) -> nodeidx_t + @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) + encoding_from_strtype(strtype) -> char const * + @param strtype (C++: int32) Help on class enum_const_t in module ida_nalt: @@ -56581,8 +66588,6 @@ 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. @@ -56593,13 +66598,10 @@ enum_import_names(*args) 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 *) + find_custom_refinfo(name) -> int + @param name (C++: const char *) Help on function get_abi_name in module ida_nalt: @@ -56609,96 +66611,85 @@ Help on function get_absbase in module ida_nalt: get_absbase(*args) get_absbase(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_aflags in module ida_nalt: get_aflags(*args) get_aflags(ea) -> uint32 + @param ea (C++: ea_t) Help on function get_alignment in module ida_nalt: get_alignment(*args) get_alignment(ea) -> uint32 + @param ea (C++: ea_t) 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 + @param out (C++: array_parameters_t *) + @param ea (C++: ea_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 + @param cdis (C++: custom_data_type_ids_t *) + @param ea (C++: ea_t) 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) + get_custom_refinfo(crid) -> custom_refinfo_handler_t const * + @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) + get_default_encoding_idx(bpu) -> int + @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 + get_encoding_bpu(idx) -> int + @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 + get_encoding_name(idx) -> char const * + @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: @@ -56709,65 +66700,53 @@ get_gotea(*args) 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 + @param ea (C++: 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 + @param ea (C++: ea_t) Help on function get_op_tinfo in module ida_nalt: get_op_tinfo(*args) get_op_tinfo(tif, ea, n) -> bool + @param tif (C++: tinfo_t *) + @param ea (C++: ea_t) + @param n (C++: int) 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 @@ -56775,66 +66754,73 @@ Help on function get_refinfo in module ida_nalt: get_refinfo(*args) get_refinfo(ri, ea, n) -> bool + @param ri (C++: refinfo_t *) + @param ea (C++: ea_t) + @param n (C++: int) 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) + get_reftype_by_size(size) -> reftype_t + @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 + @param ea (C++: ea_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) + get_str_encoding_idx(strtype) -> uchar + @param strtype (C++: int32) Help on function get_str_term1 in module ida_nalt: get_str_term1(*args) get_str_term1(strtype) -> char + @param strtype (C++: int32) Help on function get_str_term2 in module ida_nalt: get_str_term2(*args) get_str_term2(strtype) -> char + @param strtype (C++: int32) Help on function get_str_type in module ida_nalt: get_str_type(*args) get_str_type(ea) -> uint32 + @param ea (C++: ea_t) Help on function get_str_type_code in module ida_nalt: get_str_type_code(*args) get_str_type_code(strtype) -> uchar + @param strtype (C++: int32) + +Help on function get_str_type_prefix_length in module ida_nalt: + +get_str_type_prefix_length(*args) + get_str_type_prefix_length(strtype) -> size_t + @param strtype (C++: int32) Help on function get_strtype_bpu in module ida_nalt: get_strtype_bpu(*args) get_strtype_bpu(strtype) -> int + @param strtype (C++: int32) Help on function get_switch_info in module ida_nalt: @@ -56844,200 +66830,220 @@ Help on function get_switch_parent in module ida_nalt: get_switch_parent(*args) get_switch_parent(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_tinfo in module ida_nalt: get_tinfo(*args) get_tinfo(tif, ea) -> bool + @param tif (C++: tinfo_t *) + @param ea (C++: ea_t) Help on function getnode in module ida_nalt: getnode(*args) getnode(ea) -> netnode + @param ea (C++: ea_t) Help on function has_lname in module ida_nalt: has_lname(*args) has_lname(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti in module ida_nalt: has_ti(*args) has_ti(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti0 in module ida_nalt: has_ti0(*args) has_ti0(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti1 in module ida_nalt: has_ti1(*args) has_ti1(ea) -> bool + @param ea (C++: ea_t) Help on function hide_border in module ida_nalt: hide_border(*args) hide_border(ea) + @param ea (C++: ea_t) Help on function hide_item in module ida_nalt: hide_item(*args) hide_item(ea) + @param ea (C++: ea_t) Help on function is__bnot0 in module ida_nalt: is__bnot0(*args) is__bnot0(ea) -> bool + @param ea (C++: ea_t) Help on function is__bnot1 in module ida_nalt: is__bnot1(*args) is__bnot1(ea) -> bool + @param ea (C++: ea_t) Help on function is__invsign0 in module ida_nalt: is__invsign0(*args) is__invsign0(ea) -> bool + @param ea (C++: ea_t) Help on function is__invsign1 in module ida_nalt: is__invsign1(*args) is__invsign1(ea) -> bool + @param ea (C++: ea_t) Help on function is_align_flow in module ida_nalt: is_align_flow(*args) is_align_flow(ea) -> bool + @param ea (C++: ea_t) Help on function is_colored_item in module ida_nalt: is_colored_item(*args) is_colored_item(ea) -> bool + @param ea (C++: ea_t) 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) + is_finally_visible_item(ea) -> bool + @param ea (C++: ea_t) Help on function is_fixed_spd in module ida_nalt: is_fixed_spd(*args) is_fixed_spd(ea) -> bool + @param ea (C++: ea_t) Help on function is_hidden_border in module ida_nalt: is_hidden_border(*args) is_hidden_border(ea) -> bool + @param ea (C++: ea_t) Help on function is_hidden_item in module ida_nalt: is_hidden_item(*args) is_hidden_item(ea) -> bool + @param ea (C++: ea_t) Help on function is_libitem in module ida_nalt: is_libitem(*args) is_libitem(ea) -> bool + @param ea (C++: ea_t) Help on function is_lzero0 in module ida_nalt: is_lzero0(*args) is_lzero0(ea) -> bool + @param ea (C++: ea_t) Help on function is_lzero1 in module ida_nalt: is_lzero1(*args) is_lzero1(ea) -> bool + @param ea (C++: ea_t) Help on function is_noret in module ida_nalt: is_noret(*args) is_noret(ea) -> bool + @param ea (C++: ea_t) 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) + is_notcode(ea) -> bool + @param ea (C++: ea_t) Help on function is_notproc in module ida_nalt: is_notproc(*args) is_notproc(ea) -> bool + @param ea (C++: ea_t) Help on function is_pascal in module ida_nalt: is_pascal(*args) is_pascal(strtype) -> bool + @param strtype (C++: int32) 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) + is_reftype_target_optional(type) -> bool + @param type (C++: reftype_t) Help on function is_retfp in module ida_nalt: is_retfp(*args) is_retfp(ea) -> bool + @param ea (C++: ea_t) Help on function is_terse_struc in module ida_nalt: is_terse_struc(*args) is_terse_struc(ea) -> bool + @param ea (C++: ea_t) Help on function is_tilcmt in module ida_nalt: is_tilcmt(*args) is_tilcmt(ea) -> bool + @param ea (C++: ea_t) Help on function is_usersp in module ida_nalt: is_usersp(*args) is_usersp(ea) -> bool + @param ea (C++: ea_t) Help on function is_userti in module ida_nalt: is_userti(*args) is_userti(ea) -> bool + @param ea (C++: ea_t) 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) + is_visible_item(ea) -> bool + @param ea (C++: ea_t) Help on function is_zstroff in module ida_nalt: is_zstroff(*args) is_zstroff(ea) -> bool + @param ea (C++: ea_t) Help on function node2ea in module ida_nalt: node2ea(*args) node2ea(ndx) -> ea_t + @param ndx (C++: nodeidx_t) Help on class opinfo_t in module ida_nalt: @@ -57110,9 +67116,11 @@ class printop_t(__builtin__.object) | | set_aflags_initialized(self, *args) | set_aflags_initialized(self, v=True) + | @param v (C++: bool) | | set_ti_initialized(self, *args) | set_ti_initialized(self, v=True) + | @param v (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57164,6 +67172,10 @@ class refinfo_t(__builtin__.object) | | init(self, *args) | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) + | @param reft_and_flags (C++: uint32) + | @param _base (C++: ea_t) + | @param _target (C++: ea_t) + | @param _tdelta (C++: adiff_t) | | is_custom(self, *args) | is_custom(self) -> bool @@ -57181,13 +67193,14 @@ class refinfo_t(__builtin__.object) | is_subtract(self) -> bool | | is_target_optional(self, *args) - | is_target_optional(self) -> bool + | < 'is_reftype_target_optional()' | | no_base_xref(self, *args) | no_base_xref(self) -> bool | | set_type(self, *args) - | set_type(self, t) + | set_type(self, rt) + | @param rt (C++: reftype_t) | | type(self, *args) | type(self) -> reftype_t @@ -57225,343 +67238,363 @@ class refinfo_t(__builtin__.object) 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 *) + rename_encoding(idx, encoding) -> bool + @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) + @param ea (C++: ea_t) Help on function set__bnot1 in module ida_nalt: set__bnot1(*args) set__bnot1(ea) + @param ea (C++: ea_t) Help on function set__invsign0 in module ida_nalt: set__invsign0(*args) set__invsign0(ea) + @param ea (C++: ea_t) Help on function set__invsign1 in module ida_nalt: set__invsign1(*args) set__invsign1(ea) + @param ea (C++: ea_t) Help on function set_abits in module ida_nalt: set_abits(*args) set_abits(ea, bits) + @param ea (C++: ea_t) + @param bits (C++: uint32) Help on function set_absbase in module ida_nalt: set_absbase(*args) set_absbase(ea, x) + @param ea (C++: ea_t) + @param x (C++: ea_t) Help on function set_aflags in module ida_nalt: set_aflags(*args) set_aflags(ea, flags) + @param ea (C++: ea_t) + @param flags (C++: uint32) Help on function set_align_flow in module ida_nalt: set_align_flow(*args) set_align_flow(ea) + @param ea (C++: ea_t) Help on function set_alignment in module ida_nalt: set_alignment(*args) set_alignment(ea, x) + @param ea (C++: ea_t) + @param x (C++: uint32) 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 *) + set_archive_path(file) -> bool + @param file (C++: const char *) Help on function set_array_parameters in module ida_nalt: set_array_parameters(*args) set_array_parameters(ea, _in) + @param ea (C++: ea_t) + in: array_parameters_t const * 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 *) + set_asm_inc_file(file) -> bool + @param file (C++: const char *) Help on function set_colored_item in module ida_nalt: set_colored_item(*args) set_colored_item(ea) + @param ea (C++: ea_t) 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) + @param ea (C++: ea_t) + @param cdis (C++: const custom_data_type_ids_t *) 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) + set_default_encoding_idx(bpu, idx) -> bool + @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) + @param ea (C++: ea_t) Help on function set_gotea in module ida_nalt: set_gotea(*args) set_gotea(gotea) + @param gotea (C++: ea_t) Help on function set_has_lname in module ida_nalt: set_has_lname(*args) set_has_lname(ea) + @param ea (C++: ea_t) Help on function set_has_ti in module ida_nalt: set_has_ti(*args) set_has_ti(ea) + @param ea (C++: ea_t) Help on function set_has_ti0 in module ida_nalt: set_has_ti0(*args) set_has_ti0(ea) + @param ea (C++: ea_t) Help on function set_has_ti1 in module ida_nalt: set_has_ti1(*args) set_has_ti1(ea) + @param ea (C++: ea_t) 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) + set_ids_modnode(id) + @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) + set_imagebase(base) + @param base (C++: ea_t) Help on function set_item_color in module ida_nalt: set_item_color(*args) set_item_color(ea, color) + @param ea (C++: ea_t) + @param color (C++: bgcolor_t) Help on function set_libitem in module ida_nalt: set_libitem(*args) set_libitem(ea) + @param ea (C++: ea_t) Help on function set_lzero0 in module ida_nalt: set_lzero0(*args) set_lzero0(ea) + @param ea (C++: ea_t) Help on function set_lzero1 in module ida_nalt: set_lzero1(*args) set_lzero1(ea) + @param ea (C++: ea_t) Help on function set_noret in module ida_nalt: set_noret(*args) set_noret(ea) + @param ea (C++: ea_t) 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) + set_notcode(ea) + @param ea (C++: ea_t) Help on function set_notproc in module ida_nalt: set_notproc(*args) set_notproc(ea) + @param ea (C++: ea_t) Help on function set_op_tinfo in module ida_nalt: set_op_tinfo(*args) set_op_tinfo(ea, n, tif) -> bool + @param ea (C++: ea_t) + @param n (C++: int) + @param tif (C++: const tinfo_t *) 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) + set_outfile_encoding_idx(idx) -> bool + @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 + @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 set_refinfo_ex in module ida_nalt: set_refinfo_ex(*args) set_refinfo_ex(ea, n, ri) -> bool + @param ea (C++: ea_t) + @param n (C++: int) + @param ri (C++: const refinfo_t *) Help on function set_retfp in module ida_nalt: set_retfp(*args) set_retfp(ea) + @param ea (C++: ea_t) 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 *) + set_root_filename(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) + @param ea (C++: ea_t) + @param lnnum (C++: uval_t) Help on function set_str_type in module ida_nalt: set_str_type(*args) set_str_type(ea, x) + @param ea (C++: ea_t) + @param x (C++: uint32) Help on function set_switch_info in module ida_nalt: set_switch_info(*args) set_switch_info(ea, _in) + @param ea (C++: ea_t) + in: switch_info_t const & Help on function set_switch_parent in module ida_nalt: set_switch_parent(*args) set_switch_parent(ea, x) + @param ea (C++: ea_t) + @param x (C++: ea_t) Help on function set_terse_struc in module ida_nalt: set_terse_struc(*args) set_terse_struc(ea) + @param ea (C++: ea_t) Help on function set_tilcmt in module ida_nalt: set_tilcmt(*args) set_tilcmt(ea) + @param ea (C++: ea_t) Help on function set_tinfo in module ida_nalt: set_tinfo(*args) set_tinfo(ea, tif) -> bool + @param ea (C++: ea_t) + @param tif (C++: const tinfo_t *) Help on function set_usemodsp in module ida_nalt: set_usemodsp(*args) set_usemodsp(ea) + @param ea (C++: ea_t) Help on function set_usersp in module ida_nalt: set_usersp(*args) set_usersp(ea) + @param ea (C++: ea_t) Help on function set_userti in module ida_nalt: set_userti(*args) set_userti(ea) + @param ea (C++: ea_t) 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) + set_visible_item(ea, visible) + @param ea (C++: ea_t) + @param visible (C++: bool) Help on function set_zstroff in module ida_nalt: set_zstroff(*args) set_zstroff(ea) + @param ea (C++: ea_t) Help on class strpath_ids_array in module ida_nalt: @@ -57572,9 +67605,11 @@ class strpath_ids_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t | | __init__(self, *args) | __init__(self, data) -> strpath_ids_array + | 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. @@ -57586,6 +67621,8 @@ class strpath_ids_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: unsigned-ea-like-numeric-type const &↗ | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57667,15 +67704,21 @@ class switch_info_t(__builtin__.object) | | _set_values_lowcase(self, *args) | _set_values_lowcase(self, values) + | values: ea_t | | assign(self, *args) | assign(self, other) + | other: switch_info_t const & | | clear(self, *args) | clear(self) | | get_jrange_vrange(self, *args) + | get separate parts of the switch + | | get_jrange_vrange(self, jrange=None, vrange=None) -> bool + | @param jrange (C++: range_t *) + | @param vrange (C++: range_t *) | | get_jtable_element_size(self, *args) | get_jtable_element_size(self) -> int @@ -57687,7 +67730,7 @@ class switch_info_t(__builtin__.object) | get_lowcase(self) -> sval_t | | get_shift(self, *args) - | get_shift(self) -> int + | See 'SWI_SHIFT_MASK' . possible answers: 0..3. | | get_version(self, *args) | get_version(self) -> int @@ -57718,21 +67761,30 @@ class switch_info_t(__builtin__.object) | | set_elbase(self, *args) | set_elbase(self, base) + | @param base (C++: ea_t) | | set_expr(self, *args) | set_expr(self, r, dt) + | @param r (C++: int) + | @param dt (C++: op_dtype_t) | | set_jtable_element_size(self, *args) | set_jtable_element_size(self, size) + | @param size (C++: int) | | set_jtable_size(self, *args) | set_jtable_size(self, size) + | @param size (C++: int) | | set_shift(self, *args) + | See 'SWI_SHIFT_MASK' . + | | set_shift(self, shift) + | @param shift (C++: int) | | set_vtable_element_size(self, *args) | set_vtable_element_size(self, size) + | @param size (C++: int) | | use_std_table(self, *args) | use_std_table(self) -> bool @@ -57806,26 +67858,31 @@ 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 + ptrval: size_t Help on function unhide_border in module ida_nalt: unhide_border(*args) unhide_border(ea) + @param ea (C++: ea_t) Help on function unhide_item in module ida_nalt: unhide_item(*args) unhide_item(ea) + @param ea (C++: ea_t) Help on function uses_modsp in module ida_nalt: uses_modsp(*args) uses_modsp(ea) -> bool + @param ea (C++: ea_t) Help on function validate_idb_names in module ida_nalt: validate_idb_names(*args) validate_idb_names(do_repair) -> int + do_repair: bool === ida_nalt EPYDOC INJECTIONS === ida_nalt.AFL_ALIGNFLOW @@ -58758,24 +68815,22 @@ class NearestName(__builtin__.object) 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 + append_struct_fields(disp, n, path, flags, delta, appzero) -> str + @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: @@ -58791,36 +68846,41 @@ Help on function cleanup_name in module ida_name: cleanup_name(*args) cleanup_name(ea, name, flags=0) -> str + @param ea (C++: ea_t) + @param name (C++: const char *) + @param flags (C++: uint32) Help on function del_debug_names in module ida_name: del_debug_names(*args) del_debug_names(ea1, ea2) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) Help on function del_global_name in module ida_name: del_global_name(*args) del_global_name(ea) -> bool + @param ea (C++: ea_t) Help on function del_local_name in module ida_name: del_local_name(*args) del_local_name(ea) -> bool + @param ea (C++: ea_t) 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 + demangle_name(name, disable_mask, demreq=DQT_FULL) -> str + @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: @@ -58831,7 +68891,8 @@ class ea_name_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> ea_name_t - | __init__(self, _ea, _name) -> ea_name_t + | _ea: ea_t + | _name: qstring const & | | __repr__ = _swig_repr(self) | @@ -58868,10 +68929,11 @@ class ea_name_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> ea_name_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ea_name_vec_t - | __init__(self, x) -> ea_name_vec_t + | 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. @@ -58883,9 +68945,12 @@ class ea_name_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: ea_name_t const & | | at(self, *args) | at(self, _idx) -> ea_name_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -58909,7 +68974,12 @@ class ea_name_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> ea_name_t + | it: qvector< ea_name_t >::iterator + | + | | erase(self, first, last) -> ea_name_t + | first: qvector< ea_name_t >::iterator + | last: qvector< ea_name_t >::iterator | | extract(self, *args) | extract(self) -> ea_name_t @@ -58919,35 +68989,47 @@ class ea_name_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=ea_name_t()) + | x: ea_name_t const & | | inject(self, *args) | inject(self, s, len) + | s: ea_name_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> ea_name_t + | it: qvector< ea_name_t >::iterator + | x: ea_name_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> ea_name_t + | x: ea_name_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: ea_name_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< ea_name_t > & | | truncate(self, *args) | truncate(self) @@ -58973,506 +69055,488 @@ class ea_name_vec_t(__builtin__.object) 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 + extract_name(line, x) -> str + @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 + @param ea (C++: ea_t) + @param name (C++: const char *) + @param flags (C++: int) 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 + @param ea (C++: ea_t) + @param inhibitor (C++: int32) + @param demform (C++: int) + @param gtn_flags (C++: int) 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 + @param ea (C++: ea_t) + @param gtn_flags (C++: int) Help on function get_colored_name in module ida_name: get_colored_name(*args) get_colored_name(ea) -> qstring + @param ea (C++: ea_t) 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 + @param ea (C++: ea_t) + @param gtn_flags (C++: int) 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) + get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool + @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 + @param ea_ptr (C++: ea_t *) + @param how (C++: debug_name_how_t) Help on function get_debug_name_ea in module ida_name: get_debug_name_ea(*args) get_debug_name_ea(name) -> ea_t + @param name (C++: const char *) Help on function get_debug_names in module ida_name: get_debug_names(*args) get_debug_names(names, ea1, ea2) + @param names (C++: ea_name_vec_t *) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + + get_debug_names(ea1, ea2, return_list=False) -> PyObject * + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + return_list: bool Help on function get_demangled_name in module ida_name: get_demangled_name(*args) get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring + @param ea (C++: ea_t) + @param inhibitor (C++: int32) + @param demform (C++: int) + @param gtn_flags (C++: int) 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 + get_ea_name(ea, gtn_flags=0) -> qstring + @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 + @param ea (C++: ea_t) + @param gtn_flags (C++: int) Help on function get_name in module ida_name: get_name(*args) get_name(ea) -> qstring + @param ea (C++: ea_t) 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 + get_name_base_ea(_from, to) -> ea_t + @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) + get_name_color(_from, ea) -> color_t + @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 + get_name_ea(_from, name) -> ea_t + @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. + get_name_expr(_from, n, ea, off, flags=0x0001) -> str + @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 + get_name_value(_from, name) -> int + @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. + get_nice_colored_name(ea, flags=0) -> str + @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) + get_nlist_ea(idx) -> ea_t + @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) + get_nlist_idx(ea) -> size_t + @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) + get_nlist_name(idx) -> char const * + @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 + @param ea (C++: ea_t) + @param gtn_flags (C++: int) Help on function get_visible_name in module ida_name: get_visible_name(*args) get_visible_name(ea, gtn_flags=0) -> qstring + @param ea (C++: ea_t) + @param gtn_flags (C++: int) 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) + hide_name(ea) + @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 *) + is_ident(name) -> bool + @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) + is_ident_cp(cp) -> bool + @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) + is_in_nlist(ea) -> bool + @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 + is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool + @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 + @param ea (C++: ea_t) 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 *) + is_strlit_cp(cp, specific_ranges=None) -> bool + @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 *) + is_uname(name) -> bool + @param name: name to test. may be NULL. (C++: const char *) + @retval: 1 - yes + @retval: 0 - no 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 *) + is_valid_cp(cp, kind, data=None) -> bool + @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 *) + is_valid_typename(name) -> bool + @param name: name to test. may be NULL. (C++: const char *) + @retval: 1 - yes + @retval: 0 - no 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) + is_visible_cp(cp) -> bool + @param cp (C++: wchar32_t) Help on function is_weak_name in module ida_name: is_weak_name(*args) is_weak_name(ea) -> bool + @param ea (C++: ea_t) Help on function make_name_auto in module ida_name: make_name_auto(*args) make_name_auto(ea) -> bool + @param ea (C++: ea_t) Help on function make_name_non_public in module ida_name: make_name_non_public(*args) make_name_non_public(ea) + @param ea (C++: ea_t) Help on function make_name_non_weak in module ida_name: make_name_non_weak(*args) make_name_non_weak(ea) + @param ea (C++: ea_t) Help on function make_name_public in module ida_name: make_name_public(*args) make_name_public(ea) + @param ea (C++: ea_t) Help on function make_name_user in module ida_name: make_name_user(*args) make_name_user(ea) -> bool + @param ea (C++: ea_t) Help on function make_name_weak in module ida_name: make_name_weak(*args) make_name_weak(ea) + @param ea (C++: ea_t) 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) + set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) + @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 + @param ea (C++: ea_t) + @param name (C++: const char *) 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) + set_dummy_name(_from, ea) -> bool + @param _from: linear address of the operand which references to the + address (C++: ea_t) + @param ea: linear address (C++: ea_t) + @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) - 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) + set_name(ea, name, flags=0) -> bool + @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) + @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) - show_name(ea) - - Insert name to the list of names. - - @param ea (C++: ea_t) + show_name(ea) + @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 + validate_name(name, type, flags=0) -> PyObject * + @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 @@ -59738,6 +69802,7 @@ Help on function exist in module ida_netnode: exist(*args) exist(n) -> bool + n: netnode const & Help on class netnode in module ida_netnode: @@ -59748,176 +69813,293 @@ class netnode(__builtin__.object) | | __eq__(self, *args) | __eq__(self, n) -> bool + | n: netnode & + | + | | __eq__(self, x) -> bool + | x: nodeidx_t | | __init__(self, *args) - | __init__(self) -> netnode - | __init__(self, num) -> netnode + | __init__(self, num=nodeidx_t(-1)) -> netnode + | num: nodeidx_t + | + | | __init__(self, _name, namlen=0, do_create=False) -> netnode + | _name: char const * + | namlen: size_t + | do_create: bool | | __ne__(self, *args) | __ne__(self, n) -> bool + | n: netnode & + | + | | __ne__(self, x) -> bool + | x: nodeidx_t | | __repr__ = _swig_repr(self) | | altdel(self, *args) | altdel(self, alt, tag=atag) -> bool - | altdel(self) -> bool + | alt: nodeidx_t + | tag: uchar | | altdel_all(self, *args) - | altdel_all(self, tag) -> bool + | altdel_all(self, tag=atag) -> bool + | tag: uchar | | altdel_ea(self, *args) | altdel_ea(self, ea, tag=atag) -> bool + | ea: ea_t + | tag: uchar | | altdel_idx8(self, *args) | altdel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | altfirst(self, *args) | altfirst(self, tag=atag) -> nodeidx_t + | tag: uchar | | altfirst_idx8(self, *args) | altfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | altlast(self, *args) | altlast(self, tag=atag) -> nodeidx_t + | tag: uchar | | altlast_idx8(self, *args) | altlast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | altnext(self, *args) | altnext(self, cur, tag=atag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | altnext_idx8(self, *args) | altnext_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | altprev(self, *args) | altprev(self, cur, tag=atag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | altprev_idx8(self, *args) | altprev_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | altset(self, *args) | altset(self, alt, value, tag=atag) -> bool + | alt: nodeidx_t + | value: nodeidx_t + | tag: uchar | | altset_ea(self, *args) | altset_ea(self, ea, value, tag=atag) -> bool + | ea: ea_t + | value: nodeidx_t + | tag: uchar | | altset_idx8(self, *args) | altset_idx8(self, alt, val, tag) -> bool + | alt: uchar + | val: nodeidx_t + | tag: uchar | | altshift(self, *args) | altshift(self, _from, to, size, tag=atag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | altval(self, *args) | altval(self, alt, tag=atag) -> nodeidx_t + | alt: nodeidx_t + | tag: uchar | | altval_ea(self, *args) | altval_ea(self, ea, tag=atag) -> nodeidx_t + | ea: ea_t + | tag: uchar | | altval_idx8(self, *args) | altval_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | blobsize(self, *args) | blobsize(self, _start, tag) -> size_t + | _start: nodeidx_t + | tag: uchar | | blobsize_ea(self, *args) | blobsize_ea(self, ea, tag) -> size_t + | ea: ea_t + | tag: uchar | | chardel(self, *args) | chardel(self, alt, tag) -> bool + | alt: nodeidx_t + | tag: uchar | | chardel_ea(self, *args) | chardel_ea(self, ea, tag) -> bool + | ea: ea_t + | tag: uchar | | chardel_idx8(self, *args) | chardel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | charfirst(self, *args) | charfirst(self, tag) -> nodeidx_t + | tag: uchar | | charfirst_idx8(self, *args) | charfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | charlast(self, *args) | charlast(self, tag) -> nodeidx_t + | tag: uchar | | charlast_idx8(self, *args) | charlast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | charnext(self, *args) | charnext(self, cur, tag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | charnext_idx8(self, *args) | charnext_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | charprev(self, *args) | charprev(self, cur, tag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | charprev_idx8(self, *args) | charprev_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | charset(self, *args) | charset(self, alt, val, tag) -> bool + | alt: nodeidx_t + | val: uchar + | tag: uchar | | charset_ea(self, *args) | charset_ea(self, ea, val, tag) -> bool + | ea: ea_t + | val: uchar + | tag: uchar | | charset_idx8(self, *args) | charset_idx8(self, alt, val, tag) -> bool + | alt: uchar + | val: uchar + | tag: uchar | | charshift(self, *args) | charshift(self, _from, to, size, tag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | charval(self, *args) | charval(self, alt, tag) -> uchar + | alt: nodeidx_t + | tag: uchar | | charval_ea(self, *args) | charval_ea(self, ea, tag) -> uchar + | ea: ea_t + | tag: uchar | | charval_idx8(self, *args) | charval_idx8(self, alt, tag) -> uchar + | alt: uchar + | tag: uchar | | copyto(self, *args) | copyto(self, target, count=1) -> size_t + | target: netnode + | count: nodeidx_t | | create(self, *args) | create(self, _name, namlen=0) -> bool - | create(self) -> bool + | _name: char const * + | namlen: size_t | | delblob(self, *args) | delblob(self, _start, tag) -> int + | _start: nodeidx_t + | tag: uchar | | delblob_ea(self, *args) | delblob_ea(self, ea, tag) -> int + | ea: ea_t + | tag: uchar | | delvalue(self, *args) | delvalue(self) -> bool | | eadel(self, *args) | eadel(self, ea, tag) -> bool + | ea: ea_t + | tag: uchar | | eadel_idx8(self, *args) | eadel_idx8(self, idx, tag) -> bool + | idx: uchar + | tag: uchar | | eaget(self, *args) | eaget(self, ea, tag) -> ea_t + | ea: ea_t + | tag: uchar | | eaget_idx(self, *args) | eaget_idx(self, idx, tag) -> ea_t + | idx: nodeidx_t + | tag: uchar | | eaget_idx8(self, *args) | eaget_idx8(self, idx, tag) -> ea_t + | idx: uchar + | tag: uchar | | easet(self, *args) | easet(self, ea, addr, tag) -> bool + | ea: ea_t + | addr: ea_t + | tag: uchar | | easet_idx(self, *args) | easet_idx(self, idx, addr, tag) -> bool + | idx: nodeidx_t + | addr: ea_t + | tag: uchar | | easet_idx8(self, *args) | easet_idx8(self, idx, addr, tag) -> bool + | idx: uchar + | addr: ea_t + | tag: uchar | | end(self, *args) | end(self) -> bool @@ -59927,51 +70109,83 @@ class netnode(__builtin__.object) | | getblob(self, *args) | getblob(self, start, tag) -> PyObject * + | start: nodeidx_t + | tag: char | | getblob_ea(self, *args) | getblob_ea(self, ea, tag) -> PyObject * + | ea: ea_t + | tag: char | | getclob(self, *args) | getclob(self, start, tag) -> PyObject * + | start: nodeidx_t + | tag: char | | hashdel(self, *args) | hashdel(self, idx, tag=htag) -> bool + | idx: char const * + | tag: uchar | | hashdel_all(self, *args) | hashdel_all(self, tag=htag) -> bool + | tag: uchar | | hashfirst(self, *args) | hashfirst(self, tag=htag) -> ssize_t + | tag: uchar | | hashlast(self, *args) | hashlast(self, tag=htag) -> ssize_t + | tag: uchar | | hashnext(self, *args) | hashnext(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashprev(self, *args) | hashprev(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashset(self, *args) | hashset(self, idx, value, tag=htag) -> bool + | idx: char const * + | value: void const * + | tag: uchar | | hashset_buf(self, *args) | hashset_buf(self, idx, py_str, tag=htag) -> bool + | idx: char const * + | py_str: PyObject * + | tag: char | | hashset_idx(self, *args) | hashset_idx(self, idx, value, tag=htag) -> bool + | idx: char const * + | value: nodeidx_t + | tag: uchar | | hashstr(self, *args) | hashstr(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashstr_buf(self, *args) | hashstr_buf(self, idx, tag=htag) -> PyObject * + | idx: char const * + | tag: char | | hashval(self, *args) | hashval(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashval_long(self, *args) | hashval_long(self, idx, tag=htag) -> nodeidx_t + | idx: char const * + | tag: uchar | | index(self, *args) | index(self) -> nodeidx_t @@ -59984,15 +70198,23 @@ class netnode(__builtin__.object) | | lower_bound(self, *args) | lower_bound(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | lower_bound_ea(self, *args) | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t + | ea: ea_t + | tag: uchar | | lower_bound_idx8(self, *args) | lower_bound_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | moveto(self, *args) | moveto(self, target, count=1) -> size_t + | target: netnode + | count: nodeidx_t | | next(self, *args) | next(self) -> bool @@ -60002,94 +70224,153 @@ class netnode(__builtin__.object) | | rename(self, *args) | rename(self, newname, namlen=0) -> bool + | newname: char const * + | namlen: size_t | | set(self, *args) | set(self, value) -> bool + | value: void const * | | set_long(self, *args) | set_long(self, x) -> bool + | x: nodeidx_t | | setblob(self, *args) | setblob(self, buf, _start, tag) -> bool + | buf: void const * + | _start: nodeidx_t + | tag: uchar | | setblob_ea(self, *args) | setblob_ea(self, buf, ea, tag) -> bool + | buf: void const * + | ea: ea_t + | tag: uchar | | start(self, *args) | start(self) -> bool | | supdel(self, *args) | supdel(self, alt, tag=stag) -> bool - | supdel(self) -> bool + | alt: nodeidx_t + | tag: uchar | | supdel_all(self, *args) | supdel_all(self, tag) -> bool + | tag: uchar | | supdel_ea(self, *args) | supdel_ea(self, ea, tag=stag) -> bool + | ea: ea_t + | tag: uchar | | supdel_idx8(self, *args) | supdel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | supdel_range(self, *args) | supdel_range(self, idx1, idx2, tag) -> int + | idx1: nodeidx_t + | idx2: nodeidx_t + | tag: uchar | | supdel_range_idx8(self, *args) | supdel_range_idx8(self, idx1, idx2, tag) -> int + | idx1: uchar + | idx2: uchar + | tag: uchar | | supfirst(self, *args) | supfirst(self, tag=stag) -> nodeidx_t + | tag: uchar | | supfirst_idx8(self, *args) | supfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | suplast(self, *args) | suplast(self, tag=stag) -> nodeidx_t + | tag: uchar | | suplast_idx8(self, *args) | suplast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | supnext(self, *args) | supnext(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | supnext_idx8(self, *args) | supnext_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | supprev(self, *args) | supprev(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | supprev_idx8(self, *args) | supprev_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | supset(self, *args) | supset(self, alt, value, tag=stag) -> bool + | alt: nodeidx_t + | value: void const * + | tag: uchar | | supset_ea(self, *args) | supset_ea(self, ea, value, tag=stag) -> bool + | ea: ea_t + | value: void const * + | tag: uchar | | supset_idx8(self, *args) | supset_idx8(self, alt, value, tag) -> bool + | alt: uchar + | value: void const * + | tag: uchar | | supshift(self, *args) | supshift(self, _from, to, size, tag=stag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | supstr(self, *args) | supstr(self, alt, tag=stag) -> ssize_t + | alt: nodeidx_t + | tag: uchar | | supstr_ea(self, *args) | supstr_ea(self, ea, tag=stag) -> ssize_t + | ea: ea_t + | tag: uchar | | supstr_idx8(self, *args) | supstr_idx8(self, alt, tag) -> ssize_t + | alt: uchar + | tag: uchar | | supval(self, *args) | supval(self, alt, tag=stag) -> ssize_t + | alt: nodeidx_t + | tag: uchar | | supval_ea(self, *args) | supval_ea(self, ea, tag=stag) -> ssize_t + | ea: ea_t + | tag: uchar | | supval_idx8(self, *args) | supval_idx8(self, alt, tag) -> ssize_t + | alt: uchar + | tag: uchar | | valobj(self, *args) | valobj(self) -> ssize_t @@ -60127,69 +70408,58 @@ A number to represent a bad netnode reference. 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 + add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t + @param insn: the referencing instruction - an ida_ua.insn_t, or an + address (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) + calc_basevalue(target, base) -> 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) - 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 + calc_offset_base(ea, n) -> ea_t + @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) + calc_probable_base_by_value(ea, off) -> ea_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) - 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 @@ -60199,87 +70469,79 @@ calc_reference_data(*args) 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 + calc_reference_data(target, base, _from, ri, opval) -> bool + @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' . + calc_target(_from, opval, ri) -> ea_t + @param _from (C++: ea_t) + @param opval (C++: adiff_t) + @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) + + calc_target(_from, ea, n, opval) -> ea_t + @param _from (C++: ea_t) + ea: ea_t + n: int + @param opval (C++: adiff_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) + can_be_off32(ea) -> ea_t + @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 + get_default_reftype(ea) -> reftype_t + @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 + get_offbase(ea, n) -> ea_t + @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) + get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str + @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 @@ -60293,70 +70555,66 @@ get_offset_expression(*args) 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) + get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str + @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) + @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) - 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) + op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + @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 + op_offset_ex(ea, n, ri) -> bool + @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) + op_plain_offset(ea, n, base) -> bool + @param ea (C++: ea_t) + @param n (C++: int) + @param base (C++: ea_t) Help on class __qmutex_t in module ida_pro: @@ -60555,13 +70813,15 @@ class boolvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< bool > const & | | __getitem__(self, *args) | __getitem__(self, i) -> bool const & + | i: size_t | | __init__(self, *args) | __init__(self) -> boolvec_t - | __init__(self, x) -> boolvec_t + | x: qvector< bool > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60570,17 +70830,22 @@ class boolvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< bool > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: bool const & | | _del(self, *args) | _del(self, x) -> bool + | x: bool const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: bool const & | | append = push_back(self, *args) | @@ -60608,52 +70873,74 @@ class boolvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< bool >::iterator + | it: qvector< bool >::iterator + | + | | erase(self, first, last) -> qvector< bool >::iterator + | first: qvector< bool >::iterator + | last: qvector< bool >::iterator | | extract(self, *args) | extract(self) -> bool * | | find(self, *args) | find(self, x) -> qvector< bool >::iterator + | x: bool const & + | + | | find(self, x) -> qvector< bool >::const_iterator + | x: bool const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=bool()) + | x: bool const & | | has(self, *args) | has(self, x) -> bool + | x: bool const & | | inject(self, *args) | inject(self, s, len) + | s: bool * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< bool >::iterator + | it: qvector< bool >::iterator + | x: bool const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> bool & + | x: bool const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: bool const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< bool > & | | truncate(self, *args) | truncate(self) @@ -60736,26 +71023,28 @@ class channel_redir_t(__builtin__.object) 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 *) + check_process_exit(handle, exit_code, msecs=-1) -> int + @param handle: process handle to wait for (C++: void *) + @param exit_code: pointer to the buffer for the exit code (C++: int *) + msecs: int + @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 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) + clear_bits(bitmap, low, high) + @param bitmap (C++: uchar *) + @param low (C++: size_t) + @param high (C++: size_t) Help on class ea_array in module ida_pro: @@ -60766,14 +71055,18 @@ class ea_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> ea_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> ea_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) + | index: size_t + | value: ea_t | | cast(self, *args) | cast(self) -> ea_t * @@ -60783,6 +71076,7 @@ class ea_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> ea_array + | t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -60806,6 +71100,7 @@ Help on function ea_array_frompointer in module ida_pro: ea_array_frompointer(*args) ea_array_frompointer(t) -> ea_array + t: ea_t * Help on class ea_pointer in module ida_pro: @@ -60821,6 +71116,7 @@ class ea_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) + | value: ea_t | | cast(self, *args) | cast(self) -> ea_t * @@ -60833,6 +71129,7 @@ class ea_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> ea_pointer + | t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -60856,19 +71153,18 @@ Help on function ea_pointer_frompointer in module ida_pro: ea_pointer_frompointer(*args) ea_pointer_frompointer(t) -> ea_pointer + t: ea_t * 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) + extend_sign(v, nbytes, sign_extend) -> uint64 + @param v (C++: uint64) + @param nbytes (C++: int) + @param sign_extend (C++: bool) Help on class instant_dbgopts_t in module ida_pro: @@ -60933,13 +71229,15 @@ class longlongvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< long long > const & | | __getitem__(self, *args) | __getitem__(self, i) -> long long const & + | i: size_t | | __init__(self, *args) | __init__(self) -> longlongvec_t - | __init__(self, x) -> longlongvec_t + | x: qvector< long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -60948,17 +71246,22 @@ class longlongvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: long long const & | | _del(self, *args) | _del(self, x) -> bool + | x: long long const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: long long const & | | append = push_back(self, *args) | @@ -60986,49 +71289,70 @@ class longlongvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< long long >::iterator + | it: qvector< long long >::iterator + | + | | erase(self, first, last) -> qvector< long long >::iterator + | first: qvector< long long >::iterator + | last: qvector< long long >::iterator | | extract(self, *args) | extract(self) -> long long * | | find(self, *args) | find(self, x) -> qvector< long long >::iterator + | x: long long const & + | + | | find(self, x) -> qvector< long long >::const_iterator + | x: long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: long long const & | | inject(self, *args) | inject(self, s, len) + | s: long long * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< long long >::iterator + | it: qvector< long long >::iterator + | x: long long const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> long long & + | x: long long const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: long long const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< long long > & | | truncate(self, *args) | truncate(self) @@ -61065,6 +71389,7 @@ class int_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) + | value: int | | cast(self, *args) | cast(self) -> int * @@ -61077,6 +71402,7 @@ class int_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> int_pointer + | t: int * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61100,6 +71426,7 @@ Help on function int_pointer_frompointer in module ida_pro: int_pointer_frompointer(*args) int_pointer_frompointer(t) -> int_pointer + t: int * Help on class intvec_t in module ida_pro: @@ -61110,13 +71437,15 @@ class intvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> int const & + | i: size_t | | __init__(self, *args) | __init__(self) -> intvec_t - | __init__(self, x) -> intvec_t + | x: qvector< int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61125,17 +71454,22 @@ class intvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: int const & | | _del(self, *args) | _del(self, x) -> bool + | x: int const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: int const & | | append = push_back(self, *args) | @@ -61163,49 +71497,70 @@ class intvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< int >::iterator + | it: qvector< int >::iterator + | + | | erase(self, first, last) -> qvector< int >::iterator + | first: qvector< int >::iterator + | last: qvector< int >::iterator | | extract(self, *args) | extract(self) -> int * | | find(self, *args) | find(self, x) -> qvector< int >::iterator + | x: int const & + | + | | find(self, x) -> qvector< int >::const_iterator + | x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: int const & | | inject(self, *args) | inject(self, s, len) + | s: int * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< int >::iterator + | it: qvector< int >::iterator + | x: int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< int > & | | truncate(self, *args) | truncate(self) @@ -61231,71 +71586,58 @@ class intvec_t(__builtin__.object) 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) + is_control_tty(fd) -> enum tty_control_t + @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) + log2ceil(d64) -> int + @param d64 (C++: uint64) Help on function log2floor in module ida_pro: log2floor(*args) log2floor(d64) -> int + @param d64 (C++: uint64) 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 + parse_dbgopts(ido, r_switch) -> bool + @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 + @param nptr (C++: const char *) 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 @@ -61303,12 +71645,10 @@ qdetach_tty(*args) 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) + qexit(code) + @param code: exit code (C++: int) Help on class qmutex_locker_t in module ida_pro: @@ -61319,6 +71659,7 @@ class qmutex_locker_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _lock) -> qmutex_locker_t + | _lock: qmutex_t | | __repr__ = _swig_repr(self) | @@ -61352,7 +71693,9 @@ class qrefcnt_obj_t(__builtin__.object) | __repr__ = _swig_repr(self) | | release(self, *args) - | 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: @@ -61379,21 +71722,29 @@ Help on function qstrvec_t_add in module ida_pro: qstrvec_t_add(*args) qstrvec_t_add(_self, s) -> bool + self: PyObject * + s: char const * Help on function qstrvec_t_addressof in module ida_pro: qstrvec_t_addressof(*args) qstrvec_t_addressof(_self, idx) -> PyObject * + self: PyObject * + idx: size_t Help on function qstrvec_t_assign in module ida_pro: qstrvec_t_assign(*args) qstrvec_t_assign(_self, other) -> bool + self: PyObject * + other: PyObject * Help on function qstrvec_t_clear in module ida_pro: qstrvec_t_clear(*args) qstrvec_t_clear(_self, qclear) -> bool + self: PyObject * + qclear: bool Help on function qstrvec_t_create in module ida_pro: @@ -61404,97 +71755,123 @@ Help on function qstrvec_t_destroy in module ida_pro: qstrvec_t_destroy(*args) qstrvec_t_destroy(py_obj) -> bool + py_obj: PyObject * Help on function qstrvec_t_from_list in module ida_pro: qstrvec_t_from_list(*args) qstrvec_t_from_list(_self, py_list) -> bool + self: PyObject * + py_list: PyObject * Help on function qstrvec_t_get in module ida_pro: qstrvec_t_get(*args) qstrvec_t_get(_self, idx) -> PyObject * + self: PyObject * + idx: size_t Help on function qstrvec_t_get_clink in module ida_pro: qstrvec_t_get_clink(*args) qstrvec_t_get_clink(_self) -> qstrvec_t * + self: PyObject * 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 * + self: PyObject * Help on function qstrvec_t_insert in module ida_pro: qstrvec_t_insert(*args) qstrvec_t_insert(_self, idx, s) -> bool + self: PyObject * + idx: size_t + s: char const * Help on function qstrvec_t_remove in module ida_pro: qstrvec_t_remove(*args) qstrvec_t_remove(_self, idx) -> bool + self: PyObject * + idx: size_t Help on function qstrvec_t_set in module ida_pro: qstrvec_t_set(*args) qstrvec_t_set(_self, idx, s) -> bool + self: PyObject * + idx: size_t + s: char const * Help on function qstrvec_t_size in module ida_pro: qstrvec_t_size(*args) qstrvec_t_size(_self) -> size_t + self: PyObject * + +Help on function qthread_equal in module ida_pro: + +qthread_equal(*args) + Are two threads equal? + + qthread_equal(q1, q2) -> bool + @param q1 (C++: qthread_t) + @param q2 (C++: qthread_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' + quote_cmdline_arg(arg) -> bool + @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 + qvector_reserve(vec, old, cnt, elsize) -> void * + @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 + readbytes(h, res, size, mf) -> int + @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) + @param value (C++: void *) + @param size (C++: int) + @param delta (C++: adiff_t) + @param mf (C++: bool) Help on function relocate_relobj in module ida_pro: relocate_relobj(*args) relocate_relobj(_relobj, ea, mf) -> bool + @param _relobj (C++: struct relobj_t *) + @param ea (C++: ea_t) + @param mf (C++: bool) Help on class sel_array in module ida_pro: @@ -61505,14 +71882,18 @@ class sel_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> sel_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> sel_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) + | index: size_t + | value: sel_t | | cast(self, *args) | cast(self) -> sel_t * @@ -61522,6 +71903,7 @@ class sel_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sel_array + | t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61545,6 +71927,7 @@ Help on function sel_array_frompointer in module ida_pro: sel_array_frompointer(*args) sel_array_frompointer(t) -> sel_array + t: sel_t * Help on class sel_pointer in module ida_pro: @@ -61560,6 +71943,7 @@ class sel_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) + | value: sel_t | | cast(self, *args) | cast(self) -> sel_t * @@ -61572,6 +71956,7 @@ class sel_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sel_pointer + | t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61595,19 +71980,17 @@ Help on function sel_pointer_frompointer in module ida_pro: sel_pointer_frompointer(*args) sel_pointer_frompointer(t) -> sel_pointer + t: sel_t * 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) + set_bits(bitmap, low, high) + @param bitmap (C++: uchar *) + @param low (C++: size_t) + @param high (C++: size_t) Help on class sizevec_t in module ida_pro: @@ -61618,13 +72001,15 @@ class sizevec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< size_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> size_t const & + | i: size_t | | __init__(self, *args) | __init__(self) -> sizevec_t - | __init__(self, x) -> sizevec_t + | x: qvector< size_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61634,20 +72019,26 @@ class sizevec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< size_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: size_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: size_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: size_t const & | | at(self, *args) | at(self, _idx) -> size_t const & + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -61671,52 +72062,74 @@ class sizevec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< size_t >::iterator + | it: qvector< size_t >::iterator + | + | | erase(self, first, last) -> qvector< size_t >::iterator + | first: qvector< size_t >::iterator + | last: qvector< size_t >::iterator | | extract(self, *args) | extract(self) -> size_t * | | find(self, *args) | find(self, x) -> qvector< size_t >::iterator + | x: size_t const & + | + | | find(self, x) -> qvector< size_t >::const_iterator + | x: size_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=size_t()) + | x: size_t const & | | has(self, *args) | has(self, x) -> bool + | x: size_t const & | | inject(self, *args) | inject(self, s, len) + | s: size_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< size_t >::iterator + | it: qvector< size_t >::iterator + | x: size_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> size_t & + | x: size_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: size_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< size_t > & | | truncate(self, *args) | truncate(self) @@ -61743,8 +72156,6 @@ 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 @@ -61758,10 +72169,11 @@ class strvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> simpleline_t const & + | i: size_t | | __init__(self, *args) | __init__(self) -> strvec_t - | __init__(self, x) -> strvec_t + | x: qvector< simpleline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -61772,6 +72184,8 @@ class strvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: simpleline_t const & | | append = push_back(self, *args) | @@ -61799,7 +72213,12 @@ class strvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< simpleline_t >::iterator + | it: qvector< simpleline_t >::iterator + | + | | erase(self, first, last) -> qvector< simpleline_t >::iterator + | first: qvector< simpleline_t >::iterator + | last: qvector< simpleline_t >::iterator | | extract(self, *args) | extract(self) -> simpleline_t * @@ -61809,35 +72228,47 @@ class strvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=simpleline_t()) + | x: simpleline_t const & | | inject(self, *args) | inject(self, s, len) + | s: simpleline_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< simpleline_t >::iterator + | it: qvector< simpleline_t >::iterator + | x: simpleline_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> simpleline_t & + | x: simpleline_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: simpleline_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< simpleline_t > & | | truncate(self, *args) | truncate(self) @@ -61874,6 +72305,7 @@ class sval_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) + | value: sval_t | | cast(self, *args) | cast(self) -> sval_t * @@ -61886,6 +72318,7 @@ class sval_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sval_pointer + | t: sval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61909,6 +72342,7 @@ Help on function sval_pointer_frompointer in module ida_pro: sval_pointer_frompointer(*args) sval_pointer_frompointer(t) -> sval_pointer + t: sval_t * Help on class tid_array in module ida_pro: @@ -61919,14 +72353,18 @@ class tid_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> tid_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> tid_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) + | index: size_t + | value: tid_t | | cast(self, *args) | cast(self) -> tid_t * @@ -61936,6 +72374,7 @@ class tid_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> tid_array + | t: tid_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61959,6 +72398,7 @@ Help on function tid_array_frompointer in module ida_pro: tid_array_frompointer(*args) tid_array_frompointer(t) -> tid_array + t: tid_t * Help on class uchar_array in module ida_pro: @@ -61969,14 +72409,18 @@ class uchar_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> uchar + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uchar_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) + | index: size_t + | value: uchar | | cast(self, *args) | cast(self) -> uchar * @@ -61986,6 +72430,7 @@ class uchar_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> uchar_array + | t: uchar * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62009,6 +72454,7 @@ Help on function uchar_array_frompointer in module ida_pro: uchar_array_frompointer(*args) uchar_array_frompointer(t) -> uchar_array + t: uchar * Help on class ulonglongvec_t in module ida_pro: @@ -62019,13 +72465,15 @@ class ulonglongvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< unsigned long long > const & | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned long long const & + | i: size_t | | __init__(self, *args) | __init__(self) -> ulonglongvec_t - | __init__(self, x) -> ulonglongvec_t + | 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. @@ -62034,17 +72482,22 @@ class ulonglongvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< unsigned long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: unsigned long long const & | | _del(self, *args) | _del(self, x) -> bool + | x: unsigned long long const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: unsigned long long const & | | append = push_back(self, *args) | @@ -62072,49 +72525,70 @@ class ulonglongvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< unsigned long long >::iterator + | it: qvector< unsigned long long >::iterator + | + | | erase(self, first, last) -> qvector< unsigned long long >::iterator + | first: qvector< unsigned long long >::iterator + | 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 + | x: unsigned long long const & + | + | | find(self, x) -> qvector< unsigned long long >::const_iterator + | x: unsigned long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: unsigned long long const & | | inject(self, *args) | inject(self, s, len) + | s: unsigned long long * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned long long >::iterator + | it: qvector< unsigned long long >::iterator + | x: unsigned long long const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> unsigned long long & + | x: unsigned long long const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned long long const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< unsigned long long > & | | truncate(self, *args) | truncate(self) @@ -62146,13 +72620,15 @@ class uintvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< unsigned int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned int const & + | i: size_t | | __init__(self, *args) | __init__(self) -> uintvec_t - | __init__(self, x) -> uintvec_t + | x: qvector< unsigned int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -62161,17 +72637,22 @@ class uintvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< unsigned int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: unsigned int const & | | _del(self, *args) | _del(self, x) -> bool + | x: unsigned int const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: unsigned int const & | | append = push_back(self, *args) | @@ -62199,49 +72680,70 @@ class uintvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< unsigned int >::iterator + | it: qvector< unsigned int >::iterator + | + | | erase(self, first, last) -> qvector< unsigned int >::iterator + | first: qvector< unsigned int >::iterator + | last: qvector< unsigned int >::iterator | | extract(self, *args) | extract(self) -> unsigned int * | | find(self, *args) | find(self, x) -> qvector< unsigned int >::iterator + | x: unsigned int const & + | + | | find(self, x) -> qvector< unsigned int >::const_iterator + | x: unsigned int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: unsigned int const & | | inject(self, *args) | inject(self, s, len) + | s: unsigned int * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned int >::iterator + | it: qvector< unsigned int >::iterator + | x: unsigned int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> unsigned int & + | x: unsigned int const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< unsigned int > & | | truncate(self, *args) | truncate(self) @@ -62273,14 +72775,18 @@ class uval_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> uval_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uval_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) + | index: size_t + | value: uval_t | | cast(self, *args) | cast(self) -> uval_t * @@ -62290,6 +72796,7 @@ class uval_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> uval_array + | t: uval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62313,20 +72820,19 @@ Help on function uval_array_frompointer in module ida_pro: uval_array_frompointer(*args) uval_array_frompointer(t) -> uval_array + t: uval_t * 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 + writebytes(h, l, size, mf) -> int + @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 @@ -62336,7 +72842,7 @@ UTF-16 codepage. ida_pro.IDA_SDK_VERSION """ -IDA SDK v7.4. +IDA SDK v7.5. """ ida_pro.IDBDEC_ESCAPE @@ -62383,86 +72889,73 @@ endian (Intel 80x86). 1: big endian (PowerPC). 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 + forget_problem(type, ea) -> bool + @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 + get_problem(type, lowea) -> ea_t + @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 + get_problem_desc(t, ea) -> str + @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) + get_problem_name(type, longname=True) -> char const * + @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) + is_problem_present(t, ea) -> bool + @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 *) + remember_problem(type, ea, msg=None) + @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 + @param ea (C++: ea_t) Help on class array_of_rangesets in module ida_range: @@ -62473,13 +72966,15 @@ class array_of_rangesets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< rangeset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> rangeset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_rangesets - | __init__(self, x) -> array_of_rangesets + | x: qvector< rangeset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -62489,20 +72984,26 @@ class array_of_rangesets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< rangeset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: rangeset_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: rangeset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: rangeset_t const & | | at(self, *args) | at(self, _idx) -> rangeset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -62526,52 +73027,74 @@ class array_of_rangesets(__builtin__.object) | | erase(self, *args) | erase(self, it) -> rangeset_t + | it: qvector< rangeset_t >::iterator + | + | | erase(self, first, last) -> rangeset_t + | first: qvector< rangeset_t >::iterator + | last: qvector< rangeset_t >::iterator | | extract(self, *args) | extract(self) -> rangeset_t | | find(self, *args) | find(self, x) -> rangeset_t + | x: rangeset_t const & + | + | | find(self, x) -> rangeset_t + | x: rangeset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=rangeset_t()) + | x: rangeset_t const & | | has(self, *args) | has(self, x) -> bool + | x: rangeset_t const & | | inject(self, *args) | inject(self, s, len) + | s: rangeset_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> rangeset_t + | it: qvector< rangeset_t >::iterator + | x: rangeset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> rangeset_t + | x: rangeset_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: rangeset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< rangeset_t > & | | truncate(self, *args) | truncate(self) @@ -62603,19 +73126,24 @@ class range_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __init__(self, *args) | __init__(self) -> range_t - | __init__(self, ea1, ea2) -> range_t + | ea1: ea_t + | ea2: ea_t | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | __repr__ = _swig_repr(self) | @@ -62623,29 +73151,48 @@ class range_t(__builtin__.object) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62678,10 +73225,10 @@ class range_t(__builtin__.object) 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! + + range_t_print(cb) -> str + cb: range_t const * Help on class rangeset_t in module ida_range: @@ -62692,13 +73239,17 @@ class rangeset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, aset) -> bool + | aset: rangeset_t const & | | __getitem__(self, idx) | | __init__(self, *args) | __init__(self) -> rangeset_t - | __init__(self, range) -> rangeset_t + | range: range_t const & + | + | | __init__(self, ivs) -> rangeset_t + | ivs: rangeset_t const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -62707,6 +73258,7 @@ class rangeset_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, aset) -> bool + | aset: rangeset_t const & | | __repr__ = _swig_repr(self) | @@ -62714,78 +73266,160 @@ class rangeset_t(__builtin__.object) | _print(self) -> size_t | | add(self, *args) + | Add an address range to the set. If 'range' intersects an existing + | element e, then e is extended to include 'range', and any superfluous + | elements (subsets of e) are removed. + | | add(self, range) -> bool + | @param range: address range to add. cannot be empty (C++: const + | range_t &) + | @return: false if no elements were added (the set was unchanged) + | + | | add(self, start, _end) -> bool + | start: ea_t + | _end: ea_t + | @return: false if no elements were added (the set was unchanged) + | + | | add(self, aset) -> bool + | aset: rangeset_t const & + | @return: false if no elements were added (the set was unchanged) | | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t + | Get an iterator that points to the first element in the set. | | cached_range(self, *args) - | cached_range(self) -> range_t + | When searching the rangeset, we keep a cached element to help speed up + | searches. | | clear(self, *args) - | clear(self) + | Delete all elements from the set. See 'qvector::clear()' | | contains(self, *args) + | Does an element of the rangeset contain 'ea'? See + | range_t::contains(ea_t) + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, aset) -> bool + | aset: rangeset_t const & | | empty(self, *args) - | empty(self) -> bool + | Does the set have zero elements. | | end(self, *args) - | 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) + | Get the element from the set that contains 'ea'. + | | find_range(self, ea) -> range_t + | @param ea (C++: ea_t) + | @return: NULL if there is no such element | | getrange(self, *args) + | Get the 'range_t' at index 'idx'. + | | getrange(self, idx) -> range_t + | @param idx (C++: int) | | has_common(self, *args) + | Is there an ea in 'range' that is also in the rangeset? + | | has_common(self, range) -> bool + | @param range (C++: const range_t &) + | + | | has_common(self, aset) -> bool + | aset: rangeset_t const & | | includes(self, *args) + | Is every ea in 'range' contained in the rangeset? + | | includes(self, range) -> bool + | @param range (C++: const range_t &) | | intersect(self, *args) + | Set the rangeset to its intersection with 'aset'. + | | intersect(self, aset) -> bool + | @param aset (C++: const rangeset_t &) + | @return: false if the set was unchanged | | is_equal(self, *args) + | Do this rangeset and 'aset' have identical elements? + | | is_equal(self, aset) -> bool + | @param aset (C++: const rangeset_t &) | | is_subset_of(self, *args) + | Is every element in the rangeset contained in an element of 'aset'? + | | is_subset_of(self, aset) -> bool + | @param aset (C++: const rangeset_t &) | | lastrange(self, *args) - | lastrange(self) -> range_t + | Get the last 'range_t' in the set. | | next_addr(self, *args) + | Get the smallest ea_t value greater than 'ea' contained in the + | rangeset. + | | next_addr(self, ea) -> ea_t + | @param ea (C++: ea_t) | | next_range(self, *args) + | Get the smallest ea_t value greater than 'ea' that is not in the same + | range as 'ea'. + | | next_range(self, ea) -> ea_t + | @param ea (C++: ea_t) | | nranges(self, *args) - | nranges(self) -> size_t + | Get the number of 'range_t' elements in the set. | | prev_addr(self, *args) + | Get the largest ea_t value less than 'ea' contained in the rangeset. + | | prev_addr(self, ea) -> ea_t + | @param ea (C++: ea_t) | | prev_range(self, *args) + | Get the largest ea_t value less than 'ea' that is not in the same + | range as 'ea'. + | | prev_range(self, ea) -> ea_t + | @param ea (C++: ea_t) | | sub(self, *args) + | Subtract an address range from the set. All subsets of 'range' will be + | removed, and all elements that intersect 'range' will be + | truncated/split so they do not include 'range'. + | | sub(self, range) -> bool + | @param range: address range to subtract. cannot be empty. (C++: const + | range_t &) + | @return: false if nothing was subtracted (the set was unchanged) + | + | | sub(self, ea) -> bool + | ea: ea_t + | @return: false if nothing was subtracted (the set was unchanged) + | + | | sub(self, aset) -> bool + | aset: rangeset_t const & + | @return: false if nothing was subtracted (the set was unchanged) | | swap(self, *args) + | Set this = 'r' and 'r' = this. See 'qvector::swap()' + | | swap(self, r) + | @param r (C++: rangeset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62814,13 +73448,15 @@ class rangevec_base_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __init__(self, *args) | __init__(self) -> rangevec_base_t - | __init__(self, x) -> rangevec_base_t + | x: qvector< range_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -62830,20 +73466,26 @@ class rangevec_base_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -62867,52 +73509,74 @@ class rangevec_base_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -62969,9 +73633,11 @@ class rangevec_t(rangevec_base_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -62981,18 +73647,24 @@ class rangevec_t(rangevec_base_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -63016,52 +73688,74 @@ class rangevec_t(rangevec_base_t) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -63078,59 +73772,47 @@ class rangevec_t(rangevec_base_t) 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 + reg_data_type(name, subkey=None) -> regval_type_t + @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 + reg_delete(name, subkey=None) -> bool + @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 *) + reg_delete_subkey(name) -> bool + @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 *) + reg_delete_tree(name) -> bool + @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 *) + reg_exists(name, subkey=None) -> bool + @param name: value name (C++: const char *) + @param subkey: parent key (C++: const char *) Help on function reg_flush in module ida_registry: @@ -63145,176 +73827,146 @@ reg_load(*args) 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. + reg_read_binary(name, subkey=None) -> PyObject * + @param name: value name (C++: const char *) + @param subkey: key name (C++: const char *) + @return: success 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 + reg_read_bool(name, defval, subkey=None) -> bool + @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 + reg_read_int(name, defval, subkey=None) -> int + @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 + reg_read_string(name, subkey=None, _def=None) -> PyObject * + @param name: value name (C++: const char *) + @param subkey: key name (C++: const char *) + def: char const * + @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 *) + reg_read_strlist(subkey) + @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 *) + reg_subkey_exists(name) -> bool + @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 *) + reg_subkey_subkeys(name) -> PyObject * + @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 *) + reg_subkey_values(name) -> PyObject * + @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 *) + reg_update_filestrlist(subkey, add, maxrecs, rem=None) + @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) + reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) + @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 *) + reg_write_binary(name, py_bytes, subkey=None) -> PyObject * + @param name: value name (C++: const char *) + py_bytes: PyObject * + @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 *) + reg_write_bool(name, value, subkey=None) + @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 *) + reg_write_int(name, value, subkey=None) + @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 *) + reg_write_string(name, utf8, subkey=None) + @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 @@ -63328,146 +73980,137 @@ Help on function find_binary in module ida_search: find_binary(*args) find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t + Deprecated. Please use ida_bytes.bin_search() instead. 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) + find_code(ea, sflag) -> ea_t + @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) + find_data(ea, sflag) -> ea_t + @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) + find_defined(ea, sflag) -> ea_t + @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) + find_error(ea, sflag) -> ea_t + @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) + find_imm(ea, sflag, search_value) -> ea_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) - 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) + find_not_func(ea, sflag) -> ea_t + @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. + find_notype(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) + +Help on function find_reg_access in module ida_search: + +find_reg_access(*args) + Find access to a register.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. - @param ea (C++: ea_t) - @param sflag (C++: int) + find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t + @param out: 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. (C++: + struct reg_access_t *) + @param start_ea: starting address (C++: ea_t) + @param end_ea: 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. (C++: + ea_t) + @param regname: the register to search for. (C++: const char *) + @param sflag: combination of Search flags bits. (C++: int) + @return: the found address. BADADDR if not found or error. 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) + find_suspop(ea, sflag) -> ea_t + @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) + find_text(start_ea, y, x, ustr, sflag) -> ea_t + @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) + find_unknown(ea, sflag) -> ea_t + @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) + search_down(sflag) -> bool + @param sflag (C++: int) === ida_search EPYDOC INJECTIONS === ida_search.SEARCH_BRK """ -return 'BADADDR' if Ctrl-Break wass pressed during search +return 'BADADDR' if the search was cancelled. """ ida_search.SEARCH_CASE @@ -63475,6 +74118,11 @@ ida_search.SEARCH_CASE case-sensitive search (case-insensitive otherwise) """ +ida_search.SEARCH_DEF +""" +find_reg_access: search for a definition (write access) +""" + ida_search.SEARCH_DOWN """ search towards higher addresses @@ -63488,37 +74136,40 @@ 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(). +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. """ ida_search.SEARCH_NOBRK """ -don't test for ctrl-break to interrupt the search +do not test if the user clicked cancel to interrupt the search """ ida_search.SEARCH_NOSHOW """ -don't display the search progress/refresh screen +do not display the search progress/refresh screen """ ida_search.SEARCH_REGEX """ -regular expressions in search string (only supported for txt search) +regular expressions in search string (supported only for the text +search) """ ida_search.SEARCH_UP """ search towards lower addresses """ + +ida_search.SEARCH_USE +""" +find_reg_access: search for a use (read access) +""" === 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 @@ -63528,488 +74179,407 @@ add_segm(*args) 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) + add_segm(para, start, end, name, sclass, flags=0) -> bool + @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) + @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) - 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) + add_segm_ex(s, name, sclass, flags) -> bool + @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) + @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) - 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) + add_segment_translation(segstart, mappedseg) -> bool + @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) + @retval: 1 - ok + @retval: 0 - too many translations or bad segstart 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 + allocate_selector(segbase) -> sel_t + @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 + change_segment_status(s, is_deb_segm) -> int + @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) + del_segm(ea, flags) -> bool + @param ea: any address belonging to the segment (C++: ea_t) + @param flags: Segment modification flags (C++: int) + @retval: 1 - ok + @retval: 0 - failed, no segment at 'ea'. 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) + del_segment_translations(segstart) + @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) + del_selector(selector) + @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 + find_selector(base) -> sel_t + @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 + s: segment_t * + reg: int 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 + get_group_selector(grpsel) -> sel_t + @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) + get_next_seg(ea) -> segment_t + @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) + get_prev_seg(ea) -> segment_t + @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 + get_segm_base(s) -> ea_t + @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 + get_segm_by_name(name) -> segment_t + @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 + get_segm_by_sel(selector) -> segment_t + @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) + get_segm_class(s) -> str + @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) + get_segm_name(s, flags=0) -> str + @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) + get_segm_num(ea) -> int + @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 + get_segm_para(s) -> ea_t + @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. + get_segment_alignment(align) -> char const * + @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 + get_segment_cmt(s, repeatable) -> str + @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. + get_segment_combination(comb) -> char const * + @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. + get_segment_translations(transmap, segstart) -> ssize_t + @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) + get_visible_segm_name(s) -> str + @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) + getn_selector(n) -> bool + @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 + getnseg(n) -> segment_t + @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 + getseg(ea) -> segment_t + @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 *) + is_finally_visible_segm(s) -> bool + @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 *) + is_segm_locked(segm) -> bool + @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) + is_spec_ea(ea) -> bool + @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) + is_spec_segm(seg_type) -> bool + @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 *) + is_visible_segm(s) -> bool + @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) + lock_segm(segm, lock) + @param segm (C++: const segment_t *) + @param lock (C++: bool) Help on class lock_segment in module ida_segment: @@ -64020,6 +74590,7 @@ class lock_segment(__builtin__.object) | | __init__(self, *args) | __init__(self, _segm) -> lock_segment + | _segm: segment_t const * | | __repr__ = _swig_repr(self) | @@ -64044,9 +74615,6 @@ class lock_segment(__builtin__.object) 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 @@ -64054,17 +74622,15 @@ move_segm(*args) 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 + move_segm(s, to, flags=0) -> int + @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 @@ -64075,55 +74641,50 @@ move_segm_start(*args) 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) + move_segm_start(ea, newstart, mode) -> bool + @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) + @retval: 1 - ok + @retval: 0 - failed, a warning message is displayed 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 + rebase_program(delta, flags) -> int + @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) + segm_adjust_diff(s, delta) -> adiff_t + @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) + segm_adjust_ea(s, ea) -> ea_t + @param s (C++: const segment_t *) + @param ea (C++: ea_t) Help on class segment_t in module ida_segment: @@ -64143,10 +74704,10 @@ class segment_t(ida_range.range_t) | __repr__ = _swig_repr(self) | | abits(self, *args) - | abits(self) -> int + | Get number of address bits. | | abytes(self, *args) - | abytes(self) -> int + | Get number of address bytes. | | clr_comorg(self, *args) | clr_comorg(self) @@ -64177,30 +74738,38 @@ class segment_t(ida_range.range_t) | | set_debugger_segm(self, *args) | set_debugger_segm(self, debseg) + | debseg: bool | | set_header_segm(self, *args) | set_header_segm(self, on) + | on: bool | | set_hidden_segtype(self, *args) | set_hidden_segtype(self, hide) + | hide: bool | | set_loader_segm(self, *args) | set_loader_segm(self, ldrseg) + | ldrseg: bool | | set_ob_ok(self, *args) | set_ob_ok(self) | | set_visible_segm(self, *args) | set_visible_segm(self, visible) + | visible: bool | | update(self, *args) - | 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. | | use32(self, *args) - | use32(self) -> bool + | Use 32 bit segment addressing? | | use64(self, *args) - | use64(self) -> bool + | Use 64 bit segment addressing? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64261,43 +74830,66 @@ class segment_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -64315,221 +74907,202 @@ class segment_t(ida_range.range_t) 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' + segtype(ea) -> uchar + @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); + sel2ea(selector) -> ea_t + @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'. + sel2para(selector) -> ea_t + @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) + s: segment_t * + reg: int + value: sel_t Help on function set_group_selector in module ida_segment: set_group_selector(*args) + Create a new group of segments (used OMF files). + 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 + @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 + set_segm_addressing(s, bitness) -> bool + @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) + set_segm_base(s, newbase) -> bool + @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) + set_segm_class(s, sclass, flags=0) -> int + @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) + @retval: 1 - ok, name is good and segment is renamed + @retval: 0 - failure, name is NULL or bad or segment is NULL 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) + set_segm_end(ea, newend, flags) -> bool + @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) + @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) - 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) + set_segm_name(s, name, flags=0) -> int + @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) + @retval: 1 - ok, name is good and segment is renamed + @retval: 0 - failure, name is bad or segment is NULL 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) + set_segm_start(ea, newstart, flags) -> bool + @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) + @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) - 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) + set_segment_cmt(s, cmt, repeatable) + @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 &) + set_segment_translations(segstart, transmap) -> bool + @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 &) + @retval: 1 - ok + @retval: 0 - too many translations or bad segstart 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) + set_selector(selector, paragraph) -> int + @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) + @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) - set_visible_segm(s, visible) - - See 'SFL_HIDDEN' . - - @param s (C++: segment_t *) - @param visible (C++: bool) + set_visible_segm(s, visible) + @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 @@ -64537,38 +75110,36 @@ setup_selector(*args) 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 + setup_selector(segbase) -> sel_t + @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 *) + std_out_segm_footer(ctx, seg) + @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 + take_memory_snapshot(only_loader_segs) -> bool + @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 + @param s (C++: segment_t *) === ida_segment EPYDOC INJECTIONS === ida_segment.ADDSEG_FILLGAP @@ -64609,7 +75180,7 @@ they overlap. ida_segment.ADDSEG_OR_DIE """ - 'qexit()' if can't add a segment +'qexit()' if can't add a segment """ ida_segment.ADDSEG_QUIET @@ -65022,142 +75593,118 @@ Stack. Combine as for C=2. This combine type forces 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) + copy_sreg_ranges(dst_rg, src_rg, map_selector=False) + @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 + del_sreg_range(ea, rg) -> bool + @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 + get_prev_sreg_range(out, ea, rg) -> bool + @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. + get_sreg(ea, rg) -> sel_t + @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 + get_sreg_range(out, ea, rg) -> bool + @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) + get_sreg_range_num(ea, rg) -> int + @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) + get_sreg_ranges_qty(rg) -> size_t + @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 + getn_sreg_range(out, rg, n) -> bool + @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) + set_default_dataseg(ds_sel) + @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 + set_default_sreg_value(sg, rg, value) -> bool + @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 @@ -65165,30 +75712,29 @@ set_sreg_at_next_code(*args) 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) + set_sreg_at_next_code(ea1, ea2, rg, value) + @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 + split_sreg_range(ea, rg, v, tag, silent=False) -> bool + @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: @@ -65230,43 +75776,66 @@ class sreg_range_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -65311,46 +75880,31 @@ the value is specified by the user 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) + get_strlist_item(si, n) -> bool + @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: @@ -65362,10 +75916,11 @@ class string_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> string_info_t - | __init__(self, _ea) -> string_info_t + | _ea: ea_t | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: string_info_t const & | | __repr__ = _swig_repr(self) | @@ -65413,6 +75968,7 @@ class strwinsetup_t(__builtin__.object) | | _set_strtypes(self, *args) | _set_strtypes(self, py_t) -> PyObject * + | py_t: PyObject * | | is_initialized(self, *args) | is_initialized(self) -> bool @@ -65453,545 +76009,470 @@ class strwinsetup_t(__builtin__.object) 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) + add_struc(idx, name, is_union=False) -> tid_t + @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) + add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t + @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 *) + del_member_tinfo(sptr, mptr) -> bool + @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 *) + del_struc(sptr) -> bool + @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) + del_struc_member(sptr, offset) -> bool + @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 + del_struc_members(sptr, off1, off2) -> int + @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(__builtin__.object) + | Proxy of C++ dynamic_wrapped_array_t< member_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) + | __getitem__(self, i) -> member_t + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_member_ref_array + | _data: member_t * + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: member_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_member_ref_array_count_get(self) -> size_t + | + | data + | dyn_member_ref_array_data_get(self) -> member_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_member_ref_array(self) 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) + expand_struc(sptr, offset, delta, recalc=True) -> 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) - 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) + get_best_fit_member(sptr, offset) -> member_t + @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 *) + get_max_offset(sptr) -> ea_t + @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) + get_member(sptr, offset) -> member_t + @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 *) + get_member_by_fullname(fullname) -> member_t + @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) + get_member_by_id(mid) -> member_t + @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 *) + get_member_by_name(sptr, membername) -> member_t + @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) + get_member_cmt(mid, repeatable) -> str + @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) + get_member_fullname(mid) -> str + @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) + get_member_id(sptr, offset) -> tid_t + @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) + get_member_name(mid) -> str + @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' . + + get_member_size(mptr) -> asize_t + @param mptr (C++: const member_t *) 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 *) + get_member_struc(fullname) -> struc_t + @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 *) + get_member_tinfo(tif, mptr) -> bool + @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) + get_next_member_idx(sptr, off) -> ssize_t + @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++ + get_next_struc_idx(idx) -> uval_t + @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 *) + get_or_guess_member_tinfo(tif, mptr) -> bool + @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) + get_prev_member_idx(sptr, off) -> ssize_t + @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 + get_prev_struc_idx(idx) -> uval_t + @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 *) + get_sptr(mptr) -> struc_t + @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) + get_struc(id) -> struc_t + @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) + get_struc_by_idx(idx) -> tid_t + @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) + get_struc_cmt(id, repeatable) -> str + @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 + get_struc_first_offset(sptr) -> ea_t + @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 *) + get_struc_id(name) -> tid_t + @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) + get_struc_idx(id) -> uval_t + @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 + get_struc_last_offset(sptr) -> ea_t + @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) + get_struc_name(id, flags=0) -> str + @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 + get_struc_next_offset(sptr, offset) -> ea_t + @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 + get_struc_prev_offset(sptr, offset) -> ea_t + @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)' ) + get_struc_size(sptr) -> asize_t + @param sptr (C++: const struc_t *) - @param sptr (C++: const struc_t *) + + get_struc_size(id) -> asize_t + id: tid_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 *) + is_anonymous_member_name(name) -> bool + @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 *) + is_dummy_member_name(name) -> bool + @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) + is_member_id(mid) -> bool + @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) + is_special_member(id) -> bool + @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) + is_union(id) -> bool + @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 *) + is_varmember(mptr) -> bool + @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) + is_varstr(id) -> bool + @param id (C++: tid_t) Help on class member_t in module ida_struct: @@ -66006,28 +76487,28 @@ class member_t(__builtin__.object) | __repr__ = _swig_repr(self) | | by_til(self, *args) - | by_til(self) -> bool + | Was the member created due to the type system? | | get_soff(self, *args) - | get_soff(self) -> ea_t + | Get start offset (for unions - returns 0) | | has_ti(self, *args) - | has_ti(self) -> bool + | Has type information? | | has_union(self, *args) - | has_union(self) -> bool + | Has members of type "union"? | | is_baseclass(self, *args) - | is_baseclass(self) -> bool + | Is a base class member? | | is_destructor(self, *args) - | is_destructor(self) -> bool + | Is a virtual destructor? | | is_dupname(self, *args) - | is_dupname(self) -> bool + | Duplicate name was resolved during import? | | unimem(self, *args) - | unimem(self) -> bool + | Is a member of a union? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66065,167 +76546,130 @@ class member_t(__builtin__.object) 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 *) + retrieve_member_info(buf, mptr) -> opinfo_t + @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) + save_struc(sptr, may_update_ltypes=True) + @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) + set_member_cmt(mptr, cmt, repeatable) -> bool + @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 *) + set_member_name(sptr, offset, name) -> bool + @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) + set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t + @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) + set_member_type(sptr, offset, flag, mt, nbytes) -> bool + @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) + set_struc_align(sptr, shift) -> bool + @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) + set_struc_cmt(id, cmt, repeatable) -> bool + @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) + set_struc_hidden(sptr, is_hidden) + @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) + set_struc_idx(sptr, idx) -> bool + @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) + set_struc_listed(sptr, is_listed) + @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 *) + set_struc_name(id, name) -> bool + @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) + stroff_as_size(plen, sptr, value) -> bool + @param plen (C++: int) + @param sptr (C++: const struc_t *) + @param value (C++: asize_t) Help on class struc_t in module ida_struct: @@ -66234,45 +76678,53 @@ class struc_t(__builtin__.object) | | Methods defined here: | + | __get_members__(self, *args) + | __get_members__(self) -> dyn_member_ref_array + | | __init__(self, *args, **kwargs) | | __repr__ = _swig_repr(self) | | from_til(self, *args) - | from_til(self) -> bool + | Does structure come from a type library? | | get_alignment(self, *args) - | get_alignment(self) -> int + | See 'SF_ALIGN' . | - | get_member(self, *args) - | get_member(self, index) -> member_t + | get_member(self, index) | | has_union(self, *args) - | has_union(self) -> bool + | Has members of type "union"? | | is_choosable(self, *args) - | is_choosable(self) -> bool + | Is included in chooser list? Use 'set_struc_listed' to change the + | listed status | | is_frame(self, *args) - | is_frame(self) -> bool + | Is this structure a function frame? | | is_ghost(self, *args) - | is_ghost(self) -> bool + | Is a ghost copy of a local type? | | is_hidden(self, *args) - | is_hidden(self) -> bool + | Is the structure collapsed? Use 'set_struc_hidden' to change the + | hidden status | | is_union(self, *args) - | is_union(self) -> bool + | Is a union? | | is_varstr(self, *args) - | is_varstr(self) -> bool + | Is variable size structure? | | set_alignment(self, *args) + | Do not use; use 'set_struc_align()' + | | set_alignment(self, shift) + | @param shift (C++: int) | | set_ghost(self, *args) | set_ghost(self, _is_ghost) + | @param _is_ghost (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66290,7 +76742,7 @@ class struc_t(__builtin__.object) | struc_t_id_get(self) -> tid_t | | members - | struc_t_members_get(self) -> member_t + | __get_members__(self) -> dyn_member_ref_array | | memqty | struc_t_memqty_get(self) -> uint32 @@ -66321,11 +76773,14 @@ class struct_field_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> struct_field_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_field(self, *args) | visit_field(self, sptr, mptr) -> int + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66348,18 +76803,16 @@ class struct_field_visitor_t(__builtin__.object) 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) + visit_stroff_fields(sfv, path, disp, appzero) -> flags_t + @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 @@ -66489,13 +76942,11 @@ structname.fieldname 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 + add_tryblk(tb) -> int + @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: @@ -66554,9 +77005,11 @@ class catch_t(try_handler_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66566,18 +77019,24 @@ class catch_t(try_handler_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66598,52 +77057,74 @@ class catch_t(try_handler_t) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -66666,13 +77147,15 @@ class catchvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< catch_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> catch_t + | i: size_t | | __init__(self, *args) | __init__(self) -> catchvec_t - | __init__(self, x) -> catchvec_t + | x: qvector< catch_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66682,20 +77165,26 @@ class catchvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< catch_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: catch_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: catch_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: catch_t const & | | at(self, *args) | at(self, _idx) -> catch_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66719,52 +77208,74 @@ class catchvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> catch_t + | it: qvector< catch_t >::iterator + | + | | erase(self, first, last) -> catch_t + | first: qvector< catch_t >::iterator + | last: qvector< catch_t >::iterator | | extract(self, *args) | extract(self) -> catch_t | | find(self, *args) | find(self, x) -> catch_t + | x: catch_t const & + | + | | find(self, x) -> catch_t + | x: catch_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=catch_t()) + | x: catch_t const & | | has(self, *args) | has(self, x) -> bool + | x: catch_t const & | | inject(self, *args) | inject(self, s, len) + | s: catch_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> catch_t + | it: qvector< catch_t >::iterator + | x: catch_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> catch_t + | x: catch_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: catch_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< catch_t > & | | truncate(self, *args) | truncate(self) @@ -66790,37 +77301,31 @@ class catchvec_t(__builtin__.object) 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 &) + del_tryblks(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 + find_syseh(ea) -> ea_t + @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 + get_tryblks(tbv, range) -> size_t + @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: @@ -66876,9 +77381,11 @@ class seh_t(try_handler_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66888,18 +77395,24 @@ class seh_t(try_handler_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66920,52 +77433,74 @@ class seh_t(try_handler_t) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -67023,9 +77558,11 @@ class try_handler_t(ida_range.rangevec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67035,18 +77572,24 @@ class try_handler_t(ida_range.rangevec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -67067,52 +77610,74 @@ class try_handler_t(ida_range.rangevec_t) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -67141,7 +77706,7 @@ class tryblk_t(ida_range.rangevec_t) | | __init__(self, *args) | __init__(self) -> tryblk_t - | __init__(self, r) -> tryblk_t + | r: tryblk_t const & | | __repr__ = _swig_repr(self) | @@ -67192,9 +77757,11 @@ class tryblk_t(ida_range.rangevec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67204,18 +77771,24 @@ class tryblk_t(ida_range.rangevec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -67233,52 +77806,74 @@ class tryblk_t(ida_range.rangevec_t) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -67301,13 +77896,15 @@ class tryblks_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< tryblk_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> tryblk_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tryblks_t - | __init__(self, x) -> tryblks_t + | x: qvector< tryblk_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67317,20 +77914,26 @@ class tryblks_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< tryblk_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: tryblk_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: tryblk_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: tryblk_t const & | | at(self, *args) | at(self, _idx) -> tryblk_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -67354,52 +77957,74 @@ class tryblks_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> tryblk_t + | it: qvector< tryblk_t >::iterator + | + | | erase(self, first, last) -> tryblk_t + | first: qvector< tryblk_t >::iterator + | last: qvector< tryblk_t >::iterator | | extract(self, *args) | extract(self) -> tryblk_t | | find(self, *args) | find(self, x) -> tryblk_t + | x: tryblk_t const & + | + | | find(self, x) -> tryblk_t + | x: tryblk_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=tryblk_t()) + | x: tryblk_t const & | | has(self, *args) | has(self, x) -> bool + | x: tryblk_t const & | | inject(self, *args) | inject(self, s, len) + | s: tryblk_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> tryblk_t + | it: qvector< tryblk_t >::iterator + | x: tryblk_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> tryblk_t + | x: tryblk_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: tryblk_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< tryblk_t > & | | truncate(self, *args) | truncate(self) @@ -67466,37 +78091,30 @@ bad start address 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 + add_til(name, flags) -> int + @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 *) + alloc_type_ordinal(ti) -> uint32 + @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. + alloc_type_ordinals(ti, qty) -> uint32 + @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: @@ -67509,11 +78127,15 @@ class aloc_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> aloc_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_location(self, *args) | visit_location(self, v, off, size) -> int + | @param v (C++: argloc_t &) + | @param off (C++: int) + | @param size (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67536,41 +78158,36 @@ class aloc_visitor_t(__builtin__.object) 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 + append_abi_opts(abi_opts, user_level=False) -> bool + @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 &) + append_argloc(out, vloc) -> bool + @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 + out: rangeset_t * + typid: uint32 + offset: uint64 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 @@ -67578,45 +78195,39 @@ apply_callee_tinfo(*args) '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 + apply_callee_tinfo(caller, tif) -> bool + @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 + apply_cdecl(til, ea, decl, flags=0) -> bool + @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 + apply_named_type(ea, name) -> bool + @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 @@ -67626,48 +78237,43 @@ apply_once_tinfo_and_name(*args) 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 + apply_once_tinfo_and_name(dea, tif, name) -> bool + @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 + apply_tinfo(ea, tif, flags) -> bool + @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 *) + apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool + @param insn - an ida_ua.insn_t, or an address (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_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 @@ -67685,167 +78291,239 @@ class argloc_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: argloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: argloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: argloc_t const & | | __init__(self, *args) | __init__(self) -> argloc_t - | __init__(self, r) -> argloc_t + | r: argloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: argloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: argloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: argloc_t const & | | __repr__ = _swig_repr(self) | | _consume_rrel(self, *args) + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg1(self, *args) + | Use 'set_reg1()' + | | _set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | _set_reg2(self, *args) + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | atype(self, *args) - | atype(self) -> argloc_type_t + | Get type ( 'Argument location types' ) | | calc_offset(self, *args) - | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) | compare(self, r) -> int + | r: argloc_t const & | | consume_rrel(self, *args) + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) - | get_custom(self) -> void * + | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' | | get_ea(self, *args) - | get_ea(self) -> ea_t + | Get the global address. Use when 'atype()' == 'ALOC_STATIC' | | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 + | Get all register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' | | has_reg(self, *args) - | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) - | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. | | is_badloc(self, *args) - | is_badloc(self) -> bool + | See 'ALOC_NONE' . | | is_custom(self, *args) - | is_custom(self) -> bool + | See 'ALOC_CUSTOM' . | | is_ea(self, *args) - | is_ea(self) -> bool + | See 'ALOC_STATIC' . | | is_fragmented(self, *args) - | is_fragmented(self) -> bool + | 'is_scattered()' || 'is_reg2()' | | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | is_reg(self) -> bool + | 'is_reg1()' || 'is_reg2()' | | is_reg1(self, *args) - | is_reg1(self) -> bool + | See 'ALOC_REG1' . | | is_reg2(self, *args) - | is_reg2(self) -> bool + | See 'ALOC_REG2' . | | is_rrel(self, *args) - | is_rrel(self) -> bool + | See 'ALOC_RREL' . | | is_scattered(self, *args) - | is_scattered(self) -> bool + | See 'ALOC_DIST' . | | is_stkoff(self, *args) - | is_stkoff(self) -> bool + | See 'ALOC_STACK' . | | justify_reg_high(self, *args) + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | reg1(self, *args) - | reg1(self) -> int + | Get the register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | reg2(self, *args) - | reg2(self) -> int + | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' | | regoff(self, *args) - | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when + | 'atype()' == 'ALOC_REG1' | | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' | | set_badloc(self, *args) - | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) + | Set static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg1(self, *args) + | Set register location. + | | set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | set_reg2(self, *args) + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) + | Set stack offset location. + | | set_stkoff(self, off) + | @param off (C++: sval_t) | | stkoff(self, *args) - | stkoff(self) -> sval_t + | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' | | swap(self, *args) + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67879,21 +78557,25 @@ class argpart_t(argloc_t) | | __init__(self, *args) | __init__(self, a) -> argpart_t - | __init__(self) -> argpart_t + | a: argloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: argpart_t const & | | __repr__ = _swig_repr(self) | | bad_offset(self, *args) - | bad_offset(self) -> bool + | Does this argpart have a valid offset? | | bad_size(self, *args) - | bad_size(self) -> bool + | Does this argpart have a valid size? | | swap(self, *args) + | Assign this = r and r = this. + | | swap(self, r) + | @param r (C++: argpart_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67918,155 +78600,223 @@ class argpart_t(argloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: argloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: argloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: argloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: argloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: argloc_t const & | | _consume_rrel(self, *args) + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg1(self, *args) + | Use 'set_reg1()' + | | _set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | _set_reg2(self, *args) + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | atype(self, *args) - | atype(self) -> argloc_type_t + | Get type ( 'Argument location types' ) | | calc_offset(self, *args) - | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) | compare(self, r) -> int + | r: argloc_t const & | | consume_rrel(self, *args) + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) - | get_custom(self) -> void * + | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' | | get_ea(self, *args) - | get_ea(self) -> ea_t + | Get the global address. Use when 'atype()' == 'ALOC_STATIC' | | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 + | Get all register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' | | has_reg(self, *args) - | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) - | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. | | is_badloc(self, *args) - | is_badloc(self) -> bool + | See 'ALOC_NONE' . | | is_custom(self, *args) - | is_custom(self) -> bool + | See 'ALOC_CUSTOM' . | | is_ea(self, *args) - | is_ea(self) -> bool + | See 'ALOC_STATIC' . | | is_fragmented(self, *args) - | is_fragmented(self) -> bool + | 'is_scattered()' || 'is_reg2()' | | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | is_reg(self) -> bool + | 'is_reg1()' || 'is_reg2()' | | is_reg1(self, *args) - | is_reg1(self) -> bool + | See 'ALOC_REG1' . | | is_reg2(self, *args) - | is_reg2(self) -> bool + | See 'ALOC_REG2' . | | is_rrel(self, *args) - | is_rrel(self) -> bool + | See 'ALOC_RREL' . | | is_scattered(self, *args) - | is_scattered(self) -> bool + | See 'ALOC_DIST' . | | is_stkoff(self, *args) - | is_stkoff(self) -> bool + | See 'ALOC_STACK' . | | justify_reg_high(self, *args) + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | reg1(self, *args) - | reg1(self) -> int + | Get the register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | reg2(self, *args) - | reg2(self) -> int + | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' | | regoff(self, *args) - | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when + | 'atype()' == 'ALOC_REG1' | | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' | | set_badloc(self, *args) - | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) + | Set static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg1(self, *args) + | Set register location. + | | set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | set_reg2(self, *args) + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) + | Set stack offset location. + | | set_stkoff(self, off) + | @param off (C++: sval_t) | | stkoff(self, *args) - | stkoff(self) -> sval_t + | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' | | ---------------------------------------------------------------------- | Data descriptors inherited from argloc_t: @@ -68086,13 +78836,15 @@ class argpartvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< argpart_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> argpart_t + | i: size_t | | __init__(self, *args) | __init__(self) -> argpartvec_t - | __init__(self, x) -> argpartvec_t + | x: qvector< argpart_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68102,20 +78854,26 @@ class argpartvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< argpart_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: argpart_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: argpart_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: argpart_t const & | | at(self, *args) | at(self, _idx) -> argpart_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -68139,52 +78897,74 @@ class argpartvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> argpart_t + | it: qvector< argpart_t >::iterator + | + | | erase(self, first, last) -> argpart_t + | first: qvector< argpart_t >::iterator + | last: qvector< argpart_t >::iterator | | extract(self, *args) | extract(self) -> argpart_t | | find(self, *args) | find(self, x) -> argpart_t + | x: argpart_t const & + | + | | find(self, x) -> argpart_t + | x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=argpart_t()) + | x: argpart_t const & | | has(self, *args) | has(self, x) -> bool + | x: argpart_t const & | | inject(self, *args) | inject(self, s, len) + | s: argpart_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> argpart_t + | it: qvector< argpart_t >::iterator + | x: argpart_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> argpart_t + | x: argpart_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: argpart_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< argpart_t > & | | truncate(self, *args) | truncate(self) @@ -68207,6 +78987,77 @@ class argpartvec_t(__builtin__.object) | __swig_destroy__ = | delete_argpartvec_t(self) +Help on class argtinfo_helper_t in module ida_typeinf: + +class argtinfo_helper_t(__builtin__.object) + | Proxy of C++ argtinfo_helper_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> argtinfo_helper_t + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | has_delay_slot(self, *args) + | The call instruction with a delay slot?. + | + | has_delay_slot(self, arg0) -> bool + | arg0: ea_t + | + | is_stkarg_load(self, *args) + | 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 + | + | is_stkarg_load(self, insn, src, dst) -> bool + | @param insn - 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) + | Set the operand type as specified. + | + | set_op_tinfo(self, insn, x, tif, name) -> bool + | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x (C++: const op_t &) + | @param tif (C++: const tinfo_t &) + | @param name (C++: const char *) + | + | use_arg_tinfos(self, *args) + | This function is to be called by the processor module in response to + | ev_use_arg_types. + | + | use_arg_tinfos(self, caller, fti, rargs) + | @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 + | argtinfo_helper_t_reserved_get(self) -> size_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_argtinfo_helper_t(self) + Help on class array_type_data_t in module ida_typeinf: class array_type_data_t(__builtin__.object) @@ -68216,11 +79067,16 @@ class array_type_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self, b=0, n=0) -> array_type_data_t + | b: size_t + | n: size_t | | __repr__ = _swig_repr(self) | | swap(self, *args) + | set this = r and r = this + | | swap(self, r) + | @param r (C++: array_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68252,14 +79108,12 @@ class array_type_data_t(__builtin__.object) 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) + begin_type_updating(utp) + @param utp (C++: update_type_t) Help on class bitfield_type_data_t in module ida_typeinf: @@ -68270,32 +79124,43 @@ class bitfield_type_data_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: bitfield_type_data_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: bitfield_type_data_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: bitfield_type_data_t const & | | __init__(self, *args) | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t + | _nbytes: uchar + | _width: uchar + | _is_unsigned: bool | | __le__(self, *args) | __le__(self, r) -> bool + | r: bitfield_type_data_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: bitfield_type_data_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: bitfield_type_data_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: bitfield_type_data_t const & | | swap(self, *args) | swap(self, r) + | @param r (C++: bitfield_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68327,41 +79192,40 @@ class bitfield_type_data_t(__builtin__.object) 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) + calc_c_cpp_name(name, type, ccn_flags) -> str + @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) + calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int + @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) + @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) calc_tinfo_gaps(out, typid) -> bool + out: rangeset_t * + typid: uint32 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 @@ -68378,27 +79242,45 @@ class callregs_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> callregs_t - | __init__(self, cc) -> callregs_t + | cc: cm_t | | __repr__ = _swig_repr(self) | + | by_slots(self, *args) + | by_slots(self) -> bool + | | init_regs(self, *args) + | Init policy & registers for given CC. + | | init_regs(self, cc) + | @param cc (C++: cm_t) | | reginds(self, *args) + | Get register indexes within GP/FP arrays. (-1 -> is not present in the + | corresponding array) + | | reginds(self, gp_ind, fp_ind, r) -> bool + | @param gp_ind (C++: int *) + | @param fp_ind (C++: int *) + | @param r (C++: int) | | reset(self, *args) - | reset(self) + | Set policy and registers to invalid values. | | set(self, *args) + | Init policy & registers (arrays are -1-terminated) + | | set(self, _policy, gprs, fprs) + | @param _policy (C++: argreg_policy_t) + | @param gprs (C++: const int *) + | @param fprs (C++: const int *) | | ---------------------------------------------------------------------- | Static methods defined here: | | regcount(*args) | regcount(cc) -> int + | cc: cm_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68434,80 +79316,77 @@ Help on function callregs_t_regcount in module ida_typeinf: callregs_t_regcount(*args) callregs_t_regcount(cc) -> int + cc: cm_t 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 + choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 + @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 + choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 + @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 + choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool + @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) + _this: tinfo_t * 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 + compact_til(ti) -> bool + @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 + t1: uint32 + t2: uint32 + tcflags: int Help on class const_aloc_visitor_t in module ida_typeinf: @@ -68520,11 +79399,15 @@ class const_aloc_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> const_aloc_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_location(self, *args) | visit_location(self, v, off, size) -> int + | @param v (C++: const argloc_t &) + | @param off (C++: int) + | @param size (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68547,150 +79430,140 @@ class const_aloc_visitor_t(__builtin__.object) 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) + convert_pt_flags_to_hti(pt_flags) -> int + @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 + copy_named_type(dsttil, srctil, name) -> uint32 + @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) + _this: tinfo_t * + r: tinfo_t const & 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) + create_numbered_type_name(ord) -> str + @param ord (C++: int32) Help on function create_tinfo in module ida_typeinf: create_tinfo(*args) create_tinfo(_this, bt, bt2, ptr) -> bool + _this: tinfo_t * + bt: type_t + bt2: type_t + ptr: void * 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 + del_named_type(ti, name, ntf_flags) -> bool + @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) + del_numbered_type(ti, ordinal) -> bool + @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 *) + del_til(name) -> bool + @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 + tif: tinfo_t * + key: qstring const & + 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 + deref_ptr(ptr_ea, tif, closure_obj=None) -> bool + @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 + tif: tinfo_t * + til: til_t const * + ptype: type_t const ** + pfields: p_list const ** + pfldcmts: p_list const ** Help on function dstr_tinfo in module ida_typeinf: dstr_tinfo(*args) dstr_tinfo(tif) -> char const * + tif: tinfo_t 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) + dump_func_type_data(fti, praloc_bits) -> str + @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) + end_type_updating(utp) + @param utp (C++: update_type_t) Help on class enum_member_t in module ida_typeinf: @@ -68701,17 +79574,20 @@ class enum_member_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: enum_member_t const & | | __init__(self, *args) | __init__(self) -> enum_member_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: enum_member_t const & | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) + | @param r (C++: enum_member_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68749,13 +79625,15 @@ class enum_member_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> enum_member_t + | i: size_t | | __init__(self, *args) | __init__(self) -> enum_member_vec_t - | __init__(self, x) -> enum_member_vec_t + | 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. @@ -68765,20 +79643,26 @@ class enum_member_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: enum_member_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: enum_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: enum_member_t const & | | at(self, *args) | at(self, _idx) -> enum_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -68802,52 +79686,74 @@ class enum_member_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | + | | erase(self, first, last) -> enum_member_t + | first: qvector< enum_member_t >::iterator + | last: qvector< enum_member_t >::iterator | | extract(self, *args) | extract(self) -> enum_member_t | | find(self, *args) | find(self, x) -> enum_member_t + | x: enum_member_t const & + | + | | find(self, x) -> enum_member_t + | x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=enum_member_t()) + | x: enum_member_t const & | | has(self, *args) | has(self, x) -> bool + | x: enum_member_t const & | | inject(self, *args) | inject(self, s, len) + | s: enum_member_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | x: enum_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> enum_member_t + | x: enum_member_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: enum_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< enum_member_t > & | | truncate(self, *args) | truncate(self) @@ -68884,6 +79790,7 @@ class enum_type_data_t(enum_member_vec_t) | | __init__(self, *args) | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t + | _bte: bte_t | | __repr__ = _swig_repr(self) | @@ -68909,7 +79816,10 @@ class enum_type_data_t(enum_member_vec_t) | is_udec(self) -> bool | | swap(self, *args) + | swap two instances + | | swap(self, r) + | @param r (C++: enum_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68937,9 +79847,11 @@ class enum_type_data_t(enum_member_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> enum_member_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68949,18 +79861,24 @@ class enum_type_data_t(enum_member_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: enum_member_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: enum_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: enum_member_t const & | | at(self, *args) | at(self, _idx) -> enum_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -68984,46 +79902,67 @@ class enum_type_data_t(enum_member_vec_t) | | erase(self, *args) | erase(self, it) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | + | | erase(self, first, last) -> enum_member_t + | first: qvector< enum_member_t >::iterator + | last: qvector< enum_member_t >::iterator | | extract(self, *args) | extract(self) -> enum_member_t | | find(self, *args) | find(self, x) -> enum_member_t + | x: enum_member_t const & + | + | | find(self, x) -> enum_member_t + | x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=enum_member_t()) + | x: enum_member_t const & | | has(self, *args) | has(self, x) -> bool + | x: enum_member_t const & | | inject(self, *args) | inject(self, s, len) + | s: enum_member_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | x: enum_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> enum_member_t + | x: enum_member_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: enum_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -69043,84 +79982,71 @@ class enum_type_data_t(enum_member_vec_t) 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) + extract_argloc(vloc, ptype, is_retval) -> bool + @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 + udm: udt_member_t * + typid: uint32 + 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) + first_named_type(ti, ntf_flags) -> char const * + @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) + for_all_arglocs(vv, vloc, size, off=0) -> 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) - 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) + for_all_const_arglocs(vv, vloc, size, off=0) -> int + @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 *) + free_til(ti) + @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 &) + func_has_stkframe_hole(ea, fti) -> bool + @param ea (C++: ea_t) + @param fti (C++: const func_type_data_t &) Help on class func_type_data_t in module ida_typeinf: @@ -69140,13 +80066,22 @@ class func_type_data_t(funcargvec_t) | __repr__ = _swig_repr(self) | | dump(self, *args) + | Dump information that is not always visible in the function prototype. + | (argument locations, return location, total stkarg size) + | | dump(self, praloc_bits=0x02) -> bool + | @param praloc_bits (C++: int) | | get_call_method(self, *args) | get_call_method(self) -> int | | guess_cc(self, *args) + | Guess function calling convention use the following info: argument + | locations and 'stkargs' + | | guess_cc(self, purged, cc_flags) -> cm_t + | @param purged (C++: int) + | @param cc_flags (C++: int) | | is_high(self, *args) | is_high(self) -> bool @@ -69162,6 +80097,7 @@ class func_type_data_t(funcargvec_t) | | swap(self, *args) | swap(self, r) + | @param r (C++: func_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69198,9 +80134,11 @@ class func_type_data_t(funcargvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> funcarg_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69210,18 +80148,24 @@ class func_type_data_t(funcargvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: funcarg_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: funcarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: funcarg_t const & | | at(self, *args) | at(self, _idx) -> funcarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -69245,46 +80189,67 @@ class func_type_data_t(funcargvec_t) | | erase(self, *args) | erase(self, it) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | + | | erase(self, first, last) -> funcarg_t + | first: qvector< funcarg_t >::iterator + | last: qvector< funcarg_t >::iterator | | extract(self, *args) | extract(self) -> funcarg_t | | find(self, *args) | find(self, x) -> funcarg_t + | x: funcarg_t const & + | + | | find(self, x) -> funcarg_t + | x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=funcarg_t()) + | x: funcarg_t const & | | has(self, *args) | has(self, x) -> bool + | x: funcarg_t const & | | inject(self, *args) | inject(self, s, len) + | s: funcarg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | x: funcarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> funcarg_t + | x: funcarg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: funcarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -69310,12 +80275,14 @@ class funcarg_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: funcarg_t const & | | __init__(self, *args) | __init__(self) -> funcarg_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: funcarg_t const & | | __repr__ = _swig_repr(self) | @@ -69361,13 +80328,15 @@ class funcargvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> funcarg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> funcargvec_t - | __init__(self, x) -> funcargvec_t + | x: qvector< funcarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69377,20 +80346,26 @@ class funcargvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: funcarg_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: funcarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: funcarg_t const & | | at(self, *args) | at(self, _idx) -> funcarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -69414,52 +80389,74 @@ class funcargvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | + | | erase(self, first, last) -> funcarg_t + | first: qvector< funcarg_t >::iterator + | last: qvector< funcarg_t >::iterator | | extract(self, *args) | extract(self) -> funcarg_t | | find(self, *args) | find(self, x) -> funcarg_t + | x: funcarg_t const & + | + | | find(self, x) -> funcarg_t + | x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=funcarg_t()) + | x: funcarg_t const & | | has(self, *args) | has(self, x) -> bool + | x: funcarg_t const & | | inject(self, *args) | inject(self, s, len) + | s: funcarg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | x: funcarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> funcarg_t + | x: funcarg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: funcarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< funcarg_t > & | | truncate(self, *args) | truncate(self) @@ -69485,69 +80482,60 @@ class funcargvec_t(__builtin__.object) 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 *) + gen_decorate_name(name, mangle, cc, type) -> str + @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) + @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 gen_use_arg_tinfos2 in module ida_typeinf: + +gen_use_arg_tinfos2(*args) + 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 *) + gen_use_arg_tinfos2(_this, caller, fti, rargs) + @param _this (C++: struct 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) - 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) + get_alias_target(ti, ordinal) -> uint32 + @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 @@ -69556,122 +80544,91 @@ get_arg_addrs(*args) 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) + get_base_type(t) -> type_t + @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) + get_comp(comp) -> comp_t + @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) + get_compiler_abbr(id) -> char const * + @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) + get_compiler_name(id) -> char const * + @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 *) + get_compilers(ids, names, abbrs) + @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 + get_enum_member_expr(tif, serial, value) -> str + @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) + get_full_type(t) -> type_t + @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 &) + get_idainfo_by_type(tif) -> bool + @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. @@ -69680,8 +80637,6 @@ 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 @@ -69693,152 +80648,153 @@ get_named_type(*args) 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) + get_named_type64(til, name, ntf_flags) -> PyObject * + til: til_t const * + @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) + get_numbered_type(til, ordinal) -> PyObject * + til: til_t const * + @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) + get_numbered_type_name(ti, ordinal) -> char const * + @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 *) + get_ordinal_from_idb_type(name, type) -> int + @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 + get_ordinal_qty(ti) -> uint32 + @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 + @param size (C++: int) Help on function get_stock_tinfo in module ida_typeinf: get_stock_tinfo(*args) get_stock_tinfo(tif, id) -> bool + tif: tinfo_t * + id: enum stock_type_id_t Help on function get_tinfo_attr in module ida_typeinf: get_tinfo_attr(*args) get_tinfo_attr(typid, key, bv, all_attrs) -> bool + typid: uint32 + key: qstring const & + bv: bytevec_t * + 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 + typid: uint32 + tav: type_attrs_t * + 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 + typid: uint32 + bt2: type_t + buf: void * Help on function get_tinfo_pdata in module ida_typeinf: get_tinfo_pdata(*args) get_tinfo_pdata(outptr, typid, what) -> size_t + outptr: void * + typid: uint32 + what: int Help on function get_tinfo_property in module ida_typeinf: get_tinfo_property(*args) get_tinfo_property(typid, gta_prop) -> size_t + typid: uint32 + gta_prop: int Help on function get_tinfo_size in module ida_typeinf: get_tinfo_size(*args) get_tinfo_size(p_effalign, typid, gts_code) -> size_t + p_effalign: uint32 * + typid: uint32 + gts_code: int 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) + get_type_flags(t) -> type_t + @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 *) + get_type_ordinal(ti, name) -> int32 + @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) + guess_func_cc(fti, npurged, cc_flags) -> cm_t + @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 + guess_tinfo(tif, id) -> int + @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: @@ -69854,14 +80810,21 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | __init__(self, *args) | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t + | _tif: tinfo_t const & + | _ea: ea_t + | _pb: int | | __repr__ = _swig_repr(self) | | func_has_stkframe_hole(self, *args) | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | @param candidate (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | get_func_purged_bytes(self, *args) | get_func_purged_bytes(self, candidate, arg3) -> int + | @param candidate (C++: const tinfo_t &) + | arg3: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69888,187 +80851,190 @@ 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 + ordinal: int + flags: int + buf: char * + maxsize: size_t 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 + ordinal: int 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 * + ordinal: int Help on function idc_get_type in module ida_typeinf: idc_get_type(*args) idc_get_type(ea) -> str + ea: ea_t Help on function idc_get_type_raw in module ida_typeinf: idc_get_type_raw(*args) idc_get_type_raw(ea) -> PyObject * + ea: ea_t Help on function idc_guess_type in module ida_typeinf: idc_guess_type(*args) idc_guess_type(ea) -> str + ea: ea_t Help on function idc_parse_decl in module ida_typeinf: idc_parse_decl(*args) idc_parse_decl(ti, decl, flags) -> PyObject * + ti: til_t * + decl: char const * + flags: int Help on function idc_parse_types in module ida_typeinf: idc_parse_types(*args) idc_parse_types(input, flags) -> int + input: char const * + flags: int Help on function idc_print_type in module ida_typeinf: idc_print_type(*args) - idc_print_type(_type, _fields, name, flags) -> PyObject * + idc_print_type(type, fields, name, flags) -> PyObject * + type: type_t const * + fields: p_list const * + name: char const * + flags: int Help on function idc_set_local_type in module ida_typeinf: idc_set_local_type(*args) idc_set_local_type(ordinal, dcl, flags) -> int + ordinal: int + dcl: char const * + 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 + import_type(til, idx, name, flags=0) -> tid_t + @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? + is_autosync(name, type) -> bool + @param name (C++: const char *) + @param type (C++: const type_t *) - @param name (C++: const char *) - @param type (C++: const type_t *) + + is_autosync(name, tif) -> bool + @param name (C++: const char *) + tif: tinfo_t const & 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) + is_code_far(cm) -> bool + @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) + is_comp_unsure(comp) -> comp_t + @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) + is_data_far(cm) -> bool + @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 *) + is_ordinal_name(name, ord=None) -> bool + @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) + is_purging_cc(cm) -> bool + @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 + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_struct in module ida_typeinf: is_restype_struct(*args) is_restype_struct(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_struni in module ida_typeinf: is_restype_struni(*args) is_restype_struni(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_void in module ida_typeinf: is_restype_void(*args) is_restype_void(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) 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 @@ -70077,539 +81043,405 @@ is_sdacl_byte(*args) in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in the type bit definitions) - @param t (C++: type_t) + is_sdacl_byte(t) -> bool + @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) + is_tah_byte(t) -> bool + @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) + is_type_arithmetic(t) -> bool + @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) + is_type_array(t) -> bool + @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) + is_type_bitfld(t) -> bool + @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) + is_type_bool(t) -> 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) + is_type_char(t) -> bool + @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) + is_type_complex(t) -> bool + @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) + is_type_const(t) -> bool + @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) + is_type_double(t) -> bool + @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) + is_type_enum(t) -> bool + @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) + is_type_ext_arithmetic(t) -> bool + @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) + is_type_ext_integral(t) -> bool + @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) + is_type_float(t) -> bool + @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) + is_type_floating(t) -> bool + @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) + is_type_func(t) -> bool + @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) + is_type_int(bt) -> bool + @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) + is_type_int128(t) -> bool + @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) + is_type_int16(t) -> bool + @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) + is_type_int32(t) -> bool + @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) + is_type_int64(t) -> bool + @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) + is_type_integral(t) -> 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) + is_type_ldouble(t) -> bool + @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) + is_type_paf(t) -> bool + @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) + is_type_partial(t) -> bool + @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) + is_type_ptr(t) -> bool + @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) + is_type_ptr_or_array(t) -> bool + @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) + is_type_struct(t) -> bool + @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) + is_type_struni(t) -> bool + @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) + is_type_sue(t) -> bool + @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) + is_type_tbyte(t) -> bool + @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) + is_type_typedef(t) -> bool + @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) + is_type_uchar(t) -> bool + @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) + is_type_uint(t) -> bool + @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) + is_type_uint128(t) -> bool + @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) + is_type_uint16(t) -> bool + @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) + is_type_uint32(t) -> bool + @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) + is_type_uint64(t) -> bool + @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) + is_type_union(t) -> bool + @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) + is_type_unknown(t) -> bool + @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) + is_type_void(t) -> bool + @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) + is_type_volatile(t) -> bool + @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) + is_typeid_last(t) -> bool + @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) + is_user_cc(cm) -> bool + @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) + is_vararg_cc(cm) -> bool + @param cm (C++: cm_t) Help on function lexcompare_tinfo in module ida_typeinf: lexcompare_tinfo(*args) lexcompare_tinfo(t1, t2, arg3) -> int + t1: uint32 + t2: uint32 + 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 + load_til(name, tildir=None) -> til_t + @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 *) + load_til_header(tildir, name) -> til_t + @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, @@ -70620,10 +81452,14 @@ lower_type(*args) 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 *) + lower_type(til, tif, name=None, _helper=None) -> int + @param til (C++: til_t *) + @param tif (C++: tinfo_t *) + @param name (C++: const char *) + @param _helper (C++: lowertype_helper_t *) + @retval: 1 - removed FTI_HIGH , + @retval: 2 - made substantial changes + @retval: -1 - failure Help on class lowertype_helper_t in module ida_typeinf: @@ -70638,9 +81474,13 @@ class lowertype_helper_t(__builtin__.object) | | func_has_stkframe_hole(self, *args) | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | @param candidate (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | get_func_purged_bytes(self, *args) | get_func_purged_bytes(self, candidate, candidate_data) -> int + | @param candidate (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70663,76 +81503,64 @@ class lowertype_helper_t(__builtin__.object) 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 *) + new_til(name, desc) -> til_t + @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) + next_named_type(ti, name, ntf_flags) -> char const * + @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 *) + optimize_argloc(vloc, size, gaps) -> bool + @param vloc (C++: argloc_t *) + @param size (C++: int) + @param gaps (C++: const rangeset_t *) + @retval: true - success + @retval: false - the input argloc was illegal 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) + pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t + @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) + pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t + @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 * - - + 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 @@ -70746,9 +81574,7 @@ pack_object_to_bv(*args) 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 * - - + 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 @@ -70761,37 +81587,36 @@ pack_object_to_idb(*args) 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) + parse_decl(tif, til, decl, flags) -> str + @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) + @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) - 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. + parse_decls(til, input, printer, hti_flags) -> int + @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: @@ -70804,11 +81629,16 @@ class predicate_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> predicate_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | should_display(self, *args) | should_display(self, til, name, type, fields) -> bool + | @param til (C++: const til_t *) + | @param name (C++: const char *) + | @param type (C++: const type_t *) + | @param fields (C++: const p_list *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70831,46 +81661,51 @@ class predicate_t(__builtin__.object) 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) + print_argloc(vloc, size=0, vflags=0) -> str + @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) + print_decls(printer, til, py_ordinals, flags) -> PyObject * + @param printer: a handler for printing text (C++: text_sink_t &) + @param til: the type library holding the ordinals (C++: til_t *) + py_ordinals: PyObject * + @param flags: flags for the algorithm. A combination of PDF_* + constants (C++: uint32) + @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) print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str + prefix: char const * + indent: int + cmtindent: int + flags: int + tif: tinfo_t const * + name: char const * + cmt: char const * 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 + print_type(ea, prtype_flags) -> str + @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: @@ -70881,23 +81716,32 @@ class ptr_type_data_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | 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 + | c: tinfo_t + | bps: uchar + | p: tinfo_t + | d: int32 | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ptr_type_data_t const & | | __repr__ = _swig_repr(self) | | is_code_ptr(self, *args) - | is_code_ptr(self) -> bool + | Are we pointing to code? | | is_shifted(self, *args) | is_shifted(self) -> bool | | swap(self, *args) + | Set this = r and r = this. + | | swap(self, r) + | @param r (C++: ptr_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70939,6 +81783,9 @@ Help on function read_tinfo_bitfield_value in module ida_typeinf: read_tinfo_bitfield_value(*args) read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 + typid: uint32 + v: uint64 + bitoff: int Help on class reginfovec_t in module ida_typeinf: @@ -70949,13 +81796,15 @@ class reginfovec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< reg_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> reg_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> reginfovec_t - | __init__(self, x) -> reginfovec_t + | 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. @@ -70964,17 +81813,22 @@ class reginfovec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< reg_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: reg_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: reg_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: reg_info_t const & | | append = push_back(self, *args) | @@ -71002,52 +81856,74 @@ class reginfovec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> reg_info_t + | it: qvector< reg_info_t >::iterator + | + | | erase(self, first, last) -> reg_info_t + | first: qvector< reg_info_t >::iterator + | last: qvector< reg_info_t >::iterator | | extract(self, *args) | extract(self) -> reg_info_t | | find(self, *args) | find(self, x) -> reg_info_t + | x: reg_info_t const & + | + | | find(self, x) -> reg_info_t + | x: reg_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=reg_info_t()) + | x: reg_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: reg_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: reg_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> reg_info_t + | it: qvector< reg_info_t >::iterator + | x: reg_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> reg_info_t + | x: reg_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< reg_info_t > & | | truncate(self, *args) | truncate(self) @@ -71146,6 +82022,7 @@ class regobjs_t(regobjvec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> regobj_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71155,9 +82032,12 @@ class regobjs_t(regobjvec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: regobj_t const & | | at(self, *args) | at(self, _idx) -> regobj_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -71181,7 +82061,12 @@ class regobjs_t(regobjvec_t) | | erase(self, *args) | erase(self, it) -> regobj_t + | it: qvector< regobj_t >::iterator + | + | | erase(self, first, last) -> regobj_t + | first: qvector< regobj_t >::iterator + | last: qvector< regobj_t >::iterator | | extract(self, *args) | extract(self) -> regobj_t @@ -71191,35 +82076,47 @@ class regobjs_t(regobjvec_t) | | grow(self, *args) | grow(self, x=regobj_t()) + | x: regobj_t const & | | inject(self, *args) | inject(self, s, len) + | s: regobj_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> regobj_t + | it: qvector< regobj_t >::iterator + | x: regobj_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> regobj_t + | x: regobj_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: regobj_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< regobj_t > & | | truncate(self, *args) | truncate(self) @@ -71242,10 +82139,11 @@ class regobjvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> regobj_t + | i: size_t | | __init__(self, *args) | __init__(self) -> regobjvec_t - | __init__(self, x) -> regobjvec_t + | x: qvector< regobj_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71257,9 +82155,12 @@ class regobjvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: regobj_t const & | | at(self, *args) | at(self, _idx) -> regobj_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -71283,7 +82184,12 @@ class regobjvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> regobj_t + | it: qvector< regobj_t >::iterator + | + | | erase(self, first, last) -> regobj_t + | first: qvector< regobj_t >::iterator + | last: qvector< regobj_t >::iterator | | extract(self, *args) | extract(self) -> regobj_t @@ -71293,35 +82199,47 @@ class regobjvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=regobj_t()) + | x: regobj_t const & | | inject(self, *args) | inject(self, s, len) + | s: regobj_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> regobj_t + | it: qvector< regobj_t >::iterator + | x: regobj_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> regobj_t + | x: regobj_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: regobj_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< regobj_t > & | | truncate(self, *args) | truncate(self) @@ -71348,49 +82266,49 @@ Help on function remove_abi_opts in module ida_typeinf: remove_abi_opts(*args) remove_abi_opts(abi_opts, user_level=False) -> bool + @param abi_opts (C++: const char *) + @param user_level (C++: 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 + '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 &) + remove_pointer(tif) -> tinfo_t + @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 *) + remove_tinfo_pointer(tif, name, til) -> PyObject * + @param tif (C++: tinfo_t *) + name: char const * + @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 *) + replace_ordinal_typerefs(til, tif) -> int + @param til: type library to use. may be NULL. (C++: til_t *) + @param tif: type to modify (in/out) (C++: tinfo_t *) + @retval: number - of replaced subtypes, -1 on failure Help on function resolve_typedef in module ida_typeinf: resolve_typedef(*args) resolve_typedef(til, type) -> type_t const * + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on class rrel_t in module ida_typeinf: @@ -71432,6 +82350,11 @@ Help on function save_tinfo in module ida_typeinf: save_tinfo(*args) save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t + tif: tinfo_t * + til: til_t * + ord: size_t + name: char const * + ntf_flags: int Help on class scattered_aloc_t in module ida_typeinf: @@ -71467,9 +82390,11 @@ class scattered_aloc_t(argpartvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< argpart_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> argpart_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71479,18 +82404,24 @@ class scattered_aloc_t(argpartvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< argpart_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: argpart_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: argpart_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: argpart_t const & | | at(self, *args) | at(self, _idx) -> argpart_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -71514,52 +82445,74 @@ class scattered_aloc_t(argpartvec_t) | | erase(self, *args) | erase(self, it) -> argpart_t + | it: qvector< argpart_t >::iterator + | + | | erase(self, first, last) -> argpart_t + | first: qvector< argpart_t >::iterator + | last: qvector< argpart_t >::iterator | | extract(self, *args) | extract(self) -> argpart_t | | find(self, *args) | find(self, x) -> argpart_t + | x: argpart_t const & + | + | | find(self, x) -> argpart_t + | x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=argpart_t()) + | x: argpart_t const & | | has(self, *args) | has(self, x) -> bool + | x: argpart_t const & | | inject(self, *args) | inject(self, s, len) + | s: argpart_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> argpart_t + | it: qvector< argpart_t >::iterator + | x: argpart_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> argpart_t + | x: argpart_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: argpart_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< argpart_t > & | | truncate(self, *args) | truncate(self) @@ -71577,124 +82530,124 @@ Help on function score_tinfo in module ida_typeinf: score_tinfo(*args) score_tinfo(tif) -> uint32 + tif: tinfo_t const * Help on function serialize_tinfo in module ida_typeinf: serialize_tinfo(*args) serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool + type: qtype * + fields: qtype * + fldcmts: qtype * + tif: tinfo_t const * + sudt_flags: int 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) + set_abi_name(abiname, user_level=False) -> bool + @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 *) + set_c_header_path(incdir) + @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 *) + set_c_macros(macros) + @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 + set_compiler(cc, flags, abiname=None) -> bool + @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 *) + set_compiler_id(id, abiname=None) -> bool + @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 + @param compstr: - compiler description in form : (C++: + const char *) + @param user_level: - initiated by user if TRUE (C++: bool) + @return: success 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 *) + set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t + @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 + tif: tinfo_t * + ta: type_attr_t const & + may_overwrite: bool Help on function set_tinfo_attrs in module ida_typeinf: set_tinfo_attrs(*args) set_tinfo_attrs(tif, ta) -> bool + tif: tinfo_t * + ta: type_attrs_t * Help on function set_tinfo_property in module ida_typeinf: set_tinfo_property(*args) set_tinfo_property(tif, sta_prop, x) -> size_t + tif: tinfo_t * + sta_prop: int + 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) + set_type_alias(ti, src_ordinal, dst_ordinal) -> bool + @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: @@ -71705,11 +82658,15 @@ class simd_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t + | nm: char const * + | sz: uint16 + | memt: type_t | | __repr__ = _swig_repr(self) | | match_pattern(self, *args) | match_pattern(self, pattern) -> bool + | @param pattern (C++: const simd_info_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71744,20 +82701,18 @@ class simd_info_t(__builtin__.object) 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 + store_til(ti, tildir, name) -> bool + @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: @@ -71770,11 +82725,13 @@ class text_sink_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> text_sink_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, str) -> int + | str: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71803,6 +82760,8 @@ class til_symbol_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=None, t=None) -> til_symbol_t + | n: char const * + | t: til_t const * | | __repr__ = _swig_repr(self) | @@ -71844,12 +82803,13 @@ class til_t(__builtin__.object) | | base(self, *args) | base(self, n) -> til_t + | n: int | | is_dirty(self, *args) - | is_dirty(self) -> bool + | Has the til been modified? ( 'TIL_MOD' ) | | set_dirty(self, *args) - | set_dirty(self) + | Mark the til as modified ( 'TIL_MOD' ) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71902,26 +82862,35 @@ class tinfo_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: tinfo_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: tinfo_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: tinfo_t const & | | __init__(self, *args) | __init__(self) -> tinfo_t - | __init__(self, decl_type) -> tinfo_t + | decl_type: type_t + | + | | __init__(self, r) -> tinfo_t + | r: tinfo_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: tinfo_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: tinfo_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: tinfo_t const & | | __repr__ = _swig_repr(self) | @@ -71930,27 +82899,49 @@ class tinfo_t(__builtin__.object) | | _print(self, *args) | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * | | append_covered(self, *args) + | Calculate set of covered bytes for the type + | | append_covered(self, out, offset=0) -> bool + | @param out: pointer to the output buffer. covered bytes will be + | appended to it. (C++: rangeset_t *) + | @param offset (C++: uint64) | | calc_gaps(self, *args) + | Calculate set of padding bytes for the type + | | calc_gaps(self, out) -> bool + | @param out: pointer to the output buffer; old buffer contents will be + | lost. (C++: rangeset_t *) | | calc_purged_bytes(self, *args) - | calc_purged_bytes(self) -> int + | 'BT_FUNC' : Calculate number of purged bytes | | calc_score(self, *args) - | calc_score(self) -> uint32 + | Calculate the type score (the higher - the nicer is the type) | | calc_udt_aligns(self, *args) + | Calculate the udt alignments using the field offsets/sizes and the + | total udt size This function does not work on typerefs + | | calc_udt_aligns(self, sudt_flags=0x0004) -> bool + | @param sudt_flags (C++: int) | | change_sign(self, *args) + | Change the type sign. Works only for the types that may have sign. + | | change_sign(self, sign) -> bool + | @param sign (C++: type_sign_t) | | clear(self, *args) - | clear(self) + | Clear contents of this tinfo, and remove from the type system. | | clr_const(self, *args) | clr_const(self) @@ -71963,528 +82954,764 @@ class tinfo_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int + | r: tinfo_t const & | | compare_with(self, *args) + | Compare two types, based on given flags (see 'tinfo_t comparison + | flags' ) + | | compare_with(self, r, tcflags=0) -> bool + | @param r (C++: const tinfo_t &) + | @param tcflags (C++: int) | | convert_array_to_ptr(self, *args) - | convert_array_to_ptr(self) -> bool + | Convert an array into a pointer. type[] => type * | | copy(self, *args) | copy(self) -> tinfo_t | | create_array(self, *args) | create_array(self, p, decl_type=BT_ARRAY) -> bool + | @param p (C++: const array_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool + | tif: tinfo_t const & + | nelems: uint32 + | base: uint32 + | @param decl_type (C++: type_t) | | create_bitfield(self, *args) | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool + | @param p (C++: const bitfield_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool + | nbytes: uchar + | width: uchar + | is_unsigned: bool + | @param decl_type (C++: type_t) | | create_enum(self, *args) | create_enum(self, p, decl_type=BTF_ENUM) -> bool + | p: enum_type_data_t & + | decl_type: type_t | | create_forward_decl(self, *args) + | Create a forward declaration. decl_type: 'BTF_STRUCT' , 'BTF_UNION' , + | or 'BTF_ENUM' + | | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t + | @param til (C++: til_t *) + | @param decl_type (C++: type_t) + | @param name (C++: const char *) + | @param ntf_flags (C++: int) | | create_func(self, *args) | create_func(self, p, decl_type=BT_FUNC) -> bool + | p: func_type_data_t & + | decl_type: type_t | | create_ptr(self, *args) | create_ptr(self, p, decl_type=BT_PTR) -> bool + | @param p (C++: const ptr_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool + | tif: tinfo_t const & + | bps: uchar + | @param decl_type (C++: type_t) | | create_simple_type(self, *args) | create_simple_type(self, decl_type) -> bool + | @param decl_type (C++: type_t) | | create_typedef(self, *args) | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool + | @param p (C++: const typedef_type_data_t &) + | @param decl_type (C++: type_t) + | @param try_ordinal (C++: bool) + | + | | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) + | til: til_t const * + | name: char const * + | @param decl_type (C++: type_t) + | @param try_ordinal (C++: bool) + | + | | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) + | til: til_t const * + | ord: uint + | @param decl_type (C++: type_t) | | create_udt(self, *args) | create_udt(self, p, decl_type) -> bool + | p: udt_type_data_t & + | decl_type: type_t | | del_attr(self, *args) + | Del a type attribute. typerefs cannot be modified by this function. + | | del_attr(self, key, make_copy=True) -> bool + | @param key (C++: const qstring &) + | @param make_copy (C++: bool) | | del_attrs(self, *args) - | del_attrs(self) + | Del all type attributes. typerefs cannot be modified by this function. | | deserialize(self, *args) + | Deserialize a type string into a 'tinfo_t' object. + | | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool + | @param til (C++: const til_t *) + | @param ptype (C++: const type_t **) + | @param pfields (C++: const p_list **) + | @param pfldcmts (C++: const p_list **) + | + | | deserialize(self, til, type, fields, cmts=None) -> bool + | @param til (C++: const til_t *) + | type: type_t const * + | fields: p_list const * + | cmts: p_list const * | | dstr(self, *args) - | dstr(self) -> char const * + | Function to facilitate debugging. | | empty(self, *args) - | empty(self) -> bool + | Was 'tinfo_t' initialized with some type info or not? | | equals_to(self, *args) | equals_to(self, r) -> bool + | @param r (C++: const tinfo_t &) | | find_udt_member(self, *args) + | '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' ) + | | find_udt_member(self, udm, strmem_flags) -> int + | @param udm (C++: struct udt_member_t *) + | @param strmem_flags (C++: int) + | @return: the index of the found member or -1 | | get_array_details(self, *args) + | Get the array specific info. + | | get_array_details(self, ai) -> bool + | @param ai (C++: array_type_data_t *) | | get_array_element(self, *args) - | get_array_element(self) -> tinfo_t + | 'BT_ARRAY' : get type of array element. See also + | 'get_ptrarr_object()' | | get_array_nelems(self, *args) - | get_array_nelems(self) -> int + | 'BT_ARRAY' : get number of elements (-1 means error) | | get_attr(self, *args) + | Get a type attribute. + | | get_attr(self, key, all_attrs=True) -> PyObject * + | @param key (C++: const qstring &) + | @param all_attrs (C++: bool) | | get_attrs(self, *args) + | Get type attributes (all_attrs: include attributes of referenced + | types, if any) + | | get_attrs(self, tav, all_attrs=False) -> bool + | @param tav (C++: type_attrs_t *) + | @param all_attrs (C++: bool) | | get_bitfield_details(self, *args) + | Get the bitfield specific info. + | | get_bitfield_details(self, bi) -> bool + | @param bi (C++: bitfield_type_data_t *) | | get_declalign(self, *args) - | get_declalign(self) -> uchar + | Get declared alignment of the type. | | get_decltype(self, *args) - | 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) - | 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) + | Get the enum specific info. + | | get_enum_details(self, ei) -> bool + | @param ei (C++: enum_type_data_t *) | | get_final_ordinal(self, *args) - | get_final_ordinal(self) -> uint32 + | Get final type ordinal (0 is none) | | get_final_type_name(self, *args) - | get_final_type_name(self) -> bool + | Use in the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). | | get_func_details(self, *args) + | Get only the function specific info for this 'tinfo_t' . + | | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool + | @param fi (C++: func_type_data_t *) + | @param gtd (C++: gtd_func_t) | | get_modifiers(self, *args) | get_modifiers(self) -> type_t | | get_named_type(self, *args) + | Create a 'tinfo_t' object for an existing named type. + | | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool + | @param til: type library to use (C++: const til_t *) + | @param name: name of the type to link to (C++: const char *) + | @param decl_type: 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 (C++: type_t) + | @param resolve: true: immediately resolve the type and return success + | code. false: return true but do not immediately + | resolve the type (C++: bool) + | @param try_ordinal: true: try to replace name reference by an ordinal + | reference (C++: bool) | | get_nargs(self, *args) - | get_nargs(self) -> int + | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Calculate number of arguments (-1 + | - error) | | get_next_type_name(self, *args) - | get_next_type_name(self) -> bool + | Use In the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). | | get_nth_arg(self, *args) + | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get type of n-th arg (-1 means + | return type, see 'get_rettype()' ) + | | get_nth_arg(self, n) -> tinfo_t + | @param n (C++: int) | | get_numbered_type(self, *args) + | Create a 'tinfo_t' object for an existing ordinal type. + | | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool + | @param til: type library to use (C++: const til_t *) + | @param ordinal: number of the type to link to (C++: uint32) + | @param decl_type: 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 (C++: type_t) + | @param resolve: true: immediately resolve the type and return success + | code false: return true but do not immediately resolve + | the type (C++: bool) | | get_onemember_type(self, *args) - | get_onemember_type(self) -> tinfo_t + | For objects consisting of one member entirely: return type of the + | member. | | get_ordinal(self, *args) - | 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) - | get_pointed_object(self) -> tinfo_t + | 'BT_PTR' : get type of pointed object. If the current type is not a + | pointer, return empty type info. See also 'get_ptrarr_object()' and + | 'remove_pointer()' | | get_ptr_details(self, *args) + | Get the pointer info. + | | get_ptr_details(self, pi) -> bool + | @param pi (C++: ptr_type_data_t *) | | get_ptrarr_object(self, *args) - | 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) - | 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) + | 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 + | | get_realtype(self, full=False) -> type_t + | @param full (C++: bool) | | get_rettype(self, *args) - | get_rettype(self) -> tinfo_t + | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get the function's return type | | get_sign(self, *args) - | get_sign(self) -> type_sign_t + | Get type sign. | | get_size(self, *args) + | Get the type size in bytes. + | | get_size(self, p_effalign=None, gts_code=0) -> size_t + | @param p_effalign: buffer for the alignment value (C++: uint32 *) + | @param gts_code: combination of GTS_... constants (C++: int) + | @return: BADSIZE in case of problems | | get_til(self, *args) - | get_til(self) -> til_t + | Get the type library for 'tinfo_t' . | | get_type_name(self, *args) - | 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) + | Get the udt specific info. + | | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool + | @param udt (C++: udt_type_data_t *) + | @param gtd (C++: gtd_udt_t) | | get_udt_nmembers(self, *args) - | get_udt_nmembers(self) -> int + | Get number of udt members. -1-error. | | get_unpadded_size(self, *args) - | 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) - | has_details(self) -> bool + | Does this type refer to a nontrivial type? | | has_vftable(self, *args) - | has_vftable(self) -> bool + | Has a vftable? | | is_anonymous_udt(self, *args) - | 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) - | is_arithmetic(self) -> bool + | \isreal{is_type_arithmetic} | | is_array(self, *args) - | is_array(self) -> bool + | \isreal{is_type_array} | | is_bitfield(self, *args) - | is_bitfield(self) -> bool + | \isreal{is_type_bitfld} | | is_bool(self, *args) - | is_bool(self) -> bool + | \isreal{is_type_bool} | | is_castable_to(self, *args) | is_castable_to(self, target) -> bool + | @param target (C++: const tinfo_t &) | | is_char(self, *args) - | is_char(self) -> bool + | \isreal{is_type_char} | | is_complex(self, *args) - | is_complex(self) -> bool + | \isreal{is_type_complex} | | is_const(self, *args) - | is_const(self) -> bool + | \isreal{is_type_const} | | is_correct(self, *args) - | 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) - | is_decl_array(self) -> bool + | \isdecl{is_type_array} | | is_decl_bitfield(self, *args) - | is_decl_bitfield(self) -> bool + | \isdecl{is_type_bitfld} | | is_decl_bool(self, *args) - | is_decl_bool(self) -> bool + | \isdecl{is_type_bool} | | is_decl_char(self, *args) - | is_decl_char(self) -> bool + | \isdecl{is_type_char} | | is_decl_complex(self, *args) - | is_decl_complex(self) -> bool + | \isdecl{is_type_complex} | | is_decl_const(self, *args) - | is_decl_const(self) -> bool + | \isdecl{is_type_const} | | is_decl_double(self, *args) - | is_decl_double(self) -> bool + | \isdecl{is_type_double} | | is_decl_enum(self, *args) - | is_decl_enum(self) -> bool + | \isdecl{is_type_enum} | | is_decl_float(self, *args) - | is_decl_float(self) -> bool + | \isdecl{is_type_float} | | is_decl_floating(self, *args) - | is_decl_floating(self) -> bool + | \isdecl{is_type_floating} | | is_decl_func(self, *args) - | is_decl_func(self) -> bool + | \isdecl{is_type_func} | | is_decl_int(self, *args) - | is_decl_int(self) -> bool + | \isdecl{is_type_int} | | is_decl_int128(self, *args) - | is_decl_int128(self) -> bool + | \isdecl{is_type_int128} | | is_decl_int16(self, *args) - | is_decl_int16(self) -> bool + | \isdecl{is_type_int16} | | is_decl_int32(self, *args) - | is_decl_int32(self) -> bool + | \isdecl{is_type_int32} | | is_decl_int64(self, *args) - | is_decl_int64(self) -> bool + | \isdecl{is_type_int64} | | is_decl_last(self, *args) - | is_decl_last(self) -> bool + | \isdecl{is_typeid_last} | | is_decl_ldouble(self, *args) - | is_decl_ldouble(self) -> bool + | \isdecl{is_type_ldouble} | | is_decl_paf(self, *args) - | is_decl_paf(self) -> bool + | \isdecl{is_type_paf} | | is_decl_partial(self, *args) - | is_decl_partial(self) -> bool + | \isdecl{is_type_partial} | | is_decl_ptr(self, *args) - | is_decl_ptr(self) -> bool + | \isdecl{is_type_ptr} | | is_decl_struct(self, *args) - | is_decl_struct(self) -> bool + | \isdecl{is_type_struct} | | is_decl_sue(self, *args) - | is_decl_sue(self) -> bool + | \isdecl{is_type_sue} | | is_decl_tbyte(self, *args) - | is_decl_tbyte(self) -> bool + | \isdecl{is_type_tbyte} | | is_decl_typedef(self, *args) - | is_decl_typedef(self) -> bool + | \isdecl{is_type_typedef} | | is_decl_uchar(self, *args) - | is_decl_uchar(self) -> bool + | \isdecl{is_type_uchar} | | is_decl_udt(self, *args) - | is_decl_udt(self) -> bool + | \isdecl{is_type_struni} | | is_decl_uint(self, *args) - | is_decl_uint(self) -> bool + | \isdecl{is_type_uint} | | is_decl_uint128(self, *args) - | is_decl_uint128(self) -> bool + | \isdecl{is_type_uint128} | | is_decl_uint16(self, *args) - | is_decl_uint16(self) -> bool + | \isdecl{is_type_uint16} | | is_decl_uint32(self, *args) - | is_decl_uint32(self) -> bool + | \isdecl{is_type_uint32} | | is_decl_uint64(self, *args) - | is_decl_uint64(self) -> bool + | \isdecl{is_type_uint64} | | is_decl_union(self, *args) - | is_decl_union(self) -> bool + | \isdecl{is_type_union} | | is_decl_unknown(self, *args) - | is_decl_unknown(self) -> bool + | \isdecl{is_type_unknown} | | is_decl_void(self, *args) - | is_decl_void(self) -> bool + | \isdecl{is_type_void} | | is_decl_volatile(self, *args) - | is_decl_volatile(self) -> bool + | \isdecl{is_type_volatile} | | is_double(self, *args) - | is_double(self) -> bool + | \isreal{is_type_double} | | is_empty_udt(self, *args) - | is_empty_udt(self) -> bool + | Is an empty struct/union? (has no fields) | | is_enum(self, *args) - | is_enum(self) -> bool + | \isreal{is_type_enum} | | is_ext_arithmetic(self, *args) - | is_ext_arithmetic(self) -> bool + | \isreal{is_type_ext_arithmetic} | | is_ext_integral(self, *args) - | is_ext_integral(self) -> bool + | \isreal{is_type_ext_integral} | | is_float(self, *args) - | is_float(self) -> bool + | \isreal{is_type_float} | | is_floating(self, *args) - | is_floating(self) -> bool + | \isreal{is_type_floating} | | is_forward_decl(self, *args) - | 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) - | 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) - | is_func(self) -> bool + | \isreal{is_type_func} | | is_funcptr(self, *args) - | is_funcptr(self) -> bool + | Is this pointer to a function? | | is_high_func(self, *args) - | is_high_func(self) -> bool + | 'BT_FUNC' : Is high level type? | | is_int(self, *args) - | is_int(self) -> bool + | \isreal{is_type_int} | | is_int128(self, *args) - | is_int128(self) -> bool + | \isreal{is_type_int128} | | is_int16(self, *args) - | is_int16(self) -> bool + | \isreal{is_type_int16} | | is_int32(self, *args) - | is_int32(self) -> bool + | \isreal{is_type_int32} | | is_int64(self, *args) - | is_int64(self) -> bool + | \isreal{is_type_int64} | | is_integral(self, *args) - | is_integral(self) -> bool + | \isreal{is_type_integral} | | is_ldouble(self, *args) - | is_ldouble(self) -> bool + | \isreal{is_type_ldouble} | | is_manually_castable_to(self, *args) | is_manually_castable_to(self, target) -> bool + | @param target (C++: const tinfo_t &) | | is_one_fpval(self, *args) - | is_one_fpval(self) -> bool + | Floating value or an object consisting of one floating member + | entirely. | | is_paf(self, *args) - | is_paf(self) -> bool + | \isreal{is_type_paf} | | is_partial(self, *args) - | is_partial(self) -> bool + | \isreal{is_type_partial} | | is_ptr(self, *args) - | is_ptr(self) -> bool + | \isreal{is_type_ptr} | | is_ptr_or_array(self, *args) - | is_ptr_or_array(self) -> bool + | \isreal{is_type_ptr_or_array} | | is_purging_cc(self, *args) - | is_purging_cc(self) -> bool + | \tinfocc{is_purging_cc} | | is_pvoid(self, *args) - | is_pvoid(self) -> bool + | Is "void *"?. This function does not check the pointer attributes and + | type modifiers. | | is_scalar(self, *args) - | is_scalar(self) -> bool + | Does the type represent a single number? | | is_shifted_ptr(self, *args) - | is_shifted_ptr(self) -> bool + | Is a shifted pointer? | | is_signed(self, *args) - | is_signed(self) -> bool + | Is this a signed type? | | is_small_udt(self, *args) - | is_small_udt(self) -> bool + | Is a small udt? (can fit a register or a pair of registers) | | is_sse_type(self, *args) - | is_sse_type(self) -> bool + | Is a SSE vector type? | | is_struct(self, *args) - | is_struct(self) -> bool + | \isreal{is_type_struct} | | is_sue(self, *args) - | is_sue(self) -> bool + | \isreal{is_type_sue} | | is_tbyte(self, *args) - | is_tbyte(self) -> bool + | \isreal{is_type_tbyte} | | is_typeref(self, *args) - | 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) - | is_uchar(self) -> bool + | \isreal{is_type_uchar} | | is_udt(self, *args) - | is_udt(self) -> bool + | \isreal{is_type_struni} | | is_uint(self, *args) - | is_uint(self) -> bool + | \isreal{is_type_uint} | | is_uint128(self, *args) - | is_uint128(self) -> bool + | \isreal{is_type_uint128} | | is_uint16(self, *args) - | is_uint16(self) -> bool + | \isreal{is_type_uint16} | | is_uint32(self, *args) - | is_uint32(self) -> bool + | \isreal{is_type_uint32} | | is_uint64(self, *args) - | is_uint64(self) -> bool + | \isreal{is_type_uint64} | | is_union(self, *args) - | is_union(self) -> bool + | \isreal{is_type_union} | | is_unknown(self, *args) - | is_unknown(self) -> bool + | \isreal{is_type_unknown} | | is_unsigned(self, *args) - | is_unsigned(self) -> bool + | Is this an unsigned type? | | is_user_cc(self, *args) - | is_user_cc(self) -> bool + | \tinfocc{is_user_cc} | | is_vararg_cc(self, *args) - | is_vararg_cc(self) -> bool + | \tinfocc{is_vararg_cc} | | is_varstruct(self, *args) - | is_varstruct(self) -> bool + | Is a variable-size structure? | | is_vftable(self, *args) - | is_vftable(self) -> bool + | Is a vftable type? | | is_void(self, *args) - | is_void(self) -> bool + | \isreal{is_type_void} | | is_volatile(self, *args) - | is_volatile(self) -> bool + | \isreal{is_type_volatile} | | is_well_defined(self, *args) - | is_well_defined(self) -> bool + | !( 'empty()' ) && !( 'is_decl_partial()' ) | | present(self, *args) - | present(self) -> bool + | Is the type really present? (not a reference to a missing type, for + | example) | | read_bitfield_value(self, *args) | read_bitfield_value(self, v, bitoff) -> uint64 + | v: uint64 + | bitoff: int | | remove_ptr_or_array(self, *args) - | 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[] => typetype* + | => type If the conversion is performed successfully, return true | | requires_qualifier(self, *args) + | Requires full qualifier? (name is not unique) + | | requires_qualifier(self, name, offset) -> bool + | @param name: field name (C++: const char *) + | @param offset (C++: uint64) + | @return: if the name is not unique, returns true | | serialize(self, *args) + | Serialize 'tinfo_t' object into a type string. + | | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * + | @param sudt_flags (C++: int) | | set_attr(self, *args) + | Set a type attribute. If necessary, a new typid will be created. + | | set_attr(self, ta, may_overwrite=True) -> bool + | @param ta (C++: const type_attr_t &) + | @param may_overwrite (C++: bool) | | set_attrs(self, *args) + | Set type attributes. If necessary, a new typid will be created. this + | function modifies tav! (returns old attributes, if any) + | | set_attrs(self, tav) -> bool + | @param tav (C++: type_attrs_t *) + | @return: false: bad attributes | | set_const(self, *args) | set_const(self) | | set_declalign(self, *args) + | Set declared alignment of the type. + | | set_declalign(self, declalign) -> bool + | @param declalign (C++: uchar) | | set_modifiers(self, *args) | set_modifiers(self, mod) + | mod: type_t | | set_named_type(self, *args) | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | til: til_t * + | name: char const * + | ntf_flags: int | | set_numbered_type(self, *args) | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t + | til: til_t * + | ord: uint32 + | ntf_flags: int + | name: char const * | | set_symbol_type(self, *args) | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | til: til_t * + | name: char const * + | ntf_flags: int | | set_volatile(self, *args) | set_volatile(self) | | swap(self, *args) + | Assign this = r and r = this. + | | swap(self, r) + | @param r (C++: tinfo_t &) | | write_bitfield_value(self, *args) | write_bitfield_value(self, dst, v, bitoff) -> uint64 + | dst: uint64 + | v: uint64 + | bitoff: int | | ---------------------------------------------------------------------- | Static methods defined here: | | get_stock(*args) | get_stock(id) -> tinfo_t + | id: enum stock_type_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72508,6 +83735,7 @@ Help on function tinfo_t_get_stock in module ida_typeinf: tinfo_t_get_stock(*args) tinfo_t_get_stock(id) -> tinfo_t + id: enum stock_type_id_t Help on class tinfo_visitor_t in module ida_typeinf: @@ -72520,17 +83748,34 @@ class tinfo_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self, s=0) -> tinfo_visitor_t + | s: int | | __repr__ = _swig_repr(self) | | apply_to(self, *args) + | Call this function to initiate the traversal. + | | apply_to(self, tif, out=None, name=None, cmt=None) -> int + | @param tif (C++: const tinfo_t &) + | @param out (C++: type_mods_t *) + | @param name (C++: const char *) + | @param cmt (C++: const char *) | | prune_now(self, *args) - | prune_now(self) + | To refuse to visit children of the current type, use this: | | visit_type(self, *args) + | 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 NULL) return 0 to continue the traversal. return !=0 to + | stop the traversal. + | | visit_type(self, out, tif, name, cmt) -> int + | @param out (C++: type_mods_t *) + | @param tif (C++: const tinfo_t &) + | @param name (C++: const char *) + | @param cmt (C++: const char *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72562,12 +83807,14 @@ class type_attr_t(__builtin__.object) | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: type_attr_t const & | | __init__(self, *args) | __init__(self) -> type_attr_t | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: type_attr_t const & | | __repr__ = _swig_repr(self) | @@ -72604,10 +83851,11 @@ class type_attrs_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> type_attr_t + | i: size_t | | __init__(self, *args) | __init__(self) -> type_attrs_t - | __init__(self, x) -> type_attrs_t + | 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. @@ -72619,9 +83867,12 @@ class type_attrs_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: type_attr_t const & | | at(self, *args) | at(self, _idx) -> type_attr_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -72645,7 +83896,12 @@ class type_attrs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> type_attr_t + | it: qvector< type_attr_t >::iterator + | + | | erase(self, first, last) -> type_attr_t + | first: qvector< type_attr_t >::iterator + | last: qvector< type_attr_t >::iterator | | extract(self, *args) | extract(self) -> type_attr_t @@ -72655,35 +83911,47 @@ class type_attrs_t(__builtin__.object) | | grow(self, *args) | grow(self, x=type_attr_t()) + | x: type_attr_t const & | | inject(self, *args) | inject(self, s, len) + | s: type_attr_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> type_attr_t + | it: qvector< type_attr_t >::iterator + | x: type_attr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> type_attr_t + | x: type_attr_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: type_attr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< type_attr_t > & | | truncate(self, *args) | truncate(self) @@ -72735,12 +84003,19 @@ class type_mods_t(__builtin__.object) | | set_new_cmt(self, *args) | set_new_cmt(self, c) + | @param c (C++: const qstring &) | | set_new_name(self, *args) | set_new_name(self, n) + | @param n (C++: const qstring &) | | set_new_type(self, *args) + | 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. + | | set_new_type(self, t) + | @param t (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72781,12 +84056,21 @@ class typedef_type_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t + | _til: til_t const * + | _name: char const * + | _resolve: bool + | + | | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t + | _til: til_t const * + | ord: uint32 + | _resolve: bool | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) + | @param r (C++: typedef_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72824,15 +84108,18 @@ class udt_member_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: udt_member_t const & | | __init__(self, *args) | __init__(self) -> udt_member_t | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: udt_member_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: udt_member_t const & | | __repr__ = _swig_repr(self) | @@ -72889,6 +84176,7 @@ class udt_member_t(__builtin__.object) | | swap(self, *args) | swap(self, r) + | @param r (C++: udt_member_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72954,6 +84242,7 @@ class udt_type_data_t(udtmembervec_t) | | is_last_baseclass(self, *args) | is_last_baseclass(self, idx) -> bool + | @param idx (C++: size_t) | | is_msstruct(self, *args) | is_msstruct(self) -> bool @@ -72966,6 +84255,7 @@ class udt_type_data_t(udtmembervec_t) | | swap(self, *args) | swap(self, r) + | @param r (C++: udt_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -73005,9 +84295,11 @@ class udt_type_data_t(udtmembervec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> udt_member_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73017,18 +84309,24 @@ class udt_type_data_t(udtmembervec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: udt_member_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: udt_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: udt_member_t const & | | at(self, *args) | at(self, _idx) -> udt_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -73052,46 +84350,67 @@ class udt_type_data_t(udtmembervec_t) | | erase(self, *args) | erase(self, it) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | + | | erase(self, first, last) -> udt_member_t + | first: qvector< udt_member_t >::iterator + | last: qvector< udt_member_t >::iterator | | extract(self, *args) | extract(self) -> udt_member_t | | find(self, *args) | find(self, x) -> udt_member_t + | x: udt_member_t const & + | + | | find(self, x) -> udt_member_t + | x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=udt_member_t()) + | x: udt_member_t const & | | has(self, *args) | has(self, x) -> bool + | x: udt_member_t const & | | inject(self, *args) | inject(self, s, len) + | s: udt_member_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | x: udt_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> udt_member_t + | x: udt_member_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: udt_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -73117,13 +84436,15 @@ class udtmembervec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> udt_member_t + | i: size_t | | __init__(self, *args) | __init__(self) -> udtmembervec_t - | __init__(self, x) -> udtmembervec_t + | 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. @@ -73133,20 +84454,26 @@ class udtmembervec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: udt_member_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: udt_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: udt_member_t const & | | at(self, *args) | at(self, _idx) -> udt_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -73170,52 +84497,74 @@ class udtmembervec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | + | | erase(self, first, last) -> udt_member_t + | first: qvector< udt_member_t >::iterator + | last: qvector< udt_member_t >::iterator | | extract(self, *args) | extract(self) -> udt_member_t | | find(self, *args) | find(self, x) -> udt_member_t + | x: udt_member_t const & + | + | | find(self, x) -> udt_member_t + | x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=udt_member_t()) + | x: udt_member_t const & | | has(self, *args) | has(self, x) -> bool + | x: udt_member_t const & | | inject(self, *args) | inject(self, s, len) + | s: udt_member_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | x: udt_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> udt_member_t + | x: udt_member_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: udt_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< udt_member_t > & | | truncate(self, *args) | truncate(self) @@ -73241,39 +84590,32 @@ class udtmembervec_t(__builtin__.object) 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) + unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t + @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) + unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t + @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 * - - + 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. @@ -73288,7 +84630,12 @@ unpack_object_from_bv(*args) 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 * + unpack_object_from_idb(ti, type, fields, ea, pio_flags=0) -> PyObject * + ti: til_t * + type: type_t const * + fields: p_list const * + ea: ea_t + pio_flags: int Help on class valstr_t in module ida_typeinf: @@ -73369,6 +84716,7 @@ class valstrs_t(valstrvec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> valstr_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73378,9 +84726,12 @@ class valstrs_t(valstrvec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: valstr_t const & | | at(self, *args) | at(self, _idx) -> valstr_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -73404,7 +84755,12 @@ class valstrs_t(valstrvec_t) | | erase(self, *args) | erase(self, it) -> valstr_t + | it: qvector< valstr_t >::iterator + | + | | erase(self, first, last) -> valstr_t + | first: qvector< valstr_t >::iterator + | last: qvector< valstr_t >::iterator | | extract(self, *args) | extract(self) -> valstr_t @@ -73414,35 +84770,47 @@ class valstrs_t(valstrvec_t) | | grow(self, *args) | grow(self, x=valstr_t()) + | x: valstr_t const & | | inject(self, *args) | inject(self, s, len) + | s: valstr_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> valstr_t + | it: qvector< valstr_t >::iterator + | x: valstr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> valstr_t + | x: valstr_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: valstr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< valstr_t > & | | truncate(self, *args) | truncate(self) @@ -73465,10 +84833,11 @@ class valstrvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> valstr_t + | i: size_t | | __init__(self, *args) | __init__(self) -> valstrvec_t - | __init__(self, x) -> valstrvec_t + | x: qvector< valstr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73480,9 +84849,12 @@ class valstrvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: valstr_t const & | | at(self, *args) | at(self, _idx) -> valstr_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -73506,7 +84878,12 @@ class valstrvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> valstr_t + | it: qvector< valstr_t >::iterator + | + | | erase(self, first, last) -> valstr_t + | first: qvector< valstr_t >::iterator + | last: qvector< valstr_t >::iterator | | extract(self, *args) | extract(self) -> valstr_t @@ -73516,35 +84893,47 @@ class valstrvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=valstr_t()) + | x: valstr_t const & | | inject(self, *args) | inject(self, s, len) + | s: valstr_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> valstr_t + | it: qvector< valstr_t >::iterator + | x: valstr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> valstr_t + | x: valstr_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: valstr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< valstr_t > & | | truncate(self, *args) | truncate(self) @@ -73570,32 +84959,40 @@ class valstrvec_t(__builtin__.object) 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. + verify_argloc(vloc, size, gaps) -> int + @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 + typid: uint32 Help on function visit_subtypes in module ida_typeinf: visit_subtypes(*args) visit_subtypes(visitor, out, tif, name, cmt) -> int + visitor: tinfo_visitor_t * + out: type_mods_t * + tif: tinfo_t const & + name: char const * + cmt: char const * 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 + typid: uint32 + dst: uint64 + v: uint64 + bitoff: int === ida_typeinf EPYDOC INJECTIONS === ida_typeinf.ADDTIL_ABORTED @@ -74068,7 +85465,7 @@ use c++ name (only for 'print_type()' ) ida_typeinf.PRTYPE_DEF """ - 'tinfo_t' : print definition, if available +'tinfo_t' : print definition, if available """ ida_typeinf.PRTYPE_MULTI @@ -74078,12 +85475,12 @@ print to many lines ida_typeinf.PRTYPE_NOARGS """ - 'tinfo_t' : do not print function argument names +'tinfo_t' : do not print function argument names """ ida_typeinf.PRTYPE_NOARRS """ - 'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers +'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers """ ida_typeinf.PRTYPE_NOREGEX @@ -74093,7 +85490,7 @@ do not apply regular expressions to beautify name ida_typeinf.PRTYPE_NORES """ - 'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) +'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) """ ida_typeinf.PRTYPE_PRAGMA @@ -74103,7 +85500,7 @@ print pragmas for alignment ida_typeinf.PRTYPE_RESTORE """ - 'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' +'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' """ ida_typeinf.PRTYPE_SEMI @@ -74567,84 +85964,78 @@ printed opening curly brace '{' 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) + calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t + @param insn - 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) - 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 + can_decode(ea) -> bool + @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 construct_macro2 in module ida_ua: + +construct_macro2(*args) + construct_macro2(_this, insn, enable) -> bool + @param _this (C++: macro_constructor_t *) + @param insn (C++: insn_t *) + @param enable (C++: bool) + 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 + create_insn(ea, out=None) -> int + @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) + create_outctx(ea, F=0, suspop=0) -> outctx_base_t + @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 + decode_insn(out, ea) -> int + @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 @@ -74653,55 +86044,41 @@ decode_preceding_insn(*args) 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) + decode_prev_insn(out, ea) -> ea_t + @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) + get_dtype_by_size(size) -> int + @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) + get_dtype_flag(dtype) -> flags_t + @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) + get_dtype_size(dtype) -> size_t + @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 @@ -74709,18 +86086,16 @@ get_immvals(*args) 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 ) + get_immvals(ea, n, F=0) -> PyObject * + @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) @@ -74728,59 +86103,67 @@ get_lookback(*args) 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 ) + get_printable_immvals(ea, n, F=0) -> PyObject * + @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 &) + guess_table_address(insn) -> ea_t + @param insn - an ida_ua.insn_t, or an address (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) + guess_table_size(insn, jump_table) -> asize_t + @param insn - an ida_ua.insn_t, or an address (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) + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + to: ea_t + opoff: int + type: enum cref_t Help on function insn_add_dref in module ida_ua: insn_add_dref(*args) insn_add_dref(insn, to, opoff, type) + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + to: ea_t + opoff: int + type: enum dref_t 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 + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + type: enum dref_t + outf: int Help on function insn_create_stkvar in module ida_ua: insn_create_stkvar(*args) insn_create_stkvar(insn, x, v, flags) -> bool + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + v: adiff_t + flags: int Help on class insn_t in module ida_ua: @@ -74790,10 +86173,11 @@ class insn_t(__builtin__.object) | Methods defined here: | | __get_auxpref__(self, *args) - | __get_auxpref__(self) -> uint16 + | __get_auxpref__(self) -> uint32 | | __get_operand__(self, *args) | __get_operand__(self, n) -> op_t + | n: int | | __get_ops__(self, *args) | __get_ops__(self) -> operands_array @@ -74811,31 +86195,74 @@ class insn_t(__builtin__.object) | | __set_auxpref__(self, *args) | __set_auxpref__(self, v) + | v: uint32 | | add_cref(self, *args) + | Add a code cross-reference from the instruction. + | | add_cref(self, to, opoff, type) + | @param to: target linear address (C++: ea_t) + | @param opoff: offset of the operand from the start of instruction. if + | the offset is unknown, then 0. (C++: int) + | @param type: type of xref (C++: cref_t) | | add_dref(self, *args) + | Add a data cross-reference from the instruction. See 'add_off_drefs()' + | - usually it can be used in most cases. + | | add_dref(self, to, opoff, type) + | @param to: target linear address (C++: ea_t) + | @param opoff: offset of the operand from the start of instruction if + | the offset is unknown, then 0 (C++: int) + | @param type: type of xref (C++: dref_t) | | add_off_drefs(self, *args) + | 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. + | | add_off_drefs(self, x, type, outf) -> ea_t + | @param x: reference to operand (C++: const op_t &) + | @param type: type of xref (C++: dref_t) + | @param outf: out_value() flags. These flags should match the flags + | used to output the operand (C++: int) + | @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) | assign(self, other) + | other: an ida_ua.insn_t, or an address (C++: const insn_t &) | | create_op_data(self, *args) | create_op_data(self, ea_, opoff, dtype) -> bool + | ea_: ea_t + | opoff: int + | dtype: op_dtype_t + | + | | create_op_data(self, ea_, op) -> bool + | ea_: ea_t + | op: op_t const & | | create_stkvar(self, *args) | create_stkvar(self, x, v, flags_) -> bool + | x: op_t const & + | v: adiff_t + | flags_: int | | get_canon_feature(self, *args) - | get_canon_feature(self) -> uint32 + | see 'instruc_t::feature' + | + | get_canon_feature(self, ph) -> uint32 + | @param ph (C++: const processor_t &) | | get_canon_mnem(self, *args) - | get_canon_mnem(self) -> char const * + | see 'instruc_t::name' + | + | get_canon_mnem(self, ph) -> char const + | @param ph (C++: const processor_t &) | | get_next_byte(self, *args) | get_next_byte(self) -> uint8 @@ -74850,13 +86277,16 @@ class insn_t(__builtin__.object) | get_next_word(self) -> uint16 | | is_64bit(self, *args) - | is_64bit(self) -> bool + | Belongs to a 64bit segment? | | is_canon_insn(self, *args) - | is_canon_insn(self) -> bool + | see \ph{ 'is_canon_insn()' } + | + | is_canon_insn(self, ph) -> bool + | @param ph (C++: const processor_t &) | | is_macro(self, *args) - | is_macro(self) -> bool + | Is a macro instruction? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74880,7 +86310,7 @@ class insn_t(__builtin__.object) | list of weak references to the object (if defined) | | auxpref - | __get_auxpref__(self) -> uint16 + | __get_auxpref__(self) -> uint32 | | cs | insn_t_cs_get(self) -> ea_t @@ -74922,50 +86352,120 @@ Help on function insn_t__from_ptrval__ in module ida_ua: insn_t__from_ptrval__(*args) insn_t__from_ptrval__(ptrval) -> insn_t + ptrval: size_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) + is_floating_dtype(dtype) -> bool + @param dtype (C++: op_dtype_t) + +Help on class macro_constructor_t in module ida_ua: + +class macro_constructor_t(__builtin__.object) + | Proxy of C++ macro_constructor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> macro_constructor_t + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | build_macro(self, *args) + | Try to extend the instruction. + | + | build_macro(self, insn, may_go_forward) -> bool + | @param insn: Instruction to modify, usually the first instruction of + | the macro (C++: insn_t *) + | @param may_go_forward: 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. (C++: bool) + | @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 + | macro_constructor_t_reserved_get(self) -> size_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_macro_constructor_t(self) 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) + map_code_ea(insn, addr, opnum) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + @param addr: the referenced address to map (C++: ea_t) + @param opnum: operand number (C++: int) + + + map_code_ea(insn, op) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + op: op_t const & 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) + map_data_ea(insn, addr, opnum=-1) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + @param addr: the referenced address to map (C++: ea_t) + @param opnum: operand number (C++: int) + + + map_data_ea(insn, op) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + op: op_t const & Help on function map_ea in module ida_ua: map_ea(*args) map_ea(insn, op, iscode) -> ea_t + @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op (C++: const op_t &) + @param iscode (C++: bool) + + map_ea(insn, addr, opnum, iscode) -> ea_t + @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + addr: ea_t + opnum: int + @param iscode (C++: bool) Help on class op_t in module ida_ua: @@ -74993,36 +86493,47 @@ class op_t(__builtin__.object) | | __set_addr__(self, *args) | __set_addr__(self, v) + | v: ea_t | | __set_reg_phrase__(self, *args) | __set_reg_phrase__(self, r) + | r: uint16 | | __set_specval__(self, *args) | __set_specval__(self, v) + | v: ea_t | | __set_value__(self, *args) | __set_value__(self, v) + | v: ea_t | | assign(self, *args) | assign(self, other) + | other: op_t const & | | clr_shown(self, *args) - | clr_shown(self) + | Set operand to hidden. | | has_reg(self, r) | Checks if the operand accesses the given processor register | | is_imm(self, *args) + | Is immediate operand? + | | is_imm(self, v) -> bool + | @param v (C++: uval_t) | | is_reg(self, *args) + | Is register operand? + | | is_reg(self, r) -> bool + | @param r (C++: int) | | set_shown(self, *args) - | set_shown(self) + | Set operand to be shown. | | shown(self, *args) - | shown(self) -> bool + | Is operand set to be shown? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75091,6 +86602,7 @@ Help on function op_t__from_ptrval__ in module ida_ua: op_t__from_ptrval__(*args) op_t__from_ptrval__(ptrval) -> op_t + ptrval: size_t Help on class operands_array in module ida_ua: @@ -75101,9 +86613,11 @@ class operands_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> op_t + | i: size_t | | __init__(self, *args) | __init__(self, data) -> operands_array + | data: op_t (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75115,6 +86629,8 @@ class operands_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: op_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75158,10 +86674,21 @@ class outctx_base_t(__builtin__.object) | display_voids(self) -> bool | | flush_buf(self, *args) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf + | but accepts an arbitrary buffer + | | flush_buf(self, buf, indent=-1) -> bool + | @param buf (C++: const char *) + | @param indent (C++: int) | | flush_outbuf(self, *args) + | 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. + | | flush_outbuf(self, indent=-1) -> bool + | @param indent (C++: int) | | forbid_annotations(self, *args) | forbid_annotations(self) -> int @@ -75170,34 +86697,84 @@ class outctx_base_t(__builtin__.object) | force_code(self) -> bool | | gen_block_cmt(self, *args) + | Generate big non-indented comment lines. + | | gen_block_cmt(self, cmt, color) -> bool + | @param cmt: comment text. may contain \n characters to denote new + | lines. should not contain comment character (;) (C++: + | const char *) + | @param color: color of comment text (one of Color tags ) (C++: + | color_t) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) + | Generate thin border line. This function does nothing if generation of + | border lines is disabled. + | | gen_border_line(self, solid=False) -> bool + | @param solid: generate solid border line (with =), otherwise with - + | (C++: bool) + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) + | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . + | | gen_cmt_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) + | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' + | . + | | gen_collapsed_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) - | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty + | lines is disabled. | | gen_empty_line_without_annotations(self, *args) | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) + | printf-like function to add lines to the line array. + | | gen_printf(self, indent, format) -> bool + | @param indent: indention of the line. if indent == -1, the kernel will + | indent the line at \inf{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. (C++: + | int) + | @param format: printf style colored line to generate (C++: const char + | *) + | @return: overflow, lnar_maxsize has been reached | | gen_xref_lines(self, *args) | gen_xref_lines(self) -> bool | | get_stkvar(self, *args) | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | arg2: op_t const & + | arg3: uval_t + | arg4: sval_t * + | arg5: int * | | init_lines_array(self, *args) | init_lines_array(self, answers, maxsize) + | @param answers (C++: qstrvec_t *) + | @param maxsize (C++: int) | | multiline(self, *args) | multiline(self) -> bool @@ -75206,73 +86783,153 @@ class outctx_base_t(__builtin__.object) | only_main_line(self) -> bool | | out_addr_tag(self, *args) + | Output "address" escape sequence. + | | out_addr_tag(self, ea) + | @param ea (C++: ea_t) | | out_btoa(self, *args) + | Output a number with the specified base (binary, octal, decimal, hex) + | The number is output without color codes. see also 'out_long()' + | | out_btoa(self, Word, radix=0) + | @param Word (C++: uval_t) + | @param radix (C++: char) | | out_char(self, *args) + | Output one character. The character is output without color codes. see + | also 'out_symbol()' + | | out_char(self, c) + | @param c (C++: char) | | out_chars(self, *args) + | Append a character multiple times. + | | out_chars(self, c, n) + | @param c (C++: char) + | @param n (C++: int) | | out_colored_register_line(self, *args) + | 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) + | | out_colored_register_line(self, str) + | @param str (C++: const char *) | | out_keyword(self, *args) + | Output a string with 'COLOR_KEYWORD' color. + | | out_keyword(self, str) + | @param str (C++: const char *) | | out_line(self, *args) + | Output a string with the specified color. + | | out_line(self, str, color=0) + | @param str (C++: const char *) + | @param color (C++: color_t) | | out_long(self, *args) + | 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 \ph{d_out()}) + | | out_long(self, v, radix) + | @param v (C++: sval_t) + | @param radix (C++: char) | | out_name_expr(self, *args) + | Output a name expression. + | | out_name_expr(self, x, ea, off=BADADDR) -> bool + | @param x: instruction operand referencing the name expression (C++: + | const op_t &) + | @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. You may pass BADADDR for this parameter but I + | discourage it because it prohibits checks. (C++: adiff_t) + | @return: true if the name expression has been produced | | out_printf(self, *args) + | Functions to append text to the current output buffer (outbuf) Append + | a formatted string to the output string. + | | out_printf(self, format) + | @param format (C++: const char *) + | @return: the number of characters appended | | out_register(self, *args) + | Output a character with 'COLOR_REG' color. + | | out_register(self, str) + | @param str (C++: const char *) | | out_spaces(self, *args) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | | out_spaces(self, len) + | @param len (C++: ssize_t) | | out_symbol(self, *args) + | Output a character with 'COLOR_SYMBOL' color. + | | out_symbol(self, c) + | @param c (C++: char) | | out_tagoff(self, *args) + | Output "turn color off" escape sequence. + | | out_tagoff(self, tag) + | @param tag (C++: color_t) | | out_tagon(self, *args) + | Output "turn color on" escape sequence. + | | out_tagon(self, tag) + | @param tag (C++: color_t) | | out_value(self, *args) + | 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 + | | out_value(self, x, outf=0) -> flags_t + | @param x (C++: const op_t &) + | @param outf (C++: int) + | @return: flags of the output value | | print_label_now(self, *args) | print_label_now(self) -> bool | | restore_ctxflags(self, *args) | restore_ctxflags(self, saved_flags) + | @param saved_flags (C++: int) | | retrieve_cmt(self, *args) | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) | retrieve_name(self, arg2, arg3) -> ssize_t + | arg2: qstring * + | arg3: color_t * | | set_comment_addr(self, *args) | set_comment_addr(self, ea) + | @param ea (C++: ea_t) | | set_dlbind_opnd(self, *args) | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) | set_gen_cmt(self, on=True) + | @param on (C++: bool) | | set_gen_demangled_label(self, *args) | set_gen_demangled_label(self) @@ -75282,15 +86939,24 @@ class outctx_base_t(__builtin__.object) | | set_gen_xrefs(self, *args) | set_gen_xrefs(self, on=True) + | @param on (C++: bool) | | setup_outctx(self, *args) + | Initialization; normally used only by the kernel. + | | setup_outctx(self, prefix, makeline_flags) + | @param prefix (C++: const char *) + | @param makeline_flags (C++: int) | | stack_view(self, *args) | stack_view(self) -> bool | | term_outctx(self, *args) + | Finalize the output context. + | | term_outctx(self, prefix=None) -> int + | @param prefix (C++: const char *) + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75317,6 +86983,7 @@ 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 + ptrval: size_t Help on class outctx_t in module ida_ua: @@ -75336,12 +87003,17 @@ class outctx_t(outctx_base_t) | | gen_func_footer(self, *args) | gen_func_footer(self, pfn) + | @param pfn (C++: const func_t *) | | gen_func_header(self, *args) | gen_func_header(self, pfn) + | @param pfn (C++: func_t *) | | gen_header(self, *args) | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) + | @param flags (C++: int) + | @param proc_name (C++: const char *) + | @param proc_flavour (C++: const char *) | | gen_header_extra(self, *args) | gen_header_extra(self) @@ -75350,41 +87022,86 @@ class outctx_t(outctx_base_t) | gen_xref_lines(self) -> bool | | out_custom_mnem(self, *args) + | 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' + | | out_custom_mnem(self, mnem, width=8, postfix=None) + | @param mnem: custom mnemonic (C++: const char *) + | @param width: width of field with mnemonic. if < 0, then 'postfix' + | will be output before the mnemonic, i.e. as a prefix + | (C++: int) + | @param postfix: optional postfix added to 'mnem' (C++: const char *) | | out_data(self, *args) | out_data(self, analyze_only) + | @param analyze_only (C++: bool) | | out_immchar_cmts(self, *args) - | 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) + | Output instruction mnemonic for 'insn' using information in + | 'ph.instruc' array. This function outputs a colored text. It should be + | called from \ph{ev_out_insn()} or \ph{ev_out_mnem()} handler. It will + | output at least one space after the instruction. mnemonic even if the + | specified 'width' is not enough. + | | out_mnem(self, width=8, postfix=None) + | @param width: width of field with mnemonic. if < 0, then 'postfix' + | will be output before the mnemonic, i.e. as a prefix + | (C++: int) + | @param postfix: optional postfix added to the instruction mnemonic + | (C++: const char *) | | out_mnemonic(self, *args) - | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be + | called from \ph{ev_out_insn()} and it will call \ph{ev_out_mnem()} or + | 'out_mnem' . This function outputs a colored text. | | out_one_operand(self, *args) + | 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 + | \ph{ev_out_insn()} and it will call \ph{ev_out_operand()}. This + | function outputs a colored text. + | | out_one_operand(self, n) -> bool + | @param n: number of operand (C++: int) + | @retval: 1 - operand is displayed + | @retval: 0 - operand is hidden | | out_specea(self, *args) | out_specea(self, segtype) -> bool + | @param segtype (C++: uchar) | | retrieve_cmt(self, *args) | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) | retrieve_name(self, arg2, arg3) -> ssize_t + | arg2: qstring * + | arg3: color_t * | | set_bin_state(self, *args) | set_bin_state(self, value) + | @param value (C++: int) | | setup_outctx(self, *args) + | Initialization; normally used only by the kernel. + | | setup_outctx(self, prefix, flags) + | @param prefix (C++: const char *) + | flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | + | ash + | outctx_t_ash_get(self) -> asm_t + | | bin_ea | outctx_t_bin_ea_get(self) -> ea_t | @@ -75403,6 +87120,12 @@ class outctx_t(outctx_base_t) | insn | outctx_t_insn_get(self) -> insn_t | + | ph + | outctx_t_ph_get(self) -> processor_t + | + | procmod + | outctx_t_procmod_get(self) -> procmod_t + | | thisown | The membership flag | @@ -75422,10 +87145,21 @@ class outctx_t(outctx_base_t) | display_voids(self) -> bool | | flush_buf(self, *args) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf + | but accepts an arbitrary buffer + | | flush_buf(self, buf, indent=-1) -> bool + | @param buf (C++: const char *) + | @param indent (C++: int) | | flush_outbuf(self, *args) + | 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. + | | flush_outbuf(self, indent=-1) -> bool + | @param indent (C++: int) | | forbid_annotations(self, *args) | forbid_annotations(self) -> int @@ -75434,31 +87168,81 @@ class outctx_t(outctx_base_t) | force_code(self) -> bool | | gen_block_cmt(self, *args) + | Generate big non-indented comment lines. + | | gen_block_cmt(self, cmt, color) -> bool + | @param cmt: comment text. may contain \n characters to denote new + | lines. should not contain comment character (;) (C++: + | const char *) + | @param color: color of comment text (one of Color tags ) (C++: + | color_t) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) + | Generate thin border line. This function does nothing if generation of + | border lines is disabled. + | | gen_border_line(self, solid=False) -> bool + | @param solid: generate solid border line (with =), otherwise with - + | (C++: bool) + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) + | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . + | | gen_cmt_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) + | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' + | . + | | gen_collapsed_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) - | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty + | lines is disabled. | | gen_empty_line_without_annotations(self, *args) | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) + | printf-like function to add lines to the line array. + | | gen_printf(self, indent, format) -> bool + | @param indent: indention of the line. if indent == -1, the kernel will + | indent the line at \inf{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. (C++: + | int) + | @param format: printf style colored line to generate (C++: const char + | *) + | @return: overflow, lnar_maxsize has been reached | | get_stkvar(self, *args) | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | arg2: op_t const & + | arg3: uval_t + | arg4: sval_t * + | arg5: int * | | init_lines_array(self, *args) | init_lines_array(self, answers, maxsize) + | @param answers (C++: qstrvec_t *) + | @param maxsize (C++: int) | | multiline(self, *args) | multiline(self) -> bool @@ -75467,67 +87251,145 @@ class outctx_t(outctx_base_t) | only_main_line(self) -> bool | | out_addr_tag(self, *args) + | Output "address" escape sequence. + | | out_addr_tag(self, ea) + | @param ea (C++: ea_t) | | out_btoa(self, *args) + | Output a number with the specified base (binary, octal, decimal, hex) + | The number is output without color codes. see also 'out_long()' + | | out_btoa(self, Word, radix=0) + | @param Word (C++: uval_t) + | @param radix (C++: char) | | out_char(self, *args) + | Output one character. The character is output without color codes. see + | also 'out_symbol()' + | | out_char(self, c) + | @param c (C++: char) | | out_chars(self, *args) + | Append a character multiple times. + | | out_chars(self, c, n) + | @param c (C++: char) + | @param n (C++: int) | | out_colored_register_line(self, *args) + | 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) + | | out_colored_register_line(self, str) + | @param str (C++: const char *) | | out_keyword(self, *args) + | Output a string with 'COLOR_KEYWORD' color. + | | out_keyword(self, str) + | @param str (C++: const char *) | | out_line(self, *args) + | Output a string with the specified color. + | | out_line(self, str, color=0) + | @param str (C++: const char *) + | @param color (C++: color_t) | | out_long(self, *args) + | 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 \ph{d_out()}) + | | out_long(self, v, radix) + | @param v (C++: sval_t) + | @param radix (C++: char) | | out_name_expr(self, *args) + | Output a name expression. + | | out_name_expr(self, x, ea, off=BADADDR) -> bool + | @param x: instruction operand referencing the name expression (C++: + | const op_t &) + | @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. You may pass BADADDR for this parameter but I + | discourage it because it prohibits checks. (C++: adiff_t) + | @return: true if the name expression has been produced | | out_printf(self, *args) + | Functions to append text to the current output buffer (outbuf) Append + | a formatted string to the output string. + | | out_printf(self, format) + | @param format (C++: const char *) + | @return: the number of characters appended | | out_register(self, *args) + | Output a character with 'COLOR_REG' color. + | | out_register(self, str) + | @param str (C++: const char *) | | out_spaces(self, *args) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | | out_spaces(self, len) + | @param len (C++: ssize_t) | | out_symbol(self, *args) + | Output a character with 'COLOR_SYMBOL' color. + | | out_symbol(self, c) + | @param c (C++: char) | | out_tagoff(self, *args) + | Output "turn color off" escape sequence. + | | out_tagoff(self, tag) + | @param tag (C++: color_t) | | out_tagon(self, *args) + | Output "turn color on" escape sequence. + | | out_tagon(self, tag) + | @param tag (C++: color_t) | | out_value(self, *args) + | 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 + | | out_value(self, x, outf=0) -> flags_t + | @param x (C++: const op_t &) + | @param outf (C++: int) + | @return: flags of the output value | | print_label_now(self, *args) | print_label_now(self) -> bool | | restore_ctxflags(self, *args) | restore_ctxflags(self, saved_flags) + | @param saved_flags (C++: int) | | set_comment_addr(self, *args) | set_comment_addr(self, ea) + | @param ea (C++: ea_t) | | set_dlbind_opnd(self, *args) | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) | set_gen_cmt(self, on=True) + | @param on (C++: bool) | | set_gen_demangled_label(self, *args) | set_gen_demangled_label(self) @@ -75537,12 +87399,17 @@ class outctx_t(outctx_base_t) | | set_gen_xrefs(self, *args) | set_gen_xrefs(self, on=True) + | @param on (C++: bool) | | stack_view(self, *args) | stack_view(self) -> bool | | term_outctx(self, *args) + | Finalize the output context. + | | term_outctx(self, prefix=None) -> int + | @param prefix (C++: const char *) + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors inherited from outctx_base_t: @@ -75566,35 +87433,32 @@ Help on function outctx_t__from_ptrval__ in module ida_ua: outctx_t__from_ptrval__(*args) outctx_t__from_ptrval__(ptrval) -> outctx_t + ptrval: size_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 + print_insn_mnem(ea) -> str + @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 + print_operand(ea, n, getn_flags=0, newtype=None) -> str + @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 @@ -75864,33 +87728,30 @@ ida_ua.dt_word 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 + add_cref(frm, to, type) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) + add_dref(frm, to, type) -> bool + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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: @@ -75951,13 +87812,15 @@ class casevec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __getitem__(self, *args) | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ + | i: size_t | | __init__(self, *args) | __init__(self) -> casevec_t - | __init__(self, x) -> casevec_t + | 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. @@ -75966,17 +87829,22 @@ class casevec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: qvector< signed-ea-like-numeric-type > const &↗ | | _del(self, *args) | _del(self, x) -> bool + | x: qvector< signed-ea-like-numeric-type > const &↗ | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: qvector< signed-ea-like-numeric-type > const &↗ | | append = push_back(self, *args) | @@ -76004,52 +87872,74 @@ class casevec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | 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↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | has(self, *args) | has(self, x) -> bool + | x: qvector< signed-ea-like-numeric-type > const &↗ | | inject(self, *args) | inject(self, s, len) + | s: qvector< signed-ea-like-numeric-type > *↗ + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< qvector< signed-ea-like-numeric-type > > &↗ | | truncate(self, *args) | truncate(self) @@ -76076,8 +87966,6 @@ 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 @@ -76089,8 +87977,6 @@ 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 @@ -76106,183 +87992,171 @@ create_switch_xrefs(*args) 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) + del_cref(frm, to, expand) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) + @retval: true - if the referenced instruction will be deleted 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) + del_dref(frm, to) + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) + jump_ea: ea_t + si: switch_info_t const & 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 . + get_first_cref_from(frm) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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) - 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. + get_first_cref_to(to) -> ea_t + @param to: linear address of referenced instruction (C++: ea_t) + @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) - 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. + get_first_dref_from(frm) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) - 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. + get_first_dref_to(to) -> ea_t + @param to: linear address of referencing instruction or data (C++: + ea_t) + @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) get_first_fcref_from(frm) -> ea_t + @param frm (C++: 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 + @param to (C++: 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. + get_next_cref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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 . 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. + get_next_cref_to(to, current) -> ea_t + @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 . 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 + get_next_dref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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 . 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. + get_next_dref_to(to, current) -> ea_t + @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. Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) get_next_fcref_from(frm, current) -> ea_t + @param frm (C++: ea_t) + @param current (C++: 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 + @param to (C++: ea_t) + @param current (C++: 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) + has_external_refs(pfn, ea) -> bool + @param pfn (C++: func_t *) + @param ea (C++: ea_t) Help on class xrefblk_t in module ida_xref: @@ -76298,17 +88172,25 @@ class xrefblk_t(__builtin__.object) | | first_from(self, *args) | first_from(self, _from, flags) -> bool + | _from: ea_t + | flags: int | | first_to(self, *args) | first_to(self, _to, flags) -> bool + | _to: ea_t + | flags: int | | next_from(self, *args) | next_from(self) -> bool - | next_from(self, _from, _to, flags) -> bool + | _from: ea_t + | _to: ea_t + | flags: int | | next_to(self, *args) | next_to(self) -> bool - | next_to(self, _from, _to, flags) -> bool + | _from: ea_t + | _to: ea_t + | flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76346,13 +88228,11 @@ class xrefblk_t(__builtin__.object) 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) + xrefchar(xrtype) -> char + @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 @@ -76489,15 +88369,13 @@ EVAL_FAILURE(code) 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 + get_cmt(ea, rptble) -> str + @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: @@ -76555,15 +88433,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: @@ -76748,40 +88617,40 @@ add_auto_stkpnt(func_ea, ea, delta) 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) + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @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) + + + add_bpt(bpt) -> bool + bpt: bpt_t const & 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 + add_cref(frm, to, type) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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: @@ -76794,34 +88663,32 @@ add_default_til(name) 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) + add_dref(frm, to, type) -> bool + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) + add_entry(ord, ea, name, makecode, flags=0) -> bool + @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: @@ -76862,45 +88729,39 @@ add_enum_member(enum_id, name, value, bmask) 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 + add_func(ea1, ea2=BADADDR) -> bool + @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 + add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + @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 + add_idc_hotkey(hotkey, idcfunc) -> int + @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: @@ -76925,18 +88786,16 @@ add_segm_ex(startea, endea, base, use32, align, comb, flags) 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 + add_sourcefile(ea1, ea2, filename) -> bool + @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: @@ -76993,15 +88852,13 @@ add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, r 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 + add_user_stkpnt(ea, delta) -> bool + @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: @@ -77038,16 +88895,14 @@ 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 . + ask_yn(deflt, format) -> int + @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: @@ -77065,57 +88920,53 @@ 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) + attach_process(pid=pid_t(-1), event_id=-1) -> int + @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) + @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) - 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) + auto_mark_range(start, end, type) + @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) + auto_unmark(start, end, type) + @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: @@ -77170,13 +89021,11 @@ can_exc_continue() 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 + check_bpt(ea) -> int + @param ea (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_func in module idc: @@ -77198,15 +89047,12 @@ clear_trace(filename) 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) + create_align(ea, length, alignment) -> bool + @param ea (C++: ea_t) + @param length (C++: asize_t) + @param alignment (C++: int) Help on function create_array in module idc: @@ -77229,37 +89075,32 @@ create_byte(ea) 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) + create_custdata(ea, length, dtid, fid, force=False) -> 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) - 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 + create_data(ea, dataflag, size, tid) -> bool + @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: @@ -77291,18 +89132,16 @@ create_float(ea) 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 + create_insn(ea, out=None) -> int + @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: @@ -77390,18 +89229,16 @@ create_yword(ea) 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 + define_exception(code, name, desc, flags) -> char const * + @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: @@ -77435,51 +89272,49 @@ del_array_element(tag, array_id, idx) 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) + del_bpt(ea) -> bool + @param ea: any address in the breakpoint range (C++: ea_t) + + + del_bpt(bptloc) -> bool + bptloc: bpt_location_t const & 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) + del_cref(frm, to, expand) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) + @retval: true - if the referenced instruction will be deleted 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) + del_dref(frm, to) + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) + del_enum(id) + @param id (C++: enum_t) Help on function del_enum_member in module idc: @@ -77499,28 +89334,25 @@ Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) del_extra_cmt(ea, what) + ea: ea_t + what: int Help on function del_fixup in module ida_fixup: del_fixup(*args) - del_fixup(source) - - Delete fixup information. - - @param source (C++: ea_t) + del_fixup(source) + @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 + del_func(ea) -> bool + @param ea: any address in the function entry chunk (C++: ea_t) + @return: success Help on function del_hash_string in module idc: @@ -77535,83 +89367,76 @@ del_hash_string(hash_id, key) 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 + del_hidden_range(ea) -> bool + @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 *) + del_idc_hotkey(hotkey) -> bool + @param hotkey: hotkey name (C++: const char *) + @retval: 1 - ok + @retval: 0 - failed 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 + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + @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) + del_segm(ea, flags) -> bool + @param ea: any address belonging to the segment (C++: ea_t) + @param flags: Segment modification flags (C++: int) + @retval: 1 - ok + @retval: 0 - failed, no segment at 'ea'. 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) + del_selector(selector) + @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) + @param ea (C++: ea_t) 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 + del_sourcefile(ea) -> bool + @param ea: linear address (C++: ea_t) + @return: success Help on function del_stkpnt in module idc: @@ -77678,25 +89503,28 @@ demangle_name(name, disable_mask) 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'. + + diff_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function enable_bpt in module ida_dbg: enable_bpt(*args) enable_bpt(ea, enable=True) -> bool + @param ea (C++: ea_t) + @param enable (C++: bool) + + enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: bool) Help on function enable_tracing in module idc: @@ -77712,8 +89540,6 @@ 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 @@ -77733,9 +89559,6 @@ eval_idc(expr) 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' } @@ -77769,38 +89592,29 @@ 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) + find_code(ea, sflag) -> ea_t + @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) + find_data(ea, sflag) -> ea_t + @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) + find_defined(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function find_func_end in module idc: @@ -77816,15 +89630,12 @@ find_func_end(ea) 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) + find_imm(ea, sflag, search_value) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) + @param search_value (C++: uval_t) Help on function find_selector in module idc: @@ -77841,14 +89652,11 @@ find_selector(val) 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) + find_suspop(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function find_text in module idc: @@ -77857,14 +89665,11 @@ 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) + find_unknown(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function first_func_chunk in module idc: @@ -78038,11 +89843,13 @@ Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) get_marked_pos(slot) -> ea_t + slot: int32 Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) get_mark_comment(slot) -> PyObject * + slot: int32 Help on function get_bpt_attr in module idc: @@ -78066,18 +89873,12 @@ get_bpt_ea(n) 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 @@ -78086,9 +89887,10 @@ get_bpt_tev_ea(*args) 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. + get_bpt_tev_ea(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -78107,15 +89909,13 @@ get_bytes(ea, size, use_dbg=False) 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. + get_call_tev_callee(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -78137,24 +89937,19 @@ get_curline() 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) + get_db_byte(ea) -> uchar + @param ea (C++: ea_t) Help on function get_debugger_event_cond in module ida_dbg: @@ -78164,89 +89959,69 @@ get_debugger_event_cond(*args) 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 + get_entry(ord) -> ea_t + @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 + get_entry_name(ord) -> str + @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. + get_entry_ordinal(idx) -> uval_t + @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 *) + get_enum(name) -> enum_t + @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) + get_enum_cmt(id, repeatable) -> str + @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) + get_enum_flag(id) -> flags_t + @param id (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) + Get the index in the list of enums. + 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) + @param id (C++: enum_t) Help on function get_enum_member in module idc: @@ -78265,24 +90040,18 @@ get_enum_member(enum_id, value, serial, bmask) 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) + get_enum_member_bmask(id) -> bmask_t + @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 *) + get_enum_member_by_name(name) -> const_t + @param name (C++: const char *) Help on function get_enum_member_cmt in module idc: @@ -78297,13 +90066,10 @@ get_enum_member_cmt(const_id, repeatable) 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) + get_enum_member_enum(id) -> enum_t + @param id (C++: const_t) Help on function get_enum_member_name in module idc: @@ -78317,54 +90083,40 @@ get_enum_member_name(const_id) 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) + get_enum_member_value(id) -> uval_t + @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) + get_enum_name(id) -> str + @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) + get_enum_size(id) -> size_t + @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) + get_enum_width(id) -> size_t + @param id (C++: enum_t) Help on function get_event_bpt_hea in module idc: @@ -78463,6 +90215,8 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) get_extra_cmt(ea, what) -> ssize_t + ea: ea_t + what: int Help on function get_fchunk_attr in module idc: @@ -78478,75 +90232,67 @@ Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) get_fchunk_referer(ea, idx) -> ea_t + ea: ea_t + idx: size_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 + get_first_bmask(id) -> bmask_t + @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 . + get_first_cref_from(frm) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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) - 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. + get_first_cref_to(to) -> ea_t + @param to: linear address of referenced instruction (C++: ea_t) + @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) - 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. + get_first_dref_from(frm) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) - 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. + get_first_dref_to(to) -> ea_t + @param to: linear address of referencing instruction or data (C++: + ea_t) + @return: BADADDR if nobody refers to the specified data. Help on function get_first_enum_member in module idc: @@ -78563,11 +90309,13 @@ Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) get_first_fcref_from(frm) -> ea_t + @param frm (C++: 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 + @param to (C++: ea_t) Help on function get_first_hash_key in module idc: @@ -78626,12 +90374,7 @@ get_first_seg() 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: @@ -78686,14 +90429,12 @@ get_fixup_target_type(ea) 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 + get_forced_operand(ea, n) -> str + @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: @@ -78757,13 +90498,11 @@ get_frame_size(ea) 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 + get_full_flags(ea) -> flags_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: @@ -78848,38 +90587,32 @@ 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) - 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) + get_item_end(ea) -> ea_t + @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) + get_item_head(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_item_size in module idc: @@ -78893,13 +90626,11 @@ get_item_size(ea) 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 + get_last_bmask(id) -> bmask_t + @param id (C++: enum_t) + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module idc: @@ -78955,13 +90686,7 @@ get_last_member(sid) 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: @@ -78974,13 +90699,11 @@ get_local_tinfo(ordinal) 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 + get_manual_insn(ea) -> str + @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: @@ -79153,18 +90876,16 @@ get_name(ea, gtn_flags=0) 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 + get_name_ea(_from, name) -> ea_t + @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: @@ -79179,76 +90900,65 @@ get_name_ea_simple(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 + get_next_bmask(id, bmask) -> bmask_t + @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. + get_next_cref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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 . 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. + get_next_cref_to(to, current) -> ea_t + @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 . 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 + get_next_dref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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 . 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. + get_next_dref_to(to, current) -> ea_t + @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. Help on function get_next_enum_member in module idc: @@ -79278,22 +90988,24 @@ Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) get_next_fcref_from(frm, current) -> ea_t + @param frm (C++: ea_t) + @param current (C++: 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 + @param to (C++: ea_t) + @param current (C++: 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 + get_next_fixup_ea(ea) -> ea_t + @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: @@ -79372,13 +91084,11 @@ get_next_seg(ea) 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++ + get_next_struc_idx(idx) -> uval_t + @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: @@ -79429,26 +91139,22 @@ get_ordinal_qty() 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) + get_original_byte(ea) -> uint64 + @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 + get_prev_bmask(id, bmask) -> bmask_t + @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: @@ -79478,13 +91184,11 @@ get_prev_fchunk(ea) 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 + get_prev_fixup_ea(ea) -> ea_t + @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: @@ -79544,91 +91248,77 @@ get_prev_offset(sid, offset) 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 + get_prev_struc_idx(idx) -> uval_t + @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 + get_processes(proclist) -> ssize_t + @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) + get_qword(ea) -> uint64 + @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) + Read a register value from the current thread. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - @param name: the register name + get_reg_val(regname, regval) -> bool + @param regname (C++: const char *) + @param regval (C++: 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. - @return: register value (integer or floating point) + get_reg_val(regname, ival) -> bool + @param regname (C++: const char *) + ival: uint64 * + + + get_reg_val(regname) -> PyObject * + @param regname (C++: const char *) 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. + get_ret_tev_return(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -79682,20 +91372,19 @@ Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) get_source_linnum(ea) -> uval_t + @param ea (C++: ea_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 + get_sourcefile(ea, bounds=None) -> char const * + @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: @@ -79737,13 +91426,8 @@ get_sreg(ea, reg) 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: @@ -79767,83 +91451,67 @@ get_strlit_contents(ea, length=-1, strtype=0) 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) + get_struc_by_idx(idx) -> tid_t + @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) + get_struc_cmt(id, repeatable) -> str + @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 *) + get_struc_id(name) -> tid_t + @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) + get_struc_idx(id) -> uval_t + @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) + get_struc_name(id, flags=0) -> str + @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)' ) + get_struc_size(sptr) -> asize_t + @param sptr (C++: const struc_t *) - @param sptr (C++: const struc_t *) + + get_struc_size(id) -> asize_t + id: tid_t Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) get_tev_ea(n) -> ea_t + @param n (C++: int) Help on function get_tev_reg_mem in module ida_dbg: @@ -79860,9 +91528,6 @@ 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)} @@ -79874,18 +91539,17 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) get_tev_tid(n) -> int + @param n (C++: int) Help on function get_tev_type in module ida_dbg: get_tev_type(*args) get_tev_type(n) -> int + @param n (C++: 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)} @@ -79900,13 +91564,10 @@ get_tinfo(ea) 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 *) + get_trace_file_desc(filename) -> str + @param filename (C++: const char *) Help on function get_type in module idc: @@ -79920,41 +91581,35 @@ get_type(ea) 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) + get_wide_byte(ea) -> uint64 + @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) + get_wide_dword(ea) -> uint64 + @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) + get_wide_word(ea) -> uint64 + @param ea (C++: ea_t) Help on function get_xref_type in module idc: @@ -79967,39 +91622,32 @@ get_xref_type() Help on function getn_enum in module ida_enum: getn_enum(*args) - getn_enum(n) -> 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) + getn_enum(idx) -> enum_t + @param idx (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. + getn_thread(n) -> thid_t + @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. + getn_thread_name(n) -> char const * + @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: @@ -80094,13 +91742,11 @@ 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) + is_bf(id) -> bool + @param id (C++: enum_t) Help on function is_byte in module idc: @@ -80261,13 +91907,10 @@ 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 *) + is_valid_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function is_word in module idc: @@ -80276,45 +91919,47 @@ 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 + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + @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 + + + jumpto(custom_viewer, place, x, y) -> bool + custom_viewer: TWidget * + place: place_t * + x: int + y: 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) + load_and_run_plugin(name, arg) -> bool + @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 + @param dbgname (C++: const char *) + @param use_remote (C++: 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 *) + load_trace_file(filename) -> str + @param filename (C++: const char *) Help on function loadfile in module idc: @@ -80354,8 +91999,6 @@ 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 @@ -80368,13 +92011,11 @@ msg(*args) 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. + next_addr(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_func_chunk in module idc: @@ -80402,145 +92043,115 @@ next_head(ea, maxea=BADADDR)↗ 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. + next_not_tail(ea) -> ea_t + @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) + op_bin(ea, n) -> bool + @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) + op_chr(ea, n) -> bool + @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) + op_dec(ea, n) -> bool + @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 + op_enum(ea, n, id, serial) -> bool + @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) + op_flt(ea, n) -> bool + @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) + op_hex(ea, n) -> bool + @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 + set_forced_operand(ea, n, op) -> bool + @param ea: linear address (C++: ea_t) + @param n: number of operand (0, 1, 2) (C++: int) + @param op: text of operand nullptr: 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) + op_num(ea, n) -> bool + @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) + op_oct(ea, n) -> bool + @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) + op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + @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: @@ -80600,29 +92211,25 @@ op_plain_offset(ea, n, base) 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 + op_seg(ea, n) -> bool + @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 + op_stkvar(ea, n) -> bool + @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: @@ -80661,69 +92268,79 @@ parse_decls(inputtype, flags=0) 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) + patch_byte(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 + put_dbg_byte(ea, x) -> bool + @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) + patch_dword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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) + patch_qword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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) + patch_word(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. Help on function plan_and_wait in module idc: @@ -80739,26 +92356,22 @@ plan_and_wait(sEA, eEA, final_pass=True) 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 + plan_to_apply_idasgn(fname) -> int + @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. + prev_addr(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_head in module idc: @@ -80774,13 +92387,11 @@ prev_head(ea, minea=0) 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. + prev_not_tail(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if none exists. Help on function print_decls in module idc: @@ -80839,11 +92450,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: @@ -80858,16 +92465,20 @@ Help on function mark_position in module ida_idc: mark_position(*args) mark_position(ea, lnnum, x, y, slot, comment) + ea: ea_t + lnnum: int + x: short + y: short + slot: int32 + comment: char const * 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) + qexit(code) + @param code: exit code (C++: int) Help on function qsleep in module idc: @@ -80897,8 +92508,6 @@ 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) @@ -80948,23 +92557,18 @@ 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 + rebase_program(delta, flags) -> int + @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 @@ -80973,23 +92577,21 @@ recalc_spd(*args) current instruction doesn't pass the execution flow to the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + recalc_spd(cur_ea) -> bool + @param cur_ea: linear address of the current instruction (C++: ea_t) + @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) 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 @@ -81021,17 +92623,15 @@ rename_array(array_id, newname) 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 + rename_entry(ord, name, flags=0) -> bool + @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: @@ -81040,20 +92640,18 @@ 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) + resume_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @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) - retrieve_input_file_md5() -> str - - Get input file md5. Help on function rotate_byte in module idc: @@ -81085,9 +92683,6 @@ 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) @@ -81095,11 +92690,12 @@ run_to(*args) 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) + run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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: @@ -81113,14 +92709,11 @@ save_database(idbname, flags=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 *) + save_trace_file(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) Help on function savefile in module idc: @@ -81141,16 +92734,14 @@ sel2para(sel) 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. + select_thread(tid) -> bool + @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: @@ -81254,16 +92845,14 @@ set_bpt_cond(ea, cnd, is_lowcnd=0) 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 + set_cmt(ea, comm, rptble) -> bool + @param ea: linear address (C++: ea_t) + @param comm: comment string nullptr: 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: @@ -81279,19 +92868,18 @@ set_color(ea, what, color) Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) - set_debugger_event_cond(nonnul_cond) + set_debugger_event_cond(evcond) + @param evcond (C++: const char *) 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 + set_debugger_options(options) -> uint + @param options (C++: uint) + @return: the old debugger options Help on function set_default_sreg_value in module idc: @@ -81307,99 +92895,76 @@ set_default_sreg_value(ea, reg, value) 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) + set_enum_bf(id, bf) -> bool + @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) + set_enum_cmt(id, cmt, repeatable) -> bool + @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) + set_enum_flag(id, flag) -> bool + @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) + set_enum_idx(id, idx) -> bool + @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) + set_enum_member_cmt(id, cmt, repeatable) -> bool + @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 *) + set_enum_member_name(id, name) -> bool + @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 *) + set_enum_name(id, name) -> bool + @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) + set_enum_width(id, width) -> bool + @param id (C++: enum_t) + @param width (C++: int) Help on function set_fchunk_attr in module idc: @@ -81471,14 +93036,12 @@ set_func_cmt(ea, cmt, repeatable) 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 + set_func_end(ea, newend) -> bool + @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: @@ -81515,17 +93078,16 @@ set_hash_string(hash_id, key, value) 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 + set_ida_state(st) -> idastate_t + @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: @@ -81543,14 +93105,12 @@ set_local_type(ordinal, input, flags) 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 *) + set_manual_insn(ea, manual_insn) + @param ea: linear address of the instruction or data item (C++: ea_t) + @param manual_insn: "" - delete manual string. nullptr - do nothing + (C++: const char *) Help on function set_member_cmt in module idc: @@ -81618,16 +93178,14 @@ set_name(ea, name, flags=0) 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 + set_processor_type(procname, level) -> bool + @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: @@ -81644,26 +93202,22 @@ set_reg_value(value, name) 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) + set_remote_debugger(host, _pass, port=-1) + @param host: If empty, IDA will use local debugger. If NULL, the host + will not be set. (C++: const char *) + pass: char const * + @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 *) + set_root_filename(file) + @param file (C++: const char *) Help on function set_segm_addressing in module idc: @@ -81752,62 +93306,57 @@ set_segment_bounds(ea, startea, endea, flags) 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) + set_selector(selector, paragraph) -> int + @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) + @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) set_source_linnum(ea, lnnum) + @param ea (C++: ea_t) + @param lnnum (C++: uval_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) + set_step_trace_options(options) + @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 + change_storage_type(start_ea, end_ea, stt) -> error_t + @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) + set_struc_cmt(id, cmt, repeatable) -> bool + @param id (C++: tid_t) + @param cmt (C++: const char *) + @param repeatable (C++: bool) Help on function set_struc_idx in module idc: @@ -81825,14 +93374,11 @@ set_struc_idx(sid, index) 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 *) + set_struc_name(id, name) -> bool + @param id (C++: tid_t) + @param name (C++: const char *) Help on function set_tail_owner in module idc: @@ -81849,26 +93395,21 @@ set_tail_owner(tailea, funcea) 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 + set_target_assembler(asmnum) -> bool + @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 *) + set_trace_file_desc(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) Help on function split_sreg_range in module idc: @@ -81887,9 +93428,6 @@ split_sreg_range(ea, reg, value, tag=2) 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 @@ -81897,16 +93435,17 @@ start_process(*args) 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 *) + start_process(path=None, args=None, sdir=None) -> int + @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 *) + @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) - 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' } @@ -81914,9 +93453,6 @@ step_into(*args) 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' } @@ -81924,9 +93460,6 @@ step_over(*args) 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, @@ -81947,9 +93480,6 @@ 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 @@ -81962,27 +93492,26 @@ suspend_process(*args) 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) + suspend_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @retval: -1 - network error + @retval: 0 - failed + @retval: 1 - ok 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 + take_memory_snapshot(only_loader_segs) -> bool + @param only_loader_segs: only is_loader_segm() segments will be + affected (C++: bool) + @return: success Help on function to_ea in module idc: @@ -82003,19 +93532,20 @@ toggle_bnot(ea, n) 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) + toggle_sign(ea, n) -> bool + @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) + ea: ea_t + what: int + str: char const * Help on function update_hidden_range in module idc: @@ -82074,25 +93604,21 @@ value_is_string(var) 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) + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + @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) diff --git a/pydoc_injections3.txt b/pydoc_injections3.txt index eb49f7e..222c21b 100644 --- a/pydoc_injections3.txt +++ b/pydoc_injections3.txt @@ -1,41 +1,34 @@ 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) + auto_apply_tail(tail_ea, parent_ea) + @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) -> '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) + auto_apply_type(caller, callee) + @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) + auto_cancel(ea1, ea2) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) Help on class auto_display_t in module ida_auto: @@ -76,154 +69,129 @@ class auto_display_t(builtins.object) 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) + auto_get(type, lowEA, highEA) -> 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) + auto_make_code(ea) + @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. + auto_make_proc(ea) + @param ea (C++: ea_t) + +Help on function auto_make_step in module ida_auto: + +auto_make_step(*args) -> 'bool' + Analyze one address in the specified range and return true. - @param ea (C++: ea_t) + auto_make_step(ea1, ea2) -> bool + @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) + auto_mark(ea, type) + @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) + auto_mark_range(start, end, type) + @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) - @return: the length of the instruction or 0 + auto_recreate_insn(ea) -> int + @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) -> '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) + auto_unmark(start, end, type) + @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) + auto_wait_range(ea1, ea2) -> ssize_t + @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 + enable_auto(enable) -> 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 structure which holds the autoanalysis indicator contents. - - @param auto_display (C++: auto_display_t *) + get_auto_display(auto_display) -> bool + @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). @@ -231,150 +199,268 @@ get_auto_state(*args) -> 'atype_t' 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 + peek_auto_queue(low_ea, type) -> ea_t + @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. - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @param final_pass (C++: bool) + plan_and_wait(ea1, ea2, final_pass=True) -> int + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + @param final_pass (C++: bool) + @retval: 1 - ok + @retval: 0 - Ctrl-Break was pressed 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) + plan_ea(ea) + @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) + plan_range(sEA, eEA) + @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: 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) + reanalyze_callers(ea, noret) + @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) -> '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) + revert_ida_decisions(ea1, ea2) + @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) - @return: previous state + set_auto_state(new_state) -> atype_t + @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) -> 'idastate_t' - set_ida_state(st) -> idastate_t - - Change IDA status indicator value - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status + set_ida_state(st) -> idastate_t + @param st: - new indicator status (C++: idastate_t) + @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: - linear address to display (C++: ea_t) + show_addr(ea) + @param ea: - linear address to display (C++: ea_t) 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) + show_auto(ea, type=AU_NONE) + @param ea: linear address being analyzed (C++: ea_t) + @param type: autoanalysis type (see Autoanalysis queues ) (C++: + atype_t) + +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 + | r: bitrange_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | r: bitrange_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | r: bitrange_t const & + | + | __init__(self, *args) + | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t + | bit_ofs: uint16 + | size_in_bits: uint16 + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | r: bitrange_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | r: bitrange_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | 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 to a bitrange + | + | apply_mask(self, subrange) -> bool + | @param subrange: 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] (C++: const bitrange_t &) + | @return: success + | + | bitoff(self, *args) -> 'uint' + | Get offset of 1st bit. + | + | bitsize(self, *args) -> 'uint' + | Get size of the value in bits. + | + | bytesize(self, *args) -> 'uint' + | Size of the value in bytes. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | r: bitrange_t const & + | + | create_union(self, *args) -> 'void' + | Create union of 2 ranges including the hole between them. + | + | create_union(self, r) + | @param r (C++: const bitrange_t &) + | + | empty(self, *args) -> 'bool' + | Is the bitrange empty? + | + | extract(self, *args) -> 'bool' + | extract(self, src, is_mf) -> bool + | src: void const * + | is_mf: bool + | + | has_common(self, *args) -> 'bool' + | Does have common bits with another bitrange? + | + | has_common(self, r) -> bool + | @param r (C++: const bitrange_t &) + | + | init(self, *args) -> 'void' + | Initialize offset and size to given values. + | + | init(self, bit_ofs, size_in_bits) + | @param bit_ofs (C++: uint16) + | @param size_in_bits (C++: uint16) + | + | inject(self, *args) -> 'bool' + | inject(self, dst, src, is_mf) -> bool + | dst: void * + | src: bytevec_t const & + | is_mf: bool + | + | intersect(self, *args) -> 'void' + | Intersect two ranges. + | + | intersect(self, r) + | @param r (C++: const bitrange_t &) + | + | mask64(self, *args) -> 'uint64' + | Convert to mask of 64 bits. + | + | reset(self, *args) -> 'void' + | Make the bitrange empty. + | + | shift_down(self, *args) -> 'void' + | Shift range down (left) + | + | shift_down(self, cnt) + | @param cnt (C++: uint) + | + | shift_up(self, *args) -> 'void' + | Shift range up (right) + | + | shift_up(self, cnt) + | @param cnt (C++: uint) + | + | sub(self, *args) -> 'bool' + | Subtract a bitrange. + | + | sub(self, r) -> bool + | @param r (C++: const bitrange_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 __walk_types_and_formats in module ida_bytes: @@ -384,132 +470,113 @@ __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: linear address (C++: ea_t) - @param value: byte value (C++: uint32) + add_byte(ea, value) + @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) -> '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 \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + add_dword(ea, value) + @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) -> 'bool' - 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 + add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + @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) -> '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.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 + add_mapping(_from, to, size) -> bool + @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) -> '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 \inf{is_be()} - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + add_qword(ea, value) + @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) -> '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 \inf{is_be()} - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + add_word(ea, value) + @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) -> 'flags_t' - align_flag() -> flags_t - - Get a flags_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: linear address (C++: ea_t) - @param str: comment string to append (C++: const char *) - @param rptble: append to repeatable comment? (C++: bool) - @return: success + append_cmt(ea, str, rptble) -> bool + @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) -> '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) + attach_custom_data_format(dtid, dfid) -> bool + @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) + @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()' @@ -517,87 +584,75 @@ Help on function bin_search in module ida_bytes: bin_search(*args) -> 'ea_t' bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + start_ea: ea_t + end_ea: ea_t + image: bytevec_t const & + imask: bytevec_t const & + step: int + flags: int 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. 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) + bytesize(ea) -> int + @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 default alignment. - - @param ea (C++: ea_t) - @param mina (C++: int) - @param maxa (C++: int) + calc_def_align(ea, mina, maxa) -> int + @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) -> 'flags_t' calc_dflags(f, force) -> flags_t + @param f (C++: flags_t) + @param force (C++: bool) Help on function calc_max_align in module ida_bytes: calc_max_align(*args) -> 'int' - calc_max_align(endea) -> int - - Returns: 0..32. - - @param endea (C++: ea_t) + calc_max_align(endea) -> int + @param endea (C++: ea_t) 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: 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'. + calc_max_item_end(ea, how=15) -> ea_t + @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) -> 'int' - calc_min_align(length) -> int - - Returns: 1..32. - - @param length (C++: asize_t) + calc_min_align(length) -> int + @param length (C++: asize_t) 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'?if there is an item starting at 'ea', this function ignores itthis function converts to unexplored all encountered data items with @@ -605,353 +660,279 @@ can_define_item(*args) -> 'bool' 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 + can_define_item(ea, length, flags) -> bool + @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) -> '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) - @return: error code + change_storage_type(start_ea, end_ea, stt) -> error_t + @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) -> 'flags_t' - char_flag() -> flags_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. + chunk_size(ea) -> asize_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. + chunk_start(ea) -> ea_t + @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 lzero bit. - - @param ea (C++: ea_t) - @param n (C++: int) + clr_lzero(ea, n) -> bool + @param ea (C++: ea_t) + @param n (C++: int) 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: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + clr_op_type(ea, n) -> bool + @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) -> 'flags_t' - code_flag() -> flags_t - - - 'FF_CODE' + 'FF_CODE' 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 byte size into account) - - @param ea (C++: ea_t) - @param length (C++: asize_t) + create_16bit_data(ea, length) -> bool + @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 byte size into account) - - @param ea (C++: ea_t) - @param length (C++: asize_t) + create_32bit_data(ea, length) -> bool + @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 - - 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) + create_align(ea, length, alignment) -> bool + @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) -> '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) + create_byte(ea, length, force=False) -> 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) + create_custdata(ea, length, dtid, fid, force=False) -> 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. - @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 + create_data(ea, dataflag, size, tid) -> bool + @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) -> '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) + create_double(ea, length, force=False) -> 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) + create_dword(ea, length, force=False) -> 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) + create_float(ea, length, force=False) -> 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) + create_oword(ea, length, force=False) -> 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) + create_packed_real(ea, length, force=False) -> 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) + create_qword(ea, length, force=False) -> 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 - @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 + create_strlit(start, len, strtype) -> bool + @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) -> '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) + create_struct(ea, length, tid, force=False) -> 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) + create_tbyte(ea, length, force=False) -> 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) + create_word(ea, length, force=False) -> 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) + create_yword(ea, length, force=False) -> 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) + create_zword(ea, length, force=False) -> 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. Help on function custfmt_flag in module ida_bytes: custfmt_flag(*args) -> 'flags_t' - custfmt_flag() -> flags_t - - see 'Bits: instruction operand types' Help on class data_format_t in module ida_bytes: @@ -966,6 +947,13 @@ 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 + | self: PyObject * + | name: char const * + | value_size: asize_t + | menu_name: char const * + | props: int + | hotkey: char const * + | text_width: int32 | | __repr__ = _swig_repr(self) | @@ -976,7 +964,7 @@ class data_format_t(builtins.object) | __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 | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1023,6 +1011,13 @@ 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 + | self: PyObject * + | name: char const * + | value_size: asize_t + | menu_name: char const * + | hotkey: char const * + | asm_keyword: char const * + | props: int | | __repr__ = _swig_repr(self) | @@ -1033,7 +1028,7 @@ class data_type_t(builtins.object) | __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 | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1071,558 +1066,470 @@ class data_type_t(builtins.object) 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()' 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) - @return: success + del_hidden_range(ea) -> bool + @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) -> '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: 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 + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + @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) -> 'void' - del_mapping(ea) - - Delete memory mapping range. - @param ea: any address in the mapped range (C++: ea_t) + del_mapping(ea) + @param ea: any address in the mapped range (C++: ea_t) 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) + del_value(ea) + @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: data type id to detach data format from (C++: int) - @param dfid: data format id to detach (C++: int) + detach_custom_data_format(dtid, dfid) -> bool + @param dtid: data type id to detach data format from (C++: int) + @param dfid: data format id to detach (C++: int) + @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: 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 + disable_flags(start_ea, end_ea) -> error_t + @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) -> 'flags_t' - double_flag() -> flags_t - - Get a flags_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. 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: 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 + enable_flags(start_ea, end_ea, stt) -> error_t + @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) -> 'flags_t' - enum_flag() -> flags_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 - - 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) + equal_bytes(ea, image, mask, len, sense_case) -> bool + @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 == nullptr, 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) + @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 (C++: flags_t) + 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++: flags_t) + f_has_dummy_name(f, arg2) -> bool + @param f (C++: flags_t) + 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 (C++: flags_t) + 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) + f_has_name(f, arg2) -> bool + @param f (C++: flags_t) + 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) + f_has_user_name(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_has_xref(f, arg2) -> bool + @param f (C++: flags_t) + 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++: flags_t) + f_is_align(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_byte(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_is_code(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_custom(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_is_data(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_double(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_dword(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_float(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_is_head(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_is_not_tail(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_oword(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_pack_real(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_qword(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_strlit(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_struct(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_is_tail(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_tbyte(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_word(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_yword(F, arg2) -> bool + @param F (C++: flags_t) + 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: 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 + find_byte(sEA, size, value, bin_search_flags) -> ea_t + @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) -> '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: 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 + find_byter(sEA, size, value, bin_search_flags) -> ea_t + @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) -> '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 *) - @return: id or -1 + find_custom_data_format(name) -> int + @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) -> '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 *) - @return: id or -1 + find_custom_data_type(name) -> int + @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) -> 'flags_t' - float_flag() -> flags_t - - Get a flags_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' 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 + free_chunk(bottom, size, step) -> ea_t + @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) -> '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() + get_16bit(ea) -> uint32 + @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); + get_32bit(ea) -> uint32 + @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) -> '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); + get_64bit(ea) -> uint64 + @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) -> 'PyObject *' get_8bit(ea, v, nbit) -> PyObject * + @param ea (C++: ea_t *) + @param v (C++: uint32 *) + @param nbit (C++: 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) + get_byte(ea) -> uchar + @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 the specified number of bytes of the program. @param ea: program address @param size: number of bytes to return @@ -1632,8 +1539,6 @@ 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 @@ -1644,380 +1549,305 @@ get_bytes_and_mask(*args) -> 'PyObject *' 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) - @return: size of comment or -1 + get_cmt(ea, rptble) -> str + @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) -> '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 + get_custom_data_format(dfid) -> data_format_t + @param dfid: data format id (C++: int) + @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) - @return: number of returned custom data formats. if error, returns -1 + get_custom_data_formats(out, dtid) -> int + @param out: buffer for the output. may be nullptr (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) -> '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 + get_custom_data_type(dtid) -> data_type_t + @param dtid: data type id (C++: int) + @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) - @return: number of custom data types with the specified size limits + get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int + @param out: buffer for the output. may be nullptr (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) -> '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... + get_data_elsize(ea, F, ti=None) -> asize_t + @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 nullptr). If + specified as nullptr, 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) -> '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: 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 + get_data_value(v, ea, size) -> bool + @param v: pointer to the result. may be nullptr (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) -> '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) + get_db_byte(ea) -> uchar + @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 \inf{is_be()} This function works only for 8bit byte processors. - @param ea (C++: ea_t) + get_dword(ea) -> uint32 + @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 + get_enum_id(ea, n) -> enum_t + @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) -> 'hidden_range_t *' - 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) -> 'flags_t' - 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) + get_flags(ea) -> flags_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 from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. For other sizes returns 0 - @param size (C++: size_t) + get_flags_by_size(size) -> flags_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 for the specified address, extended form. - - @param ea (C++: ea_t) - @param how (C++: int) + get_flags_ex(ea, how) -> flags_t + @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) - @return: size of forced operand or -1 + get_forced_operand(ea, n) -> str + @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) -> '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++: flags_t) - @param ti (C++: const opinfo_t *) + get_full_data_elsize(ea, F, ti=None) -> asize_t + @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) -> 'flags_t' - 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 + get_full_flags(ea) -> flags_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) + get_hidden_range(ea) -> hidden_range_t + @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) -> '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) + get_hidden_range_num(ea) -> int + @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) -> '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) + get_item_end(ea) -> 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 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) + get_item_flag(_from, n, ea, appzero) -> flags_t + @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) -> '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) + get_item_head(ea) -> 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. - @param ea (C++: ea_t) + get_item_size(ea) -> asize_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 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) - @return: size of manual instruction or -1 + get_manual_insn(ea) -> str + @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) -> '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 + get_mapping(n) -> bool + @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) -> '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' + 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. + 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) + @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) -> '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 + get_next_hidden_range(ea) -> hidden_range_t + @param ea: any address in the program (C++: ea_t) + @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 8 bits of the program at 'ea'. The main usage of this function is to iterate range of bytes. Here is an example: @@ -2031,148 +1861,124 @@ get_octet(*args) -> 'PyObject *' '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 *) + get_octet(ea, v, nbit) -> PyObject * + @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) -> '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 + get_opinfo(buf, ea, n, flags) -> opinfo_t + @param buf: buffer to receive the result. may not be nullptr (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: 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 flags for first operand. - - @param F (C++: flags_t) + get_optype_flags0(F) -> flags_t + @param F (C++: flags_t) Help on function get_optype_flags1 in module ida_bytes: get_optype_flags1(*args) -> 'flags_t' - get_optype_flags1(F) -> flags_t - - Get flags for second operand. - - @param F (C++: flags_t) + get_optype_flags1(F) -> flags_t + @param F (C++: flags_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) + get_original_byte(ea) -> uint64 + @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 \inf{is_be()} - @param ea (C++: ea_t) + get_original_dword(ea) -> uint64 + @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 \inf{is_be()} - @param ea (C++: ea_t) + get_original_qword(ea) -> uint64 + @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 \inf{is_be()} - @param ea (C++: ea_t) + get_original_word(ea) -> uint64 + @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 &) - @return: size of comment or -1 + get_predef_insn_cmt(ins) -> str + @param ins: current instruction information - an ida_ua.insn_t, or an + address (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) -> '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 + get_prev_hidden_range(ea) -> hidden_range_t + @param ea: any address in the program (C++: ea_t) + @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 \inf{is_be()} This function works only for 8bit byte processors. - @param ea (C++: ea_t) + get_qword(ea) -> uint64 + @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: flags (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: 2, 8, 10, 16 + get_radix(F, n) -> int + @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) -> 'PyObject *' 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. @@ -2192,214 +1998,167 @@ get_strlit_contents(*args) -> 'PyObject *' 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) - @return: length of strpath + get_stroff_path(path, delta, ea, n) -> int + @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) -> '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) + get_wide_byte(ea) -> uint64 + @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 \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - @param ea (C++: ea_t) + get_wide_dword(ea) -> uint64 + @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 \inf{is_be()} - @param ea (C++: ea_t) + get_wide_word(ea) -> uint64 + @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 \inf{is_be()} This function works only for 8bit byte processors. - @param ea (C++: ea_t) + get_word(ea) -> ushort + @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: 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 + get_zero_ranges(zranges, range) -> bool + @param zranges: pointer to the return value. cannot be nullptr (C++: + rangeset_t *) + @param range: the range of addresses to verify. can be nullptr - 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) -> '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) + getn_hidden_range(n) -> hidden_range_t + @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) -> 'bool' - has_any_name(F) -> bool - - Does the current byte have any name? - - @param F (C++: flags_t) + has_any_name(F) -> bool + @param F (C++: flags_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) + has_auto_name(F) -> bool + @param F (C++: flags_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) + has_cmt(F) -> bool + @param F (C++: flags_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++: flags_t) + has_dummy_name(F) -> bool + @param F (C++: flags_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) + has_extra_cmts(F) -> bool + @param F (C++: flags_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) + has_immd(F) -> bool + @param F (C++: flags_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) + has_name(F) -> bool + @param F (C++: flags_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) + has_user_name(F) -> bool + @param F (C++: flags_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) + has_value(F) -> bool + @param F (C++: flags_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) + has_xref(F) -> bool + @param F (C++: flags_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()' @@ -2449,43 +2208,66 @@ class hidden_range_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -2514,830 +2296,631 @@ class hidden_range_t(ida_range.range_t) Help on function is_align in module ida_bytes: is_align(*args) -> 'bool' + 'FF_ALIGN' + is_align(F) -> bool - - - 'FF_ALIGN' - - - @param F (C++: flags_t) + @param F (C++: flags_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 + @param dtid (C++: int) + @param dfid (C++: int) Help on function is_bnot in module ida_bytes: is_bnot(*args) -> 'bool' - 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) + is_bnot(ea, F, n) -> bool + @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) -> 'bool' + 'FF_BYTE' + is_byte(F) -> bool - - - 'FF_BYTE' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_char(F, n) -> bool + @param F (C++: flags_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) + is_char0(F) -> bool + @param F (C++: flags_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) + is_char1(F) -> bool + @param F (C++: flags_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) + is_code(F) -> bool + @param F (C++: flags_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) + is_custfmt(F, n) -> bool + @param F (C++: flags_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) + is_custfmt0(F) -> bool + @param F (C++: flags_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) + is_custfmt1(F) -> bool + @param F (C++: flags_t) Help on function is_custom in module ida_bytes: is_custom(*args) -> 'bool' + 'FF_CUSTOM' + is_custom(F) -> bool - - - 'FF_CUSTOM' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_data(F) -> bool + @param F (C++: flags_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) + is_defarg(F, n) -> bool + @param F (C++: flags_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++: flags_t) + is_defarg0(F) -> bool + @param F (C++: flags_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++: flags_t) + is_defarg1(F) -> bool + @param F (C++: flags_t) Help on function is_double in module ida_bytes: is_double(*args) -> 'bool' + 'FF_DOUBLE' + is_double(F) -> bool - - - 'FF_DOUBLE' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_dword in module ida_bytes: is_dword(*args) -> 'bool' + 'FF_DWORD' + is_dword(F) -> bool - - - 'FF_DWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_enum(F, n) -> bool + @param F (C++: flags_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) + is_enum0(F) -> bool + @param F (C++: flags_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) + is_enum1(F) -> bool + @param F (C++: flags_t) Help on function is_float in module ida_bytes: is_float(*args) -> 'bool' + 'FF_FLOAT' + is_float(F) -> bool - - - 'FF_FLOAT' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_float0(F) -> bool + @param F (C++: flags_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) + is_float1(F) -> bool + @param F (C++: flags_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++: flags_t) + is_flow(F) -> bool + @param F (C++: flags_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) + is_fltnum(F, n) -> bool + @param F (C++: flags_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) + is_forced_operand(ea, n) -> bool + @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) -> 'bool' - is_func(F) -> bool - - Is function start? - - @param F (C++: flags_t) + is_func(F) -> bool + @param F (C++: flags_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) + is_head(F) -> bool + @param F (C++: flags_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++: flags_t) - @param n (C++: int) + is_invsign(ea, F, n) -> bool + @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) -> 'bool' - is_loaded(ea) -> bool - - Does the specified address have a byte value (is initialized?) - - @param ea (C++: ea_t) + is_loaded(ea) -> bool + @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 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) + is_lzero(ea, n) -> bool + @param ea (C++: ea_t) + @param n (C++: int) 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++: flags_t) - @param n (C++: int) + is_manual(F, n) -> bool + @param F (C++: flags_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) + is_manual_insn(ea) -> bool + @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) -> 'bool' - is_mapped(ea) -> bool - - Is the specified address 'ea' present in the program? - - @param ea (C++: ea_t) + is_mapped(ea) -> bool + @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) + is_not_tail(F) -> bool + @param F (C++: flags_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) + is_numop(F, n) -> bool + @param F (C++: flags_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) + is_numop0(F) -> bool + @param F (C++: flags_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) + is_numop1(F) -> bool + @param F (C++: flags_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) + is_off(F, n) -> bool + @param F (C++: flags_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) + is_off0(F) -> bool + @param F (C++: flags_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) + is_off1(F) -> bool + @param F (C++: flags_t) Help on function is_oword in module ida_bytes: is_oword(*args) -> 'bool' + 'FF_OWORD' + is_oword(F) -> bool - - - 'FF_OWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_pack_real in module ida_bytes: is_pack_real(*args) -> 'bool' + 'FF_PACKREAL' + is_pack_real(F) -> bool - - - 'FF_PACKREAL' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_qword in module ida_bytes: is_qword(*args) -> 'bool' + 'FF_QWORD' + is_qword(F) -> bool - - - 'FF_QWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_same_data_type(F1, F2) -> bool + @param F1 (C++: flags_t) + @param F2 (C++: flags_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) + is_seg(F, n) -> bool + @param F (C++: flags_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) + is_seg0(F) -> bool + @param F (C++: flags_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) + is_seg1(F) -> bool + @param F (C++: flags_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) + is_stkvar(F, n) -> bool + @param F (C++: flags_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) + is_stkvar0(F) -> bool + @param F (C++: flags_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) + is_stkvar1(F) -> bool + @param F (C++: flags_t) Help on function is_strlit in module ida_bytes: is_strlit(*args) -> 'bool' + 'FF_STRLIT' + is_strlit(F) -> bool - - - 'FF_STRLIT' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_stroff(F, n) -> bool + @param F (C++: flags_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) + is_stroff0(F) -> bool + @param F (C++: flags_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) + is_stroff1(F) -> bool + @param F (C++: flags_t) Help on function is_struct in module ida_bytes: is_struct(*args) -> 'bool' + 'FF_STRUCT' + is_struct(F) -> bool - - - 'FF_STRUCT' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_suspop(ea, F, n) -> bool + @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) -> 'bool' - is_tail(F) -> bool - - Does flag denote tail byte? - - @param F (C++: flags_t) + is_tail(F) -> bool + @param F (C++: flags_t) Help on function is_tbyte in module ida_bytes: is_tbyte(*args) -> 'bool' + 'FF_TBYTE' + is_tbyte(F) -> bool - - - 'FF_TBYTE' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_unknown(F) -> bool + @param F (C++: flags_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 *) + is_varsize_item(ea, F, ti=None, itemsize=None) -> int + @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 nullptr). If + specified as nullptr, will be automatically retrieved from + the database (C++: const opinfo_t *) + @param itemsize: if not nullptr and the item is varsize, itemsize will + contain the calculated item size (for struct types, + the minimal size is returned) (C++: asize_t *) + @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' + 'FF_WORD' + is_word(F) -> bool - - - 'FF_WORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_yword in module ida_bytes: is_yword(*args) -> 'bool' + 'FF_YWORD' + is_yword(F) -> bool - - - 'FF_YWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_zword in module ida_bytes: is_zword(*args) -> 'bool' + 'FF_ZWORD' + is_zword(F) -> bool - - - 'FF_ZWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + leading_zero_important(ea, n) -> bool + @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, - otherwise the result depends on the segment type + nbits(ea) -> int + @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) -> '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. + next_addr(ea) -> ea_t + @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. + next_chunk(ea) -> ea_t + @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. + next_head(ea, maxea) -> ea_t + @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) -> 'ea_t' - next_inited(ea, maxea) -> ea_t - - Find the next initialized address. - - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + next_inited(ea, maxea) -> 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. + next_not_tail(ea) -> ea_t + @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 - - 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. @@ -3349,213 +2932,168 @@ next_that(*args) -> 'ea_t' 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) + next_unknown(ea, maxea) -> ea_t + @param ea (C++: ea_t) + @param maxea (C++: ea_t) Help on function num_flag in module ida_bytes: num_flag(*args) -> 'flags_t' - 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) -> 'flags_t' - 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) -> 'flags_t' - off_flag() -> flags_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++: flags_t) - @param n (C++: int) + op_adds_xrefs(F, n) -> bool + @param F (C++: flags_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) + op_bin(ea, n) -> bool + @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) + op_chr(ea, n) -> bool + @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) + op_custfmt(ea, n, fid) -> bool + @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) + op_dec(ea, n) -> bool + @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: 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 + op_enum(ea, n, id, serial) -> bool + @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) -> 'bool' - op_flt(ea, n) -> bool - - set op type to 'flt_flag()' - - @param ea (C++: ea_t) - @param n (C++: int) + op_flt(ea, n) -> bool + @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) + op_hex(ea, n) -> bool + @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) + op_num(ea, n) -> bool + @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) + op_oct(ea, n) -> bool + @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: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + op_seg(ea, n) -> bool + @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) -> '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: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + op_stkvar(ea, n) -> bool + @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) -> '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: 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 + op_stroff(insn, n, path, path_len, delta) -> bool + @param insn: the instruction - an ida_ua.insn_t, or an address (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> @@ -3570,191 +3108,175 @@ op_stroff(*args) -> 'bool' 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. Help on function packreal_flag in module ida_bytes: packreal_flag(*args) -> 'flags_t' - 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) -> '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. - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_byte(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + patch_bytes(ea, buf) + @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) -> '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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_dword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_qword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_word(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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. + prev_addr(ea) -> ea_t + @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. + prev_chunk(ea) -> ea_t + @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. + prev_head(ea, minea) -> ea_t + @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) -> 'ea_t' - prev_inited(ea, minea) -> ea_t - - Find the previous initialized address. - - @param ea (C++: ea_t) - @param minea (C++: ea_t) + prev_inited(ea, minea) -> 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. + prev_not_tail(ea) -> ea_t + @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 - - 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 . + prev_that(ea, minea, callable) -> ea_t + @param ea: start searching from this address - 1. (C++: ea_t) + @param minea: included in the search range. (C++: ea_t) + callable: PyObject * + @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) + prev_unknown(ea, minea) -> ea_t + @param ea (C++: ea_t) + @param minea (C++: ea_t) Help on function print_strlit_type in module ida_bytes: print_strlit_type(*args) -> 'PyObject *' - 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 + print_strlit_type(strtype, flags=0) -> PyObject * + @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) -> '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.The original value of the byte is completely lost and @@ -3762,79 +3284,67 @@ put_byte(*args) -> 'bool' '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 + put_byte(ea, x) -> bool + @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) -> '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: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + put_bytes(ea, buf) + @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) -> 'void' - 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) + put_dword(ea, x) + @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) -> '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 \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) + put_qword(ea, x) + @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) -> 'void' - 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) + put_word(ea, x) + @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. 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: @@ -3845,8 +3355,6 @@ 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: @@ -3880,190 +3388,153 @@ register_data_types_and_formats(formats) Help on function revert_byte in module ida_bytes: revert_byte(*args) -> 'bool' - revert_byte(ea) -> bool - - Revert patched byte - @param ea (C++: ea_t) + revert_byte(ea) -> bool + @param ea (C++: ea_t) + @retval: true - byte was patched before and reverted now Help on function seg_flag in module ida_bytes: seg_flag(*args) -> 'flags_t' - seg_flag() -> flags_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) - @return: success + set_cmt(ea, comm, rptble) -> bool + @param ea: linear address (C++: ea_t) + @param comm: comment string nullptr: 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) -> '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 *) - @return: success + set_forced_operand(ea, n, op) -> bool + @param ea: linear address (C++: ea_t) + @param n: number of operand (0, 1, 2) (C++: int) + @param op: text of operand nullptr: do nothing (return 0) "" : + delete forced operand (C++: const char *) + @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) + set_immd(ea) -> bool + @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. - - @param ea (C++: ea_t) - @param n (C++: int) + set_lzero(ea, n) -> bool + @param ea (C++: ea_t) + @param n (C++: int) 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 *) + set_manual_insn(ea, manual_insn) + @param ea: linear address of the instruction or data item (C++: ea_t) + @param manual_insn: "" - delete manual string. nullptr - do nothing + (C++: const char *) 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) + set_op_type(ea, type, n) -> bool + @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) + @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: 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 + set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool + @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) -> 'flags_t' - stkvar_flag() -> flags_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. Help on function stroff_flag in module ida_bytes: stroff_flag(*args) -> 'flags_t' - stroff_flag() -> flags_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. 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. 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) + toggle_bnot(ea, n) -> bool + @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 + @param ea (C++: ea_t) + @param n (C++: int) 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) + toggle_sign(ea, n) -> bool + @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,8 +3543,6 @@ 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 @@ -4087,32 +3556,26 @@ unregister_data_types_and_formats(formats) 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: range to update (C++: const hidden_range_t *) - @return: success + update_hidden_range(ha) -> bool + @param ha: range to update (C++: const hidden_range_t *) + @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) - @return: translated address + use_mapping(ea) -> ea_t + @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) -> '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 @@ -4127,25 +3590,16 @@ 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. 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. 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. === ida_bytes EPYDOC INJECTIONS === @@ -4711,6 +4165,7 @@ class DBG_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> DBG_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -4718,46 +4173,113 @@ class DBG_Hooks(builtins.object) | delete_DBG_Hooks(self) | | dbg_bpt(self, *args) -> 'int' + | A user defined breakpoint was reached. + | | dbg_bpt(self, tid, bptea) -> int + | @param tid (C++: thid_t) + | @param bptea (C++: ea_t) | | dbg_bpt_changed(self, *args) -> 'void' + | Breakpoint has been changed. + | | dbg_bpt_changed(self, bptev_code, bpt) + | @param bptev_code: Breakpoint modification events (C++: int) + | @param bpt (C++: bpt_t *) | | dbg_exception(self, *args) -> 'int' | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exc_code: int + | exc_can_cont: bool + | exc_ea: ea_t + | 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) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | info: char const * | | dbg_library_load(self, *args) -> 'void' | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_library_unload(self, *args) -> 'void' | dbg_library_unload(self, pid, tid, ea, info) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | info: char const * | | dbg_process_attach(self, *args) -> 'void' + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_process_detach(self, *args) -> 'void' + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_detach(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | ea: ea_t | | dbg_process_exit(self, *args) -> 'void' + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_exit(self, pid, tid, ea, exit_code) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exit_code: int | | dbg_process_start(self, *args) -> 'void' + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_request_error(self, *args) -> 'void' + | An error occurred during the processing of a request. + | | dbg_request_error(self, failed_command, failed_dbg_notification) + | @param failed_command (C++: ui_notification_t) + | @param failed_dbg_notification (C++: dbg_notification_t) | | dbg_run_to(self, *args) -> 'void' | dbg_run_to(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | 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) @@ -4769,16 +4291,32 @@ class DBG_Hooks(builtins.object) | dbg_step_until_ret(self) | | dbg_suspend_process(self, *args) -> 'void' - | dbg_suspend_process(self) + | The process is now suspended.This event notification is also an + | asynchronous function result notification for 'suspend_process()' ! | | dbg_thread_exit(self, *args) -> 'void' | dbg_thread_exit(self, pid, tid, ea, exit_code) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exit_code: int | | dbg_thread_start(self, *args) -> 'void' | dbg_thread_start(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | ea: ea_t | | dbg_trace(self, *args) -> 'int' + | A step occurred (one instruction was executed). This event + | notification is only generated if step tracing is enabled. + | | dbg_trace(self, tid, ip) -> int + | @param tid: thread ID (C++: thid_t) + | @param ip: current instruction pointer. usually points after the + | executed instruction (C++: ea_t) + | @retval: 1 - do not log this trace event + | @retval: 0 - log it | | dump_state(self, *args) -> 'qstring' | dump_state(self) -> qstring @@ -4804,54 +4342,64 @@ class DBG_Hooks(builtins.object) Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' - 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) + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @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) + + + add_bpt(bpt) -> bool + 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 (C++: const char *) + @param dst (C++: const char *) Help on function add_virt_module in module ida_dbg: add_virt_module(*args) -> 'bool' add_virt_module(mod) -> bool + @param mod (C++: const modinfo_t *) 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' }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) + attach_process(pid=pid_t(-1), event_id=-1) -> int + @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) + @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 +4410,30 @@ class bpt_location_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: bpt_location_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: bpt_location_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: bpt_location_t const & | | __init__(self, *args) | __init__(self) -> bpt_location_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: bpt_location_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: bpt_location_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: bpt_location_t const & | | __repr__ = _swig_repr(self) | @@ -4887,40 +4441,62 @@ class bpt_location_t(builtins.object) | delete_bpt_location_t(self) | | compare(self, *args) -> '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. + | | compare(self, r) -> int + | @param r (C++: const bpt_location_t &) | | 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' + | Specify an absolute address location. + | | set_abs_bpt(self, a) + | @param a (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' + | Specify a relative address location. + | | set_rel_bpt(self, mod, _offset) + | @param mod (C++: const char *) + | @param _offset (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' + | Specify a source level location. + | | set_src_bpt(self, fn, _lineno) + | @param fn (C++: const char *) + | @param _lineno (C++: int) | | set_sym_bpt(self, *args) -> 'void' + | Specify a symbolic location. + | | set_sym_bpt(self, _symbol, _offset=0) + | @param _symbol (C++: const char *) + | @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: @@ -4964,76 +4540,95 @@ class bpt_t(builtins.object) | 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 bpt location to an absolute address. + | | set_abs_bpt(self, a) + | @param a (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' + | Set bpt location to a relative address. + | | set_rel_bpt(self, mod, o) + | @param mod (C++: const char *) + | @param o (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' + | Set bpt location to a source line. + | | set_src_bpt(self, fn, lineno) + | @param fn (C++: const char *) + | @param lineno (C++: int) | | set_sym_bpt(self, *args) -> 'void' + | Set bpt location to a symbol. + | | set_sym_bpt(self, sym, o) + | @param sym (C++: const char *) + | @param o (C++: uval_t) | | set_trace_action(self, *args) -> 'bool' + | Configure tracing options. + | | set_trace_action(self, enable, trace_types) -> bool + | @param enable (C++: bool) + | @param trace_types (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -5095,10 +4690,11 @@ class bpt_vec_t(builtins.object) | | __getitem__(self, *args) -> 'bpt_t const &' | __getitem__(self, i) -> bpt_t + | i: size_t | | __init__(self, *args) | __init__(self) -> bpt_vec_t - | __init__(self, x) -> bpt_vec_t + | 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,12 +4706,15 @@ class bpt_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -5139,7 +4738,12 @@ class bpt_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< bpt_t >::iterator' | erase(self, it) -> bpt_t + | it: qvector< bpt_t >::iterator + | + | | erase(self, first, last) -> bpt_t + | first: qvector< bpt_t >::iterator + | last: qvector< bpt_t >::iterator | | extract(self, *args) -> 'bpt_t *' | extract(self) -> bpt_t @@ -5149,35 +4753,47 @@ class bpt_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=bpt_t()) + | x: bpt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: bpt_t * + | len: size_t | | insert(self, *args) -> 'qvector< bpt_t >::iterator' | insert(self, it, x) -> bpt_t + | it: qvector< bpt_t >::iterator + | x: bpt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bpt_t &' | push_back(self, x) - | push_back(self) -> bpt_t + | x: bpt_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: bpt_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< bpt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -5202,28 +4818,20 @@ bring_debugger_to_front(*args) -> 'void' 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 + check_bpt(ea) -> int + @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. @@ -5231,9 +4839,6 @@ clear_requests_queue(*args) -> 'void' 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)} @@ -5241,13 +4846,12 @@ Help on function collect_stack_trace in module ida_dbg: collect_stack_trace(*args) -> 'bool' collect_stack_trace(tid, trace) -> bool + @param tid (C++: thid_t) + @param trace (C++: 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 @@ -5261,133 +4865,116 @@ continue_process(*args) -> 'bool' 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) + create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * + @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 + dbg_add_bpt_tev(tid, ea, bp) -> bool + @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) + dbg_add_call_tev(tid, caller, callee) + @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 *) + dbg_add_debug_event(event) + @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) - @return: false if the operation failed, true otherwise + dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool + @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) -> '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 + dbg_add_many_tevs(new_tevs) -> bool + @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) + dbg_add_ret_tev(tid, ret_insn, return_to) + @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) - @param tid (C++: thid_t) - @param address (C++: ea_t) + dbg_add_tev(type, tid, address) + @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) -> '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) + dbg_add_thread(tid) + @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 (C++: ea_t) + @param end_ea (C++: ea_t) + @param data (C++: const compiled_binpat_vec_t &) + @param srch_flags (C++: 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 @@ -5399,78 +4986,72 @@ dbg_can_query(*args) -> 'bool' 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) + dbg_del_thread(tid) + @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 + define_exception(code, name, desc, flags) -> char const * + @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) -> 'bool' - 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) + del_bpt(ea) -> bool + @param ea: any address in the breakpoint range (C++: ea_t) + + + del_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function del_bptgrp in module ida_dbg: del_bptgrp(*args) -> 'bool' del_bptgrp(name) -> bool + @param name (C++: const char *) Help on function del_virt_module in module ida_dbg: del_virt_module(*args) -> 'bool' del_virt_module(base) -> bool + @param base (C++: const ea_t) 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(nonnul_filename) -> bool - - Show difference between the current trace and the one from 'filename'. + + diff_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function disable_bblk_trace in module ida_dbg: @@ -5481,7 +5062,11 @@ Help on function disable_bpt in module ida_dbg: disable_bpt(*args) -> 'bool' disable_bpt(ea) -> bool + @param ea (C++: ea_t) + + disable_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function disable_func_trace in module ida_dbg: @@ -5507,32 +5092,43 @@ Help on function enable_bblk_trace in module ida_dbg: enable_bblk_trace(*args) -> 'bool' enable_bblk_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool + @param ea (C++: ea_t) + @param enable (C++: bool) + + enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: bool) Help on function enable_func_trace in module ida_dbg: enable_func_trace(*args) -> 'bool' enable_func_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_insn_trace in module ida_dbg: enable_insn_trace(*args) -> 'bool' enable_insn_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_manual_regions in module ida_dbg: enable_manual_regions(*args) -> 'void' enable_manual_regions(enable) + @param enable (C++: 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 (C++: int) Help on class eval_ctx_t in module ida_dbg: @@ -5543,6 +5139,7 @@ class eval_ctx_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> eval_ctx_t + | _ea: ea_t | | __repr__ = _swig_repr(self) | @@ -5567,41 +5164,30 @@ class eval_ctx_t(builtins.object) 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) + exist_bpt(ea) -> bool + @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: Breakpoint location (C++: const bpt_location_t &) - @param bpt: bpt is filled if the breakpoint was found (C++: bpt_t *) + find_bpt(bptloc, bpt) -> bool + @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) -> '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)} @@ -5609,37 +5195,30 @@ get_bblk_trace_options(*args) -> 'int' 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: 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 + get_bpt(ea, bpt) -> bool + @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) -> 'qstring *' get_bpt_group(bptloc) -> str + @param bptloc (C++: const bpt_location_t &) 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)}Usually, a breakpoint is associated with a read, read/write @@ -5648,38 +5227,34 @@ get_bpt_tev_ea(*args) -> 'ea_t' 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. + get_bpt_tev_ea(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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) -> 'char const *' - get_bptloc_string(i) -> char const * - - Helper function for 'bpt_location_t' . - - @param i (C++: int) + get_bptloc_string(i) -> char const * + @param i (C++: 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: 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. + get_call_tev_callee(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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) -> '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: @@ -5689,47 +5264,38 @@ get_current_source_line(*args) -> '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) -> 'bool' - 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 + get_dbg_byte(x, ea) -> bool + @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) -> 'int' get_dbg_memory_info(ranges) -> int + @param ranges (C++: 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 *) - @param ri (C++: register_info_t *) + get_dbg_reg_info(regname, ri) -> bool + @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) -> '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,13 +5307,11 @@ Help on function get_first_module in module ida_dbg: get_first_module(*args) -> 'bool' get_first_module(modinfo) -> bool + @param modinfo (C++: 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)} @@ -5755,66 +5319,63 @@ 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 (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param name (C++: const char *) + @param out (C++: 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 + @param bpts (C++: bpt_vec_t *) + @param grp_name (C++: const char *) 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: 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 + get_insn_tev_reg_mem(n, memmap) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> '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. + get_insn_tev_reg_result(n, regname, regval) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> '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. + get_insn_tev_reg_val(n, regname, regval) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> '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)} @@ -5822,9 +5383,6 @@ get_insn_trace_options(*args) -> 'int' 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. @@ -5832,19 +5390,23 @@ 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 (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param name (C++: const char *) + @param out (C++: 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 (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param out (C++: 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 @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) @@ -5852,111 +5414,91 @@ Help on function get_module_info in module ida_dbg: get_module_info(*args) -> 'bool' get_module_info(ea, modinfo) -> bool + @param ea (C++: ea_t) + @param modinfo (C++: modinfo_t *) Help on function get_next_module in module ida_dbg: get_next_module(*args) -> 'bool' get_next_module(modinfo) -> bool + @param modinfo (C++: 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(*args) -> 'qstring *, qstring *, qstring *, qstring *, qstring *, int *' 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) -> '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 *) - @return: number of processes or -1 on error + get_processes(proclist) -> ssize_t + @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) -> 'PyObject *' - 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 *) + get_reg_val(regname, regval) -> bool + @param regname (C++: const char *) + @param regval (C++: regval_t *) + + + get_reg_val(regname, ival) -> bool + @param regname (C++: const char *) + ival: uint64 * + + + get_reg_val(regname) -> PyObject * + @param regname (C++: const char *) Help on function get_reg_vals in module ida_dbg: get_reg_vals(*args) -> 'int' get_reg_vals(tid, clsmask, values) -> int + @param tid (C++: thid_t) + @param clsmask (C++: int) + @param values (C++: regval_t *) 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: 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. + get_ret_tev_return(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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) -> '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. @@ -5964,74 +5506,62 @@ 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 (C++: const char *) 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 (C++: 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: 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". + get_tev_event(n, d) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> '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: 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 + get_tev_info(n, tev_info) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> '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". + get_tev_memory_info(n, mi) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> 'int' - get_tev_qty() -> int - - Get number of trace events available in trace buffer. \sq{Type, Synchronous function, Notification, none (synchronous function)} @@ -6055,103 +5585,92 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int + @param n (C++: int) Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int + @param n (C++: 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)} + +Help on function get_trace_dynamic_register_set in module ida_dbg: + +get_trace_dynamic_register_set(*args) -> 'void' + Get dynamic register set of current trace. - @return: the base address of the currently loaded trace + get_trace_dynamic_register_set(idaregs) + @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 *) + get_trace_file_desc(filename) -> str + @param filename (C++: const char *) 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: 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 + getn_bpt(n, bpt) -> bool + @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) -> 'thid_t' - 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. + getn_thread(n) -> thid_t + @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) -> 'char const *' - 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. + getn_thread_name(n) -> char const * + @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) -> '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 (C++: const debug_event_t *) + @param rqflags (C++: int) Help on function hide_all_bpts in module ida_dbg: @@ -6162,8 +5681,6 @@ 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. @return: The sreg base, or BADADDR on failure. @@ -6172,25 +5689,24 @@ Help on function internal_ioctl in module ida_dbg: internal_ioctl(*args) -> 'int' internal_ioctl(fn, buf, poutbuf, poutsize) -> int + @param fn (C++: int) + @param buf (C++: const void *) + @param poutbuf (C++: void **) + @param poutsize (C++: 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: Debugged process invalidation options (C++: int) - @return: current debugger state (one of Debugged process states ) + invalidate_dbg_state(dbginv) -> int + @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) -> '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) @@ -6198,16 +5714,14 @@ invalidate_dbgmem_config(*args) -> 'void' 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) + invalidate_dbgmem_contents(ea, size) + @param ea (C++: ea_t) + @param size (C++: asize_t) Help on function is_bblk_trace_enabled in module ida_dbg: @@ -6217,9 +5731,6 @@ is_bblk_trace_enabled(*args) -> '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 @@ -6229,123 +5740,96 @@ is_debugger_busy(*args) -> 'bool' 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) + is_debugger_memory(ea) -> bool + @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 instructions tracing. \sq{Type, Synchronous + 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 *) + is_reg_custom(regname) -> bool + @param regname (C++: const char *) 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 *) + is_reg_float(regname) -> bool + @param regname (C++: const char *) 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 *) + is_reg_integer(regname) -> bool + @param regname (C++: const char *) 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_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 *) + is_valid_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function list_bptgrps in module ida_dbg: list_bptgrps(*args) -> 'PyObject *' list_bptgrps(bptgrps) -> size_t - list_bptgrps() -> PyObject * + @param bptgrps (C++: qstrvec_t *) Help on function load_debugger in module ida_dbg: load_debugger(*args) -> 'bool' load_debugger(dbgname, use_remote) -> bool + @param dbgname (C++: const char *) + @param use_remote (C++: 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 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 *) + load_trace_file(filename) -> str + @param filename (C++: const char *) Help on class memreg_info_t in module ida_dbg: @@ -6392,10 +5876,11 @@ class memreg_infos_t(builtins.object) | | __getitem__(self, *args) -> 'memreg_info_t const &' | __getitem__(self, i) -> memreg_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> memreg_infos_t - | __init__(self, x) -> memreg_infos_t + | 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,12 +5892,15 @@ class memreg_infos_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -6436,7 +5924,12 @@ class memreg_infos_t(builtins.object) | | erase(self, *args) -> 'qvector< memreg_info_t >::iterator' | erase(self, it) -> memreg_info_t + | it: qvector< memreg_info_t >::iterator + | + | | erase(self, first, last) -> memreg_info_t + | first: qvector< memreg_info_t >::iterator + | last: qvector< memreg_info_t >::iterator | | extract(self, *args) -> 'memreg_info_t *' | extract(self) -> memreg_info_t @@ -6446,35 +5939,47 @@ class memreg_infos_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=memreg_info_t()) + | x: memreg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: memreg_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< memreg_info_t >::iterator' | insert(self, it, x) -> memreg_info_t + | it: qvector< memreg_info_t >::iterator + | x: memreg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memreg_info_t &' | push_back(self, x) - | push_back(self) -> memreg_info_t + | x: memreg_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: memreg_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< memreg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -6495,33 +6000,30 @@ Help on function move_bpt_to_grp in module ida_dbg: move_bpt_to_grp(*args) -> 'void' 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) -> '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) - @return: true if the process memory has been modified + put_dbg_byte(ea, x) -> bool + @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) -> 'ssize_t' read_dbg_memory(ea, buffer, size) -> ssize_t + @param ea (C++: ea_t) + @param buffer (C++: void *) + @param size (C++: 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 @@ -6529,68 +6031,58 @@ Help on function rename_bptgrp in module ida_dbg: rename_bptgrp(*args) -> 'bool' rename_bptgrp(old_name, new_name) -> bool + @param old_name (C++: const char *) + @param new_name (C++: const char *) 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 - request_add_bpt(bpt) -> bool - - Post an 'add_bpt(ea_t, asize_t, bpttype_t)' request. + request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @param ea (C++: ea_t) + @param size (C++: asize_t) + @param type (C++: bpttype_t) - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) + + request_add_bpt(bpt) -> bool + 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) + request_attach_process(pid, event_id) -> 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. 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()' Help on function request_del_bpt in module ida_dbg: request_del_bpt(*args) -> 'bool' - request_del_bpt(ea) -> bool - request_del_bpt(bptloc) -> bool - - Post a 'del_bpt(ea_t)' request. + request_del_bpt(ea) -> bool + @param ea (C++: ea_t) - @param ea (C++: ea_t) + + request_del_bpt(bptloc) -> bool + 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: @@ -6602,7 +6094,11 @@ Help on function request_disable_bpt in module ida_dbg: request_disable_bpt(*args) -> 'bool' request_disable_bpt(ea) -> bool + @param ea (C++: ea_t) + + request_disable_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function request_disable_func_trace in module ida_dbg: @@ -6623,211 +6119,172 @@ 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 (C++: 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 (C++: ea_t) + @param enable (C++: bool) + + request_enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: 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 (C++: 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 (C++: 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 (C++: 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) + request_resume_thread(tid) -> int + @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) - @param tid (C++: thid_t) + request_run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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) -> 'bool' - request_select_thread(tid) -> bool - - Post a 'select_thread()' request. - - @param tid (C++: thid_t) + request_select_thread(tid) -> bool + @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) + request_set_bblk_trace_options(options) + @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) + request_set_func_trace_options(options) + @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) + request_set_insn_trace_options(options) + @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 *) + request_set_reg_val(regname, o) -> PyObject * + @param regname (C++: const char *) + 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) + request_set_resume_mode(tid, mode) -> bool + @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) -> 'void' - request_set_step_trace_options(options) - - Post a 'set_step_trace_options()' request. - - @param options (C++: int) + request_set_step_trace_options(options) + @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 *) - @param args (C++: const char *) - @param sdir (C++: const char *) + request_start_process(path=None, args=None, sdir=None) -> int + @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) -> '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) + request_suspend_thread(tid) -> int + @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) + resume_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @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 @@ -6836,24 +6293,15 @@ retrieve_exceptions(*args) -> 'excvec_t *' 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)}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) -> '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) @@ -6861,37 +6309,33 @@ run_to(*args) -> 'bool' 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) + run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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) -> '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 *) + save_trace_file(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) 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: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + select_thread(tid) -> bool + @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: @@ -6907,113 +6351,100 @@ send_dbg_command(command) 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) + set_bblk_trace_options(options) + @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 bpt (C++: bpt_t &) + @param grp_name (C++: const char *) Help on function set_bptloc_group in module ida_dbg: set_bptloc_group(*args) -> 'bool' set_bptloc_group(bptloc, grp_name) -> bool + @param bptloc (C++: const bpt_location_t &) + @param grp_name (C++: const char *) 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 *) + set_bptloc_string(s) -> int + @param s (C++: const char *) 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(evcond) + @param evcond (C++: const char *) 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 + set_debugger_options(options) -> 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)} - @param options (C++: int) + set_func_trace_options(options) + @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) + set_highlight_trace_options(hilight, color, diff) + @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) + set_insn_trace_options(options) + @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 (C++: const meminfo_vec_t *) 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 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) + set_process_options(path, args, sdir, host, _pass, port) + @param path (C++: const char *) + @param args (C++: const char *) + @param sdir (C++: const char *) + @param host (C++: const char *) + pass: 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 @@ -7024,112 +6455,110 @@ set_process_state(*args) -> 'int' 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 ) + set_process_state(newstate, p_thid, dbginv) -> int + @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) -> 'PyObject *' - 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 *) + set_reg_val(regname, o) -> PyObject + @param regname (C++: const char *) + o: PyObject * + + + set_reg_val(tid, regidx, o) -> PyObject * + tid: thid_t + regidx: int + 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: 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) + set_remote_debugger(host, _pass, port=-1) + @param host: If empty, IDA will use local debugger. If NULL, the host + will not be set. (C++: const char *) + pass: char const * + @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) -> '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) + set_resume_mode(tid, mode) -> bool + @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) -> '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) + set_step_trace_options(options) + @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) + set_trace_base_address(ea) + @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 dynamic register set of current trace. + + set_trace_dynamic_register_set(idaregs) + @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 *) + set_trace_file_desc(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) 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 *) + set_trace_platform(platform) + @param platform (C++: const char *) 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)}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) + set_trace_size(size) -> bool + @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: @@ -7164,9 +6593,6 @@ srcdbg_step_until_ret(*args) -> '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' }You can also use the 'run_to()' function to easily start the execution of a process @@ -7174,16 +6600,17 @@ start_process(*args) -> 'int' 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 *) + start_process(path=None, args=None, sdir=None) -> int + @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 *) + @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' } @@ -7191,9 +6618,6 @@ step_into(*args) -> 'bool' 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' } @@ -7201,9 +6625,6 @@ step_over(*args) -> 'bool' 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, @@ -7212,18 +6633,12 @@ step_until_ret(*args) -> 'bool' 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 @@ -7236,15 +6651,16 @@ suspend_process(*args) -> 'bool' 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: thread id (C++: thid_t) + suspend_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @retval: -1 - network error + @retval: 0 - failed + @retval: 1 - ok Help on class tev_info_reg_t in module ida_dbg: @@ -7324,6 +6740,8 @@ class tev_reg_value_t(builtins.object) | | __init__(self, *args) | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t + | _reg_idx: int + | _value: uint64 | | __repr__ = _swig_repr(self) | @@ -7357,10 +6775,11 @@ class tev_reg_values_t(builtins.object) | | __getitem__(self, *args) -> 'tev_reg_value_t const &' | __getitem__(self, i) -> tev_reg_value_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tev_reg_values_t - | __init__(self, x) -> tev_reg_values_t + | 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,12 +6791,15 @@ class tev_reg_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -7401,7 +6823,12 @@ class tev_reg_values_t(builtins.object) | | erase(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | erase(self, it) -> tev_reg_value_t + | it: qvector< tev_reg_value_t >::iterator + | + | | erase(self, first, last) -> tev_reg_value_t + | first: qvector< tev_reg_value_t >::iterator + | last: qvector< tev_reg_value_t >::iterator | | extract(self, *args) -> 'tev_reg_value_t *' | extract(self) -> tev_reg_value_t @@ -7411,35 +6838,47 @@ class tev_reg_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_reg_value_t()) + | x: tev_reg_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: tev_reg_value_t * + | len: size_t | | insert(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | insert(self, it, x) -> tev_reg_value_t + | it: qvector< tev_reg_value_t >::iterator + | 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) - | push_back(self) -> tev_reg_value_t + | x: tev_reg_value_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: tev_reg_value_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< tev_reg_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7465,10 +6904,11 @@ class tevinforeg_vec_t(builtins.object) | | __getitem__(self, *args) -> 'tev_info_reg_t const &' | __getitem__(self, i) -> tev_info_reg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tevinforeg_vec_t - | __init__(self, x) -> tevinforeg_vec_t + | 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,12 +6920,15 @@ class tevinforeg_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -7509,7 +6952,12 @@ class tevinforeg_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | erase(self, it) -> tev_info_reg_t + | it: qvector< tev_info_reg_t >::iterator + | + | | erase(self, first, last) -> tev_info_reg_t + | first: qvector< tev_info_reg_t >::iterator + | last: qvector< tev_info_reg_t >::iterator | | extract(self, *args) -> 'tev_info_reg_t *' | extract(self) -> tev_info_reg_t @@ -7519,35 +6967,47 @@ class tevinforeg_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_info_reg_t()) + | x: tev_info_reg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: tev_info_reg_t * + | len: size_t | | insert(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | insert(self, it, x) -> tev_info_reg_t + | it: qvector< tev_info_reg_t >::iterator + | 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) - | push_back(self) -> tev_info_reg_t + | x: tev_info_reg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: tev_info_reg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< tev_info_reg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7567,9 +7027,6 @@ class tevinforeg_vec_t(builtins.object) 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)}Only the following @@ -7584,28 +7041,30 @@ update_bpt(*args) -> 'bool' '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 *) + update_bpt(bpt) -> bool + @param bpt (C++: const bpt_t *) 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: 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) + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + @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) -> 'ssize_t' write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t + @param ea (C++: ea_t) + py_buf: PyObject * + @param size (C++: size_t) === ida_dbg EPYDOC INJECTIONS === ida_dbg.BKPT_ACTIVE @@ -7746,6 +7205,9 @@ refresh the memory layout and contents before evaluating bpt condition ida_dbg.BT_LOG_INSTS """ +specific options for basic block tracing (see +'set_bblk_trace_options()' ) + log all instructions in the current basic block """ @@ -7891,12 +7353,19 @@ display for unknown exceptions ida_dbg.FT_LOG_RET """ +specific options for function tracing (see 'set_func_trace_options()' +) + function tracing will log returning instructions """ ida_dbg.IT_LOG_SAME_IP """ -instruction tracing will log instructions whose IP doesn't change +specific options for instruction tracing (see +'set_insn_trace_options()' ) + +instruction tracing will log new instructions even when IP doesn't +change """ ida_dbg.ST_ALREADY_LOGGED @@ -7906,7 +7375,7 @@ step tracing will be disabled when IP is already logged ida_dbg.ST_DIFFERENTIAL """ -tracing: log only new instructions +tracing: log only new instructions (not previously logged) """ ida_dbg.ST_OPTIONS_MASK @@ -7964,61 +7433,1073 @@ ida_dbg.WFNE_USEC timeout is specified in microseconds """ === ida_dbg EPYDOC INJECTIONS END === +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 + | r: direntry_t const & + | + | __init__(self, *args) + | __init__(self, i=BADIDX, d=False) -> direntry_t + | i: uval_t + | d: bool + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | r: direntry_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | 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 + | direntry_t_idx_get(self) -> uval_t + | + | isdir + | direntry_t_isdir_get(self) -> bool + | + | 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 + | r: qvector< direntry_t > const & + | + | __getitem__(self, *args) -> 'direntry_t const &' + | __getitem__(self, i) -> direntry_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> direntry_vec_t + | 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 + | r: qvector< direntry_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | v: direntry_t const & + | + | __swig_destroy__ = delete_direntry_vec_t(...) + | delete_direntry_vec_t(self) + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | x: direntry_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: direntry_t const & + | + | at(self, *args) -> 'direntry_t const &' + | at(self, _idx) -> direntry_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< direntry_t >::const_iterator' + | begin(self) -> direntry_t + | 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 + | end(self) -> direntry_t + | + | erase(self, *args) -> 'qvector< direntry_t >::iterator' + | erase(self, it) -> direntry_t + | it: qvector< direntry_t >::iterator + | + | + | erase(self, first, last) -> direntry_t + | first: qvector< direntry_t >::iterator + | 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 + | x: direntry_t const & + | + | + | find(self, x) -> direntry_t + | x: direntry_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=direntry_t()) + | x: direntry_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: direntry_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: direntry_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< direntry_t >::iterator' + | insert(self, it, x) -> direntry_t + | it: qvector< direntry_t >::iterator + | x: direntry_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'direntry_t &' + | push_back(self, x) + | x: direntry_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: direntry_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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) -> dirspec_t + | nm: char const * + | + | __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 (C++: inode_t) + | + | get_inode(self, *args) -> 'inode_t' + | get_inode(self, name) -> inode_t + | @param name (C++: const char *) + | + | get_name(self, *args) -> 'bool' + | get_name(self, inode) -> bool + | @param inode (C++: inode_t) + | + | get_size(self, *args) -> 'ssize_t' + | get_size(self, inode) -> ssize_t + | @param inode (C++: inode_t) + | + | rename_inode(self, *args) -> 'bool' + | rename_inode(self, inode, newname) -> bool + | @param inode (C++: inode_t) + | @param newname (C++: const char *) + | + | unlink_inode(self, *args) -> 'void' + | unlink_inode(self, arg0) + | arg0: inode_t + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | nodename + | dirspec_t_nodename_get(self) -> qstring * + | + | thisown + | The membership flag + +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 + | r: dirtree_cursor_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | r: dirtree_cursor_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | r: dirtree_cursor_t const & + | + | __init__(self, *args) + | __init__(self, _parent=BADIDX, _rank=size_t(-1)) -> dirtree_cursor_t + | _parent: diridx_t + | _rank: size_t + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | r: dirtree_cursor_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | r: dirtree_cursor_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | 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 + | 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 + | dirtree_cursor_t_parent_get(self) -> diridx_t + | + | rank + | dirtree_cursor_t_rank_get(self) -> size_t + | + | 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 + | r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) -> 'dirtree_cursor_t const &' + | __getitem__(self, i) -> dirtree_cursor_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> dirtree_cursor_vec_t + | 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 + | r: qvector< dirtree_cursor_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | 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 + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: dirtree_cursor_t const & + | + | at(self, *args) -> 'dirtree_cursor_t const &' + | at(self, _idx) -> dirtree_cursor_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | begin(self) -> dirtree_cursor_t + | 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 + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | erase(self, it) -> dirtree_cursor_t + | it: qvector< dirtree_cursor_t >::iterator + | + | + | erase(self, first, last) -> dirtree_cursor_t + | first: qvector< dirtree_cursor_t >::iterator + | 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 + | x: dirtree_cursor_t const & + | + | + | find(self, x) -> dirtree_cursor_t + | x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=dirtree_cursor_t()) + | x: dirtree_cursor_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: dirtree_cursor_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: dirtree_cursor_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | insert(self, it, x) -> dirtree_cursor_t + | it: qvector< dirtree_cursor_t >::iterator + | x: dirtree_cursor_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'dirtree_cursor_t &' + | push_back(self, x) + | x: dirtree_cursor_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: dirtree_cursor_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 + | dirtree_iterator_t_cursor_get(self) -> dirtree_cursor_t + | + | pattern + | dirtree_iterator_t_pattern_get(self) -> qstring * + | + | 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 + | r: qvector< dirtree_cursor_t > const & + | + | __getitem__(self, *args) -> 'dirtree_cursor_t const &' + | __getitem__(self, i) -> dirtree_cursor_t + | 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 + | r: qvector< dirtree_cursor_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | v: dirtree_cursor_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | x: dirtree_cursor_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: dirtree_cursor_t const & + | + | at(self, *args) -> 'dirtree_cursor_t const &' + | at(self, _idx) -> dirtree_cursor_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< dirtree_cursor_t >::const_iterator' + | begin(self) -> dirtree_cursor_t + | 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 + | end(self) -> dirtree_cursor_t + | + | erase(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | erase(self, it) -> dirtree_cursor_t + | it: qvector< dirtree_cursor_t >::iterator + | + | + | erase(self, first, last) -> dirtree_cursor_t + | first: qvector< dirtree_cursor_t >::iterator + | 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 + | x: dirtree_cursor_t const & + | + | + | find(self, x) -> dirtree_cursor_t + | x: dirtree_cursor_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=dirtree_cursor_t()) + | x: dirtree_cursor_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: dirtree_cursor_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: dirtree_cursor_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< dirtree_cursor_t >::iterator' + | insert(self, it, x) -> dirtree_cursor_t + | it: qvector< dirtree_cursor_t >::iterator + | x: dirtree_cursor_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'dirtree_cursor_t &' + | push_back(self, x) + | x: dirtree_cursor_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: dirtree_cursor_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 + | ds: dirspec_t * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_dirtree_t(...) + | delete_dirtree_t(self) + | + | change_rank(self, *args) -> 'dterr_t' + | Change ordering rank of an item.All subdirectories go before all file + | entries. + | + | change_rank(self, path, rank_delta) -> dterr_t + | @param path: path to the item (C++: const char *) + | @param rank_delta (C++: ssize_t) + | @return: dterr_t error code + | + | chdir(self, *args) -> 'dterr_t' + | Change current directory + | + | chdir(self, path) -> dterr_t + | @param path: new current directory (C++: const char *) + | @return: dterr_t error code + | + | findfirst(self, *args) -> 'bool' + | Start iterating over files in a directory + | + | findfirst(self, ff, pattern) -> bool + | @param ff: directory iterator. it will be initialized by the function + | (C++: dirtree_iterator_t *) + | @param pattern: pattern to search for (C++: const char *) + | @return: success + | + | findnext(self, *args) -> 'bool' + | Continue iterating over files in a directory + | + | findnext(self, ff) -> bool + | @param ff: directory iterator (C++: dirtree_iterator_t *) + | @return: success + | + | get_abspath(self, *args) -> 'qstring' + | Get absolute path pointed by the cursorsee also 'resolve_cursor()' + | + | get_abspath(self, cursor) -> qstring + | @param cursor (C++: const dirtree_cursor_t &) + | @return: path. empty path means wrong directory part of RELPATH + | + | + | get_abspath(self, relpath) -> qstring + | relpath: char const * + | @return: path. empty path means wrong directory part of RELPATH + | + | get_entry_attrs(self, *args) -> 'qstring' + | Get entry attributes + | + | get_entry_attrs(self, de) -> qstring + | @param de: directory entry (C++: const direntry_t &) + | @return: name + | + | get_entry_name(self, *args) -> 'qstring' + | Get entry name + | + | get_entry_name(self, de) -> qstring + | @param de: directory entry (C++: const direntry_t &) + | @return: name + | + | get_entry_size(self, *args) -> 'ssize_t' + | Get entry size + | + | get_entry_size(self, de) -> ssize_t + | @param de: directory entry (C++: const direntry_t &) + | @return: for directories: number of items, for files: item size. if + | error, return -1 + | + | get_nodename(self, *args) -> 'char const *' + | netnode name + | + | get_parent_cursor(self, *args) -> 'dirtree_cursor_t' + | Get parent cursor. + | + | get_parent_cursor(self, cursor) -> dirtree_cursor_t + | @param cursor: a valid ditree cursor (C++: const dirtree_cursor_t &) + | @return: cursor's parent + | + | get_rank(self, *args) -> 'ssize_t' + | Get ordering rank of an item. + | + | get_rank(self, diridx, de) -> ssize_t + | @param diridx: index of the parent directory (C++: diridx_t) + | @param de: directory entry (C++: const direntry_t &) + | @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' + | Get current directory + | + | isdir(self, *args) -> 'bool' + | Is a directory? + | + | isdir(self, de) -> bool + | de: direntry_t const & + | @return: true if the specified path is a directory + | + | + | isdir(self, path) -> bool + | path: char const * + | @return: true if the specified path is a directory + | + | isfile(self, *args) -> 'bool' + | Is a file? + | + | isfile(self, de) -> bool + | de: direntry_t const & + | @return: true if the specified path is a file + | + | + | isfile(self, path) -> bool + | path: char const * + | @return: true if the specified path is a file + | + | link(self, *args) -> 'dterr_t' + | Add a file item into a directory. + | + | link(self, path) -> dterr_t + | @param path: path to item to add to a directory (C++: const char *) + | @return: dterr_t error code + | + | + | link(self, inode) -> dterr_t + | inode: inode_t + | @return: dterr_t error code + | + | load(self, *args) -> 'bool' + | Load the tree structure from the netnode. If dirspec_t::nodename 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.dirspec_t::nodename. + | + | mkdir(self, *args) -> 'dterr_t' + | Create a directory. + | + | mkdir(self, path) -> dterr_t + | @param path: directory to create (C++: const char *) + | @return: dterr_t error code + | + | notify_dirtree(self, *args) -> 'void' + | Notify dirtree about a change of an inode. + | + | notify_dirtree(self, added, inode) + | @param added (C++: bool) + | @param inode: inode in question (C++: inode_t) + | + | rename(self, *args) -> 'dterr_t' + | Rename a directory entry.This function can also rename the item + | + | rename(self, _from, to) -> dterr_t + | @param _from: source path (C++: const char *) + | @param to: destination path (C++: const char *) + | @return: dterr_t error code + | + | resolve_cursor(self, *args) -> 'direntry_t' + | Resolve cursorsee also 'get_abspath()' + | + | resolve_cursor(self, cursor) -> direntry_t + | @param cursor: to analyze (C++: const dirtree_cursor_t &) + | @return: directory entry; if the cursor is bad, the resolved entry + | will be invalid. + | + | resolve_path(self, *args) -> 'direntry_t' + | Resolve path + | + | resolve_path(self, path) -> direntry_t + | @param path: to analyze (C++: const char *) + | @return: directory entry + | + | rmdir(self, *args) -> 'dterr_t' + | Remove a directory. + | + | rmdir(self, path) -> dterr_t + | @param path: directory to delete (C++: const char *) + | @return: dterr_t error code + | + | save(self, *args) -> 'bool' + | Save the tree structure to the netnode.dirspec_t::nodename. + | + | set_nodename(self, *args) -> 'void' + | set_nodename(self, nm) + | @param nm (C++: const char *) + | + | unlink(self, *args) -> 'dterr_t' + | Remove a file item from a directory. + | + | unlink(self, path) -> dterr_t + | @param path: path to item remove from a directory (C++: const char *) + | @return: dterr_t error code + | + | + | unlink(self, inode) -> dterr_t + | inode: inode_t + | @return: dterr_t error code + | + | ---------------------------------------------------------------------- + | Static methods defined here: + | + | errstr(*args) -> 'char const *' + | errstr(err) -> char const * + | err: 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 * + err: enum dterr_t + +Help on function get_std_dirtree in module ida_dirtree: + +get_std_dirtree(*args) -> 'dirtree_t *' + get_std_dirtree(id) -> dirtree_t + @param id (C++: dirtree_id_t) + +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 (C++: qstring *) + @param file (C++: const char *) + @param parse_params (C++: 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 + | 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 + | @param param (C++: qstring *) + | @param line (C++: const char *) + | @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 + | + | ---------------------------------------------------------------------- + | Data 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 *) + close_linput(li) + @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. + + create_bytearray_linput(s) -> linput_t * + 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 - *) + create_generic_linput(gl) -> linput_t * + @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) -> '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: 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) + create_memory_linput(start, size) -> linput_t * + @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) -> 'void' eclose(fp) + @param fp (C++: 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 @@ -8029,73 +8510,105 @@ enumerate_files(*args) -> 'PyObject *' 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 (C++: char *) + @param answer_size (C++: size_t) + @param path (C++: const char *) + @param fname (C++: const char *) + @param fv (C++: 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 + | 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 (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data 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 + fopenA(file) -> FILE * + @param file (C++: const char *) + @return: NULL 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 + fopenM(file) -> FILE * + @param file (C++: const char *) + @return: NULL 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 + fopenRB(file) -> FILE * + @param file (C++: const char *) + @return: NULL 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 + fopenRT(file) -> FILE * + @param file (C++: const char *) + @return: NULL 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 *) - @return: NULL if failure + fopenWB(file) -> FILE * + @param file (C++: const char *) + @return: NULL 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 *) - @return: NULL if failure + fopenWT(file) -> FILE * + @param file (C++: const char *) + @return: NULL if failure Help on class generic_linput_t in module ida_diskio: @@ -8114,6 +8627,9 @@ class generic_linput_t(builtins.object) | | read(self, *args) -> 'ssize_t' | read(self, off, buffer, nbytes) -> ssize_t + | @param off (C++: qoff64_t) + | @param buffer (C++: void *) + | @param nbytes (C++: size_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8136,47 +8652,37 @@ class generic_linput_t(builtins.object) 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: name of the resource to list (C++: const char *) - @param flags: Subdirectory modification flags bits (C++: int) - @return: number of directories appended to 'dirs' + get_ida_subdirs(subdir, flags=0) -> int + @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) -> 'linput_type_t' - get_linput_type(li) -> linput_type_t - - Get linput type. - - @param li (C++: linput_t *) + get_linput_type(li) -> linput_type_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 - @param csidl (C++: int) + get_special_folder(csidl) -> str + @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: @@ -8187,51 +8693,86 @@ get_user_idadir(*args) -> 'char const *' 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: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. + getsysfile(filename, subdir) -> str + @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) -> 'char const *' - idadir(subdir) -> char const * - - Get IDA directory (if subdir==NULL) or the specified subdirectory (see 'IDA subdirectories' ) - @param subdir (C++: const char *) + idadir(subdir) -> char const * + @param subdir (C++: const char *) + +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 + | 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 (C++: const ioports_t &) + | @param line (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data 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) + open_linput(file, remote) -> linput_t * + @param file (C++: const char *) + @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) + qlgetz(li, fpos) -> str + @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 (C++: ioports_t *) + @param device (C++: qstring *) + @param file (C++: const char *) + @param callback (C++: ioports_fallback_t *) === ida_diskio EPYDOC INJECTIONS === ida_diskio.IDA_SUBDIR_IDADIR_FIRST @@ -8252,103 +8793,86 @@ only existing directories will be present 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) - @return: success (currently always true) + add_entry(ord, ea, name, makecode, flags=0) -> bool + @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) -> '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 + get_entry(ord) -> ea_t + @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) -> '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) - @return: size of entry forwarder name or -1 + get_entry_forwarder(ord) -> str + @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) -> '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) - @return: size of entry name or -1 + get_entry_name(ord) -> str + @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) -> '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) - @return: ordinal number or 0. + get_entry_ordinal(idx) -> uval_t + @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) -> '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) - @return: success + rename_entry(ord, name, flags=0) -> bool + @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) -> '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) - @return: success + set_entry_forwarder(ord, name, flags=0) -> bool + @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 @@ -8372,54 +8896,44 @@ the name is given in UTF-8 (default) 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 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) + add_enum(idx, name, flag) -> enum_t + @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) -> '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 + add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int + @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) -> 'void' - del_enum(id) - - Delete an enum type. - - @param id (C++: enum_t) + del_enum(id) + @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) + del_enum_member(id, value, serial, bmask) -> bool + @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 +8946,7 @@ class enum_member_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> enum_member_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -8439,7 +8954,12 @@ class enum_member_visitor_t(builtins.object) | delete_enum_member_visitor_t(self) | | visit_enum_member(self, *args) -> 'int' + | Implements action to take when enum member is visited. + | | visit_enum_member(self, cid, value) -> int + | @param cid (C++: const_t) + | @param value (C++: uval_t) + | @return: nonzero to stop the iteration | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8456,533 +8976,452 @@ class enum_member_visitor_t(builtins.object) 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 &) + for_all_enum_members(id, cv) -> int + @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 (C++: enum_t) + @param bmask (C++: bmask_t) + @param repeatable (C++: bool) Help on function get_bmask_name in module ida_enum: get_bmask_name(*args) -> 'qstring *' get_bmask_name(id, bmask) -> str + @param id (C++: enum_t) + @param bmask (C++: 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 *) + get_enum(name) -> enum_t + @param name (C++: const char *) 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) + get_enum_cmt(id, repeatable) -> str + @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 flags determining the representation of the enum. (currently they define the numeric base: octal, decimal, hex, bin) and signness. - @param id (C++: enum_t) + get_enum_flag(id) -> flags_t + @param id (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' + Get the index in the list of enums. + 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) + @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 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) + get_enum_member(id, value, serial, mask) -> const_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) + get_enum_member_bmask(id) -> bmask_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 *) + get_enum_member_by_name(name) -> const_t + @param name (C++: const char *) 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) + get_enum_member_cmt(id, repeatable) -> str + @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) + get_enum_member_enum(id) -> enum_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) + get_enum_member_name(id) -> str + @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) + get_enum_member_serial(cid) -> uchar + @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) + get_enum_member_value(id) -> uval_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) + get_enum_name(id) -> str + @param id (C++: 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) + get_enum_name2(id, flags=0) -> str + @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) -> '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) + get_enum_size(id) -> size_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) + get_enum_type_ordinal(id) -> int32 + @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) + get_enum_width(id) -> size_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 bitmask in the enum (bitfield) - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + get_first_bmask(id) -> bmask_t + @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) -> 'uval_t' get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + @param id (C++: enum_t) + @param bmask (C++: 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 (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: 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 bitmask in the enum (bitfield) - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + get_last_bmask(id) -> bmask_t + @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) -> 'uval_t' get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + @param id (C++: enum_t) + @param bmask (C++: 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 (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: 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 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 + get_next_bmask(id, bmask) -> bmask_t + @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) -> 'uval_t' get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: 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 (C++: uchar *) + @param first_cid (C++: 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 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 + get_prev_bmask(id, bmask) -> bmask_t + @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) -> 'uval_t' get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: 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 (C++: uchar *) + @param first_cid (C++: const_t) Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - getn_enum(n) -> 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) + getn_enum(idx) -> enum_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) - @param id (C++: enum_t) + is_bf(id) -> bool + @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) + is_enum_fromtil(id) -> bool + @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) + is_enum_hidden(id) -> bool + @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) + is_ghost_enum(id) -> bool + @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) + is_one_bit_mask(mask) -> bool + @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 (C++: enum_t) + @param bmask (C++: bmask_t) + @param cmt (C++: const char *) + @param repeatable (C++: 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 (C++: enum_t) + @param bmask (C++: bmask_t) + @param name (C++: const char *) 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) + set_enum_bf(id, bf) -> 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) + set_enum_cmt(id, cmt, repeatable) -> bool + @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) -> 'bool' - set_enum_flag(id, flag) -> bool - - Set data representation flags. - - @param id (C++: enum_t) - @param flag (C++: flags_t) + set_enum_flag(id, flag) -> bool + @param id (C++: enum_t) + @param flag (C++: flags_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) + set_enum_fromtil(id, fromtil) -> 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) + set_enum_ghost(id, ghost) -> 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) + set_enum_hidden(id, hidden) -> 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()' . - @param id (C++: enum_t) - @param idx (C++: size_t) + set_enum_idx(id, idx) -> bool + @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) + set_enum_member_cmt(id, cmt, repeatable) -> bool + @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) -> 'bool' - set_enum_member_name(id, name) -> bool - - Set name of enum member. - - @param id (C++: const_t) - @param name (C++: const char *) + set_enum_member_name(id, name) -> bool + @param id (C++: const_t) + @param name (C++: const char *) 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 *) + set_enum_name(id, name) -> bool + @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) -> 'void' - set_enum_type_ordinal(id, ord) - - Set corresponding type ordinal number. - - @param id (C++: enum_t) - @param ord (C++: int32) + set_enum_type_ordinal(id, ord) + @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) + set_enum_width(id, width) -> bool + @param id (C++: enum_t) + @param width (C++: int) === ida_enum EPYDOC INJECTIONS === ida_enum.DEFMASK @@ -9047,132 +9486,100 @@ class _IdcFunction(builtins.object) 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. + add_idc_class(name, super=None) -> idc_class_t * + @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 +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 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 defvals: default argument values (optional) + @param flags: IDC function flags. A combination of EXTFUN_XXX constants (optional) - @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 + @return: Boolean 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. + add_idc_gvar(name) -> idc_value_t + @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) -> 'qstring *' compile_idc_file(nonnul_line) -> str + 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) + compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str + @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) + @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 + 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 &) + copy_idcv(dst, src) -> error_t + @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) -> 'bool' - 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 + create_idcv_ref(ref, v) -> bool + @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) -> '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 &) + deep_copy_idcv(dst, src) -> error_t + @param dst (C++: idc_value_t *) + @param src (C++: const idc_value_t &) Help on function del_idc_func in module ida_expr: @@ -9182,199 +9589,181 @@ del_idc_func(name) @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 *) - @return: error code, eOk on success + del_idcv_attr(obj, attr) -> error_t + @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) -> 'idc_value_t *' - 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" + deref_idcv(v, vref_flags) -> idc_value_t + @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) -> '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 *) + eval_expr(rv, where, line) -> str + @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 *) + @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) + eval_idc_expr(rv, where, line) -> str + @param rv (C++: idc_value_t *) + @param where (C++: ea_t) + 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) + exec_idc_script(result, path, func, args, argsnum) -> str + @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) + @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) + exec_system_script(file, complain_if_no_file=True) -> bool + @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) + @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() + find_idc_class(name) -> idc_class_t * + @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) -> 'qstring *' find_idc_func(prefix, n=0) -> str + @param prefix (C++: const char *) + @param n (C++: 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 + find_idc_gvar(name) -> idc_value_t + @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) -> 'char const *' first_idcv_attr(obj) -> char const * + @param obj (C++: const idc_value_t *) 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 *) + free_idcv(v) + @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 the current directory. - @param file: file name without full path (C++: const char *) - @return: NULL is file not found. otherwise returns pointer to buf + get_idc_filename(file) -> str + @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) -> '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) - @return: error code, eOk on success + get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t + @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) -> 'qstring *' - 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 + get_idcv_class_name(obj) -> str + @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) -> '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) - @return: eOk if success + get_idcv_slice(res, v, i1, i2, flags=0) -> error_t + @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: @@ -9387,6 +9776,7 @@ class highlighter_cbs_t(builtins.object) | | __init__(self, *args) | __init__(self) -> highlighter_cbs_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -9401,9 +9791,13 @@ class highlighter_cbs_t(builtins.object) | | set_block_state(self, *args) -> 'void' | set_block_state(self, arg0) + | arg0: int32 | | set_style(self, *args) -> 'void' | set_style(self, arg0, arg1, arg2) + | arg0: int32 + | arg1: int32 + | arg2: enum syntax_highlight_style | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9426,7 +9820,7 @@ class idc_global_t(builtins.object) | | __init__(self, *args) | __init__(self) -> idc_global_t - | __init__(self, n) -> idc_global_t + | n: char const * | | __repr__ = _swig_repr(self) | @@ -9460,8 +9854,15 @@ class idc_value_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0) -> idc_value_t + | n: sval_t + | + | | __init__(self, r) -> idc_value_t + | r: idc_value_t const & + | + | | __init__(self, _str) -> idc_value_t + | _str: char const * | | __repr__ = _swig_repr(self) | @@ -9475,48 +9876,60 @@ class idc_value_t(builtins.object) | __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 - | qstr(self) -> qstring const & + | 'VT_STR' | | set_float(self, *args) -> 'void' | set_float(self, f) + | f: ushort const [6] | | set_int64(self, *args) -> 'void' | set_int64(self, v) + | v: int64 | | set_long(self, *args) -> 'void' | set_long(self, v) + | v: sval_t | | set_pvoid(self, *args) -> 'void' | set_pvoid(self, p) + | p: void * | | set_string(self, *args) -> 'void' | set_string(self, _str, len) + | _str: char const * + | len: size_t + | + | | set_string(self, _str) + | _str: char const * | | swap(self, *args) -> 'void' + | Set this = r and v = this. + | | swap(self, v) + | @param v (C++: idc_value_t &) | | u_str(self, *args) -> 'uchar const *' - | u_str(self) -> uchar const * + | 'VT_STR' | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9565,10 +9978,11 @@ class idc_values_t(builtins.object) | | __getitem__(self, *args) -> 'idc_value_t const &' | __getitem__(self, i) -> idc_value_t + | i: size_t | | __init__(self, *args) | __init__(self) -> idc_values_t - | __init__(self, x) -> idc_values_t + | 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,12 +9994,15 @@ class idc_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -9609,7 +10026,12 @@ class idc_values_t(builtins.object) | | erase(self, *args) -> 'qvector< idc_value_t >::iterator' | erase(self, it) -> idc_value_t + | it: qvector< idc_value_t >::iterator + | + | | erase(self, first, last) -> idc_value_t + | first: qvector< idc_value_t >::iterator + | last: qvector< idc_value_t >::iterator | | extract(self, *args) -> 'idc_value_t *' | extract(self) -> idc_value_t @@ -9619,35 +10041,47 @@ class idc_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=idc_value_t()) + | x: idc_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: idc_value_t * + | len: size_t | | insert(self, *args) -> 'qvector< idc_value_t >::iterator' | insert(self, it, x) -> idc_value_t + | it: qvector< idc_value_t >::iterator + | x: idc_value_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'idc_value_t &' | push_back(self, x) - | push_back(self) -> idc_value_t + | x: idc_value_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: idc_value_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< idc_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -9667,120 +10101,111 @@ class idc_values_t(builtins.object) 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 *) + idcv_float(v) -> error_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 *) - @return: v = 0 if impossible to convert to int64 + idcv_int64(v) -> error_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 *) - @return: v = 0 if impossible to convert to long + idcv_long(v) -> error_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 + idcv_num(v) -> error_t + @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 *) - @return: always eOk + idcv_object(v, icls=None) -> error_t + @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) -> 'error_t' - idcv_string(v) -> error_t - - Convert IDC variable to a text string. - - @param v (C++: idc_value_t *) + idcv_string(v) -> error_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 (C++: const idc_value_t *) 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 *) + move_idcv(dst, src) -> error_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 (C++: const idc_value_t *) + @param attr (C++: const char *) 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 (C++: const idc_value_t *) + @param attr (C++: const char *) 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 &) - @param name (C++: const char *) - @param indent (C++: int) + print_idcv(v, name=None, indent=0) -> str + @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) -> 'bool' py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool + name: char const * + fp_ptr: size_t + args: char const * + defvals: idc_values_t const & + flags: int Help on function py_get_call_idc_func in module ida_expr: @@ -9791,87 +10216,85 @@ Help on function pyw_convert_defvals in module ida_expr: pyw_convert_defvals(*args) -> 'bool' pyw_convert_defvals(out, py_seq) -> bool + out: idc_values_t * + 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 + name: char const * + args: char const * + 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 + 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: 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) + set_header_path(path, add) -> bool + @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) + @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) - @return: error code, eOk on success + set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t + @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) -> '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) - @return: eOk on success + set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t + @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) + in: idc_value_t const & + @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) -> 'void' - swap_idcvs(v1, v2) - - Swap 2 variables. - - @param v1 (C++: idc_value_t *) - @param v2 (C++: idc_value_t *) + swap_idcvs(v1, v2) + @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: object to hold the exception object (C++: idc_value_t *) - @param desc: exception description (C++: const char *) - @return: eExecThrow + throw_idc_exception(r, desc) -> error_t + @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 @@ -9969,58 +10392,46 @@ See return value of 'idc_func_t' . 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) - @param type (C++: fixup_type_t) + calc_fixup_size(type) -> int + @param type (C++: fixup_type_t) + @retval: -1 - means error 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) + contains_fixups(ea, size) -> bool + @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) + del_fixup(source) + @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) + exists_fixup(source) -> bool + @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 *) - @return: id with FIXUP_CUSTOM bit set or 0 + find_custom_fixup(name) -> fixup_type_t + @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: @@ -10031,7 +10442,8 @@ class fixup_data_t(builtins.object) | | __init__(self, *args) | __init__(self) -> fixup_data_t - | __init__(self, type_, flags_=0) -> fixup_data_t + | type_: fixup_type_t + | flags_: uint32 | | __repr__ = _swig_repr(self) | @@ -10039,7 +10451,7 @@ class fixup_data_t(builtins.object) | 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) @@ -10048,31 +10460,41 @@ class fixup_data_t(builtins.object) | clr_unused(self) | | get(self, *args) -> 'bool' + | 'get_fixup()' + | | get(self, source) -> bool + | @param source (C++: ea_t) | | get_base(self, *args) -> 'ea_t' - | get_base(self) -> ea_t + | Get base of fixup.The target is calculated as 'get_base()' + off. + | 'get_base()' + off 'FIXUPF_REL' | | get_desc(self, *args) -> 'char const *' + | 'get_fixup_desc()' + | | get_desc(self, source) -> char const * + | @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_fixup_value()' + | | get_value(self, ea) -> uval_t + | @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 @@ -10081,34 +10503,49 @@ class fixup_data_t(builtins.object) | is_unused(self) -> bool | | patch_value(self, *args) -> 'bool' + | 'patch_fixup_value()' + | | patch_value(self, ea) -> bool + | @param ea (C++: ea_t) | | set(self, *args) -> 'void' + | 'set_fixup()' + | | set(self, source) + | @param source (C++: ea_t) | | set_base(self, *args) -> 'void' + | Set base of fixup. The target should be set before a call of this + | function. + | | set_base(self, new_base) + | @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 (C++: const segment_t *) | | 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_ (C++: fixup_type_t) | | set_type_and_flags(self, *args) -> 'void' | set_type_and_flags(self, type_, flags_=0) + | @param type_ (C++: fixup_type_t) + | @param flags_ (C++: 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: @@ -10167,9 +10604,6 @@ class fixup_info_t(builtins.object) 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 @@ -10178,61 +10612,45 @@ gen_fix_fixups(*args) -> 'void' 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) + gen_fix_fixups(_from, to, size) + @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) + get_fixup(fd, source) -> bool + @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 &) + get_fixup_desc(source, fd) -> str + @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) -> '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) + get_fixup_handler(type) -> fixup_handler_t const * + @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()' . @@ -10242,76 +10660,73 @@ get_fixup_value(*args) -> 'uval_t' 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) + get_fixup_value(ea, type) -> uval_t + @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) + @retval: operand - value Help on function get_fixups in module ida_fixup: get_fixups(*args) -> 'bool' get_fixups(out, ea, size) -> bool + @param out (C++: fixups_t *) + @param ea (C++: ea_t) + @param size (C++: 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) - @return: the next address with fixup information, or BADADDR + get_next_fixup_ea(ea) -> ea_t + @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) -> 'ea_t' - 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 + get_prev_fixup_ea(ea) -> ea_t + @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) -> 'bool' - is_fixup_custom(type) -> bool - - Is fixup processed by processor module? - - @param type (C++: fixup_type_t) + is_fixup_custom(type) -> bool + @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. '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 &) + patch_fixup_value(ea, fd) -> bool + @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 &) + @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: the fixup source address, i.e. the address modified by - the fixup (C++: ea_t) - @param fd: fixup data (C++: const fixup_data_t &) + set_fixup(source, fd) + @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 @@ -10355,9 +10770,6 @@ class qfile_t(builtins.object) | | __init__(self, *args) | __init__(self, rhs) -> qfile_t - | __init__(self, pycapsule=None) -> qfile_t - | - | | Closes the file | | __repr__ = _swig_repr(self) @@ -10373,8 +10785,6 @@ class qfile_t(builtins.object) | | 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 *' @@ -10385,14 +10795,10 @@ class qfile_t(builtins.object) | | gets(self, *args) -> 'PyObject *' | gets(self, size) -> PyObject * - | - | | Reads a line from the input file. Returns the read line or None | | open(self, *args) -> 'bool' | open(self, filename, mode) -> bool - | - | | Opens a file | | @param filename: the file name @@ -10401,35 +10807,26 @@ 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 | | puts(self, *args) -> 'int' | puts(self, str) -> int + | str: char const * | | read(self, *args) -> 'PyObject *' | read(self, size) -> PyObject * - | - | | Reads from the file. Returns the buffer or None | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * - | - | | Similar to read() but it respect the endianness | | seek(self, *args) -> 'int' | seek(self, offset, whence=SEEK_SET) -> int - | - | | Set input source position | @return: the new position (not 0 as fseek!) | @@ -10438,20 +10835,14 @@ 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 | | writebytes(self, *args) -> 'int' | writebytes(self, py_buf, big_endian) -> int - | - | | Similar to write() but it respect the endianness | | ---------------------------------------------------------------------- @@ -10459,14 +10850,14 @@ class qfile_t(builtins.object) | | from_capsule(*args) -> 'qfile_t *' | from_capsule(pycapsule) -> qfile_t + | pycapsule: PyObject * | | from_fp(*args) -> 'qfile_t *' | from_fp(fp) -> qfile_t + | fp: FILE * | | tmpfile(*args) -> 'qfile_t *' | tmpfile() -> qfile_t - | - | | A static method to construct an instance using a temporary file | | ---------------------------------------------------------------------- @@ -10488,11 +10879,13 @@ 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 + 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 + fp: FILE * Help on function qfile_t_tmpfile in module ida_fpro: @@ -10502,361 +10895,322 @@ qfile_t_tmpfile(*args) -> 'qfile_t *' 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) - @return: success + add_auto_stkpnt(pfn, ea, delta) -> bool + @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) -> '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) + add_frame(pfn, frsize, frregs, argsize) -> bool + @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) + @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 *) - @return: Register variable error codes + add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int + @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) -> '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) - @return: success + add_user_stkpnt(ea, delta) -> bool + @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) -> '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) - @return: length of stack variable name or -1 + build_stkvar_name(pfn, v) -> str + @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) -> '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: 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 *) + build_stkvar_xrefs(out, pfn, mptr) + @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) -> '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) + calc_stkvar_struc_offset(pfn, insn, n) -> ea_t + @param pfn: pointer to function (can't be NULL!) (C++: func_t *) + @param insn: the instruction - an ida_ua.insn_t, or an address (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) -> '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) - @return: success + define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool + @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) -> 'bool' - del_frame(pfn) -> bool - - Delete a function frame. - @param pfn: pointer to function structure (C++: func_t *) - @return: success + del_frame(pfn) -> bool + @param pfn: pointer to function structure (C++: func_t *) + @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 *) - @return: Register variable error codes + del_regvar(pfn, ea1, ea2, canon) -> int + @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) -> '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) - @return: success + del_stkpnt(pfn, ea) -> bool + @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) -> 'int' delete_unreferenced_stkvars(pfn) -> int + @param pfn (C++: 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 (C++: 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_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 + find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t + @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 + + + find_regvar(pfn, ea, canon) -> regvar_t + @param pfn: function in question (C++: func_t *) + ea: ea_t + @param canon: name of a general 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) -> 'ea_t' - frame_off_args(pfn) -> ea_t - - Get starting address of arguments section. - - @param pfn (C++: const func_t *) + frame_off_args(pfn) -> ea_t + @param pfn (C++: const func_t *) 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 *) + frame_off_lvars(pfn) -> ea_t + @param pfn (C++: const func_t *) 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 *) + frame_off_retaddr(pfn) -> ea_t + @param pfn (C++: const func_t *) 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 *) + frame_off_savregs(pfn) -> ea_t + @param pfn (C++: const func_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: 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 + get_effective_spd(pfn, ea) -> sval_t + @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) -> '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 *) + get_frame(pfn) -> struc_t + @param pfn: pointer to function structure (C++: const func_t *) + + + get_frame(ea) -> struc_t * + 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) + get_frame_part(range, pfn, part) + @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) -> '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 *) + get_frame_retsize(pfn) -> int + @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) -> '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: pointer to function structure, may be NULL (C++: const - func_t *) - @return: size of frame in bytes or zero + get_frame_size(pfn) -> asize_t + @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) -> 'ea_t' - 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 + get_func_by_frame(frame_id) -> ea_t + @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) -> 'ea_t' get_min_spd_ea(pfn) -> ea_t + @param pfn (C++: 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. + get_sp_delta(pfn, ea) -> sval_t + @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) -> '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. + get_spd(pfn, ea) -> sval_t + @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) -> 'PyObject *' 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) @@ -10868,77 +11222,29 @@ get_stkvar(*args) -> 'PyObject *' 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) + has_regvar(pfn, ea) -> bool + @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) -> '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 + pfn: func_t const * + 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) + pfn: func_t const * + 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 @@ -10947,7 +11253,10 @@ recalc_spd(*args) -> 'bool' current instruction doesn't pass the execution flow to the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + recalc_spd(cur_ea) -> bool + @param cur_ea: linear address of the current instruction (C++: ea_t) + @retval: 1 - new stkpnt is added + @retval: 0 - nothing is changed Help on class regvar_t in module ida_frame: @@ -10989,43 +11298,66 @@ class regvar_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11054,77 +11386,67 @@ class regvar_t(ida_range.range_t) 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 - *) - @return: Register variable error codes + rename_regvar(pfn, v, user) -> int + @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) -> '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: 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 + set_frame_size(pfn, frsize, frregs, argsize) -> bool + @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) -> '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: 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 + set_purged(ea, nbytes, override_old_value) -> bool + @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) -> '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 *) - @return: Register variable error codes + set_regvar_cmt(pfn, v, cmt) -> int + @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) -> '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) + soff_to_fpoff(pfn, soff) -> sval_t + @param pfn (C++: func_t *) + @param soff (C++: uval_t) Help on class stkpnt_t in module ida_frame: @@ -11135,24 +11457,30 @@ class stkpnt_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: stkpnt_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: stkpnt_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: stkpnt_t const & | | __init__(self, *args) | __init__(self) -> stkpnt_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: stkpnt_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: stkpnt_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: stkpnt_t const & | | __repr__ = _swig_repr(self) | @@ -11161,6 +11489,7 @@ class stkpnt_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11194,24 +11523,30 @@ class stkpnts_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: stkpnts_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: stkpnts_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: stkpnts_t const & | | __init__(self, *args) | __init__(self) -> stkpnts_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: stkpnts_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: stkpnts_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: stkpnts_t const & | | __repr__ = _swig_repr(self) | @@ -11220,6 +11555,7 @@ class stkpnts_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: stkpnts_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11241,15 +11577,13 @@ class stkpnts_t(builtins.object) 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) - @return: success + update_fpd(pfn, fpd) -> bool + @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: @@ -11260,18 +11594,40 @@ class xreflist_entry_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | r: xreflist_entry_t const & | | __init__(self, *args) | __init__(self) -> xreflist_entry_t | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | r: xreflist_entry_t const & + | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 + | r: xreflist_entry_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -11307,13 +11663,15 @@ class xreflist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< xreflist_entry_t > const & | | __getitem__(self, *args) -> 'xreflist_entry_t const &' | __getitem__(self, i) -> xreflist_entry_t + | i: size_t | | __init__(self, *args) | __init__(self) -> xreflist_t - | __init__(self, x) -> xreflist_t + | 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,23 +11681,29 @@ class xreflist_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< xreflist_entry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: xreflist_entry_t const & | | __swig_destroy__ = delete_xreflist_t(...) | delete_xreflist_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: xreflist_entry_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: xreflist_entry_t const & | | at(self, *args) -> 'xreflist_entry_t const &' | at(self, _idx) -> xreflist_entry_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -11363,52 +11727,74 @@ class xreflist_t(builtins.object) | | erase(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | erase(self, it) -> xreflist_entry_t + | it: qvector< xreflist_entry_t >::iterator + | + | | erase(self, first, last) -> xreflist_entry_t + | first: qvector< xreflist_entry_t >::iterator + | 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 + | x: xreflist_entry_t const & + | + | | find(self, x) -> xreflist_entry_t + | x: xreflist_entry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=xreflist_entry_t()) + | x: xreflist_entry_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: xreflist_entry_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: xreflist_entry_t * + | len: size_t | | insert(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | insert(self, it, x) -> xreflist_entry_t + | it: qvector< xreflist_entry_t >::iterator + | x: xreflist_entry_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'xreflist_entry_t &' | push_back(self, x) - | push_back(self) -> xreflist_entry_t + | x: xreflist_entry_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: xreflist_entry_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< xreflist_entry_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -11461,210 +11847,450 @@ variable size 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: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + add_func(ea1, ea2=BADADDR) -> bool + @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) -> '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: ptr to filled function structure (C++: func_t *) - @return: success + add_func_ex(pfn) -> bool + @param pfn: ptr to filled function structure (C++: func_t *) + @return: success Help on function add_regarg in module ida_funcs: add_regarg(*args) -> 'void' add_regarg(pfn, reg, tif, name) + @param pfn (C++: func_t *) + @param reg (C++: int) + @param tif (C++: const tinfo_t &) + @param name (C++: const char *) 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 *) - @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) + append_func_tail(pfn, ea1, ea2) -> bool + @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) -> '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) - @return: Library function codes + apply_idasgn_to(signame, ea, is_startup) -> int + @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) -> '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 *) - @return: true if successfully applied the signature + apply_startup_sig(ea, startup) -> bool + @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) -> 'asize_t' - 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 *) + calc_func_size(pfn) -> asize_t + @param pfn: ptr to function structure (C++: func_t *) 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 + calc_idasgn_state(n) -> int + @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 + calc_thunk_func_target(pfn) -> ea_t + @param pfn: pointer to function (may not be nullptr) (C++: func_t *) + @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) - @return: success + del_func(ea) -> bool + @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) -> '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 + del_idasgn(n) -> int + @param n: number of signature in the list (0.. get_idasgn_qty() -1) + (C++: int) + @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 &↗ + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_ea_array + | _data: unsigned-ea-like-numeric-type *↗ + | _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) + | i: size_t + | 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 + | dyn_ea_array_count_get(self) -> size_t + | + | data + | dyn_ea_array_data_get(self) -> unsigned-ea-like-numeric-type *↗ + | + | 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 + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_range_array + | _data: range_t * + | _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) + | i: size_t + | 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 + | dyn_range_array_count_get(self) -> size_t + | + | data + | dyn_range_array_data_get(self) -> range_t + | + | 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 + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regarg_array + | _data: regarg_t * + | _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) + | i: size_t + | 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 + | dyn_regarg_array_count_get(self) -> size_t + | + | data + | dyn_regarg_array_data_get(self) -> regarg_t + | + | 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 & + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regvar_array + | _data: regvar_t * + | _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) + | i: size_t + | 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 + | dyn_regvar_array_count_get(self) -> size_t + | + | data + | dyn_regvar_array_data_get(self) -> regvar_t * + | + | 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 & + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_stkpnt_array + | _data: stkpnt_t * + | _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) + | i: size_t + | 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 + | dyn_stkpnt_array_count_get(self) -> size_t + | + | data + | dyn_stkpnt_array_data_get(self) -> stkpnt_t * + | + | 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. + + f_any(arg1, arg2) -> bool + arg1: flags_t + 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 \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 + find_func_bounds(nfn, flags) -> int + @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) -> 'bool' - func_contains(pfn, ea) -> bool - - Does the given function contain the given address? - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + func_contains(pfn, ea) -> bool + @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) + func_does_return(callee) -> bool + @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 + fii: func_item_iterator_t * + visited: eavec_t * + p_farref: bool * + out: insn_t * 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 + fii: func_item_iterator_t * + out: insn_t * 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 + fii: func_item_iterator_t * + testf: testf_t * + ud: void * 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 + fii: func_item_iterator_t * + testf: testf_t * + ud: void * Help on class func_item_iterator_t in module ida_funcs: @@ -11675,10 +12301,13 @@ 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 + | pfn: func_t * + | _ea: ea_t | | __next__(self, *args) -> 'bool' | __next__(self, func, ud) -> bool + | func: testf_t * + | ud: void * | | __repr__ = _swig_repr(self) | @@ -11693,9 +12322,13 @@ class func_item_iterator_t(builtins.object) | | decode_preceding_insn(self, *args) -> 'bool' | decode_preceding_insn(self, visited, p_farref, out) -> bool + | @param visited (C++: eavec_t *) + | @param p_farref (C++: bool *) + | @param out (C++: insn_t *) | | decode_prev_insn(self, *args) -> 'bool' | decode_prev_insn(self, out) -> bool + | @param out (C++: insn_t *) | | first(self, *args) -> 'bool' | first(self) -> bool @@ -11722,6 +12355,8 @@ class func_item_iterator_t(builtins.object) | | prev(self, *args) -> 'bool' | prev(self, func, ud) -> bool + | @param func (C++: testf_t *) + | @param ud (C++: void *) | | prev_addr(self, *args) -> 'bool' | prev_addr(self) -> bool @@ -11739,10 +12374,19 @@ class func_item_iterator_t(builtins.object) | prev_not_tail(self) -> bool | | set(self, *args) -> 'bool' + | Set a function range. if pfn == nullptr then a segment range will be + | set. + | | set(self, pfn, _ea=BADADDR) -> bool + | @param pfn (C++: func_t *) + | @param _ea (C++: ea_t) | | set_range(self, *args) -> 'bool' + | Set an arbitrary range. + | | set_range(self, ea1, ea2) -> bool + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11760,6 +12404,8 @@ Help on function func_parent_iterator_set in module ida_funcs: func_parent_iterator_set(*args) -> 'bool' func_parent_iterator_set(fpi, pfn) -> bool + fpi: func_parent_iterator_t * + pfn: func_t * Help on class func_parent_iterator_t in module ida_funcs: @@ -11770,7 +12416,7 @@ class func_parent_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> func_parent_iterator_t - | __init__(self, _fnt) -> func_parent_iterator_t + | _fnt: func_t * | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -11796,9 +12442,11 @@ class func_parent_iterator_t(builtins.object) | | reset_fnt(self, *args) -> 'void' | reset_fnt(self, _fnt) + | @param _fnt (C++: func_t *) | | set(self, *args) -> 'bool' | set(self, _fnt) -> bool + | @param _fnt (C++: func_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11825,16 +12473,25 @@ 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 + | start: ea_t + | end: ea_t + | f: flags_t | | __repr__ = _swig_repr(self) | @@ -11842,16 +12499,16 @@ class func_t(ida_range.range_t) | delete_func_t(self) | | analyzed_sp(self, *args) -> 'bool' - | analyzed_sp(self) -> bool + | Has SP-analysis been performed? | | does_return(self, *args) -> 'bool' - | does_return(self) -> bool + | Does function return? | | 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? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11877,12 +12534,6 @@ class func_t(ida_range.range_t) | 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 | @@ -11890,10 +12541,10 @@ class func_t(ida_range.range_t) | func_t_pntqty_get(self) -> uint32 | | 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 @@ -11902,19 +12553,19 @@ class func_t(ida_range.range_t) | func_t_regargqty_get(self) -> int | | regargs - | func_t_regargs_get(self) -> regarg_t + | __get_regargs__(self) -> dyn_regarg_array | | regvarqty | func_t_regvarqty_get(self) -> int | | regvars - | __get_regvars__(self) -> regvar_array + | __get_regvars__(self) -> dyn_regvar_array | | tailqty | func_t_tailqty_get(self) -> int | | tails - | __get_tails__(self) -> range_array + | __get_tails__(self) -> dyn_range_array | | thisown | The membership flag @@ -11924,43 +12575,66 @@ class func_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11990,16 +12664,22 @@ 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 + 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 + fti: func_tail_iterator_t * + pfn: func_t * + 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 + fti: func_tail_iterator_t * + ea: ea_t Help on class func_tail_iterator_t in module ida_funcs: @@ -12010,7 +12690,8 @@ 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 + | _pfn: func_t * + | ea: ea_t | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -12039,12 +12720,17 @@ class func_tail_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, _pfn, ea=BADADDR) -> bool + | @param _pfn (C++: func_t *) + | @param ea (C++: ea_t) | | set_ea(self, *args) -> 'bool' | set_ea(self, ea) -> bool + | @param ea (C++: ea_t) | | set_range(self, *args) -> 'bool' | set_range(self, ea1, ea2) -> bool + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12061,169 +12747,140 @@ class func_tail_iterator_t(builtins.object) 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: 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. + get_fchunk(ea) -> func_t + @param ea: any address in a function chunk (C++: ea_t) + @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: 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'. + get_fchunk_num(ea) -> int + @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) -> '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 + ea: ea_t + 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. + get_func(ea) -> func_t + @param ea: any address in a function (C++: ea_t) + @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 - @param pfn (C++: const func_t *) + get_func_bitness(pfn) -> int + @param pfn (C++: const func_t *) + @retval: 0 - 16 + @retval: 1 - 32 + @retval: 2 - 64 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 *) + get_func_bits(pfn) -> int + @param pfn (C++: const func_t *) 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 *) + get_func_bytes(pfn) -> int + @param pfn (C++: const func_t *) 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'. - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + get_func_chunknum(pfn, ea) -> int + @param pfn (C++: func_t *) + @param ea (C++: ea_t) + @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 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. + get_func_cmt(pfn, repeatable) -> str + @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) -> 'qstring *' - get_func_name(ea) -> str - - Get function name. - @param ea: any address in the function (C++: ea_t) - @return: length of the function name + get_func_name(ea) -> str + @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) -> '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'. + get_func_num(ea) -> int + @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) -> '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 *) - @return: end address of the last function range (BADADDR-error) + get_func_ranges(ranges, pfn) -> ea_t + @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) -> 'PyObject *' get_idasgn_desc(n) -> PyObject * - - Get information about a signature in the list. It returns: (name of signature, names of optional libraries) @@ -12236,8 +12893,6 @@ 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 information about a signature in the list. It returns: (name of signature, names of optional libraries, number of matches) @@ -12247,173 +12902,140 @@ get_idasgn_desc_with_matches(*args) -> 'PyObject *' 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: short name of a signature (C++: const char *) - @return: size of signature description or -1 + get_idasgn_title(name) -> str + @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) -> '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 + get_next_fchunk(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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 + get_next_func(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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 (C++: func_t *) + @param ea (C++: 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 + get_prev_fchunk(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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 + get_prev_func(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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 (C++: func_t *) + @param ea (C++: 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. + getn_fchunk(n) -> func_t + @param n: number of function chunk, is in range 0.. get_fchunk_qty() + -1 (C++: int) + @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. + getn_func(n) -> func_t + @param n: number of function, is in range 0.. get_func_qty() -1 (C++: + size_t) + @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 *) + is_finally_visible_func(pfn) -> bool + @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 *) + is_func_entry(pfn) -> bool + @param pfn (C++: const func_t *) 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 *) + is_func_locked(pfn) -> bool + @param pfn (C++: const func_t *) 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 *) + is_func_tail(pfn) -> bool + @param pfn (C++: const func_t *) 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) + is_same_func(ea1, ea2) -> bool + @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 *) + is_visible_func(pfn) -> bool + @param pfn (C++: func_t *) Help on class lock_func in module ida_funcs: @@ -12424,6 +13046,7 @@ class lock_func(builtins.object) | | __init__(self, *args) | __init__(self, _pfn) -> lock_func + | _pfn: func_t const * | | __repr__ = _swig_repr(self) | @@ -12445,107 +13068,55 @@ class lock_func(builtins.object) 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 *) - @param lock (C++: bool) + lock_func_range(pfn, lock) + @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) -> '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 + plan_to_apply_idasgn(fname) -> int + @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 read_regargs in module ida_funcs: read_regargs(*args) -> 'void' read_regargs(pfn) + @param pfn (C++: 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: 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) + reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) + @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) -> '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) + reanalyze_noret_flag(ea) -> bool + @param ea (C++: ea_t) Help on class regarg_t in module ida_funcs: @@ -12583,227 +13154,117 @@ class regarg_t(builtins.object) | 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 - 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 *) - @param tail_ea (C++: ea_t) + remove_func_tail(pfn, tail_ea) -> bool + @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) -> '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) + set_func_cmt(pfn, cmt, repeatable) -> bool + @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) -> '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) - @return: success + set_func_end(ea, newend) -> bool + @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) -> 'int' - 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 + set_func_name_if_jumpfunc(pfn, oldname) -> int + @param pfn: pointer to function (may be nullptr) (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 nullptr. (C++: const char + *) + @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) - @return: Function move result codes + set_func_start(ea, newstart) -> int + @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) -> '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 + set_noret_insn(insn_ea, noret) -> 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 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) + set_tail_owner(fnt, func_start) -> bool + @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) -> '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 + set_visible_func(pfn, visible) + @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: any address in the program (C++: ea_t) - @return: Library function codes + try_to_add_libfunc(ea) -> int + @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) -> '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: ptr to function structure (C++: func_t *) - @return: success + update_func(pfn) -> bool + @param pfn: ptr to function structure (C++: func_t *) + @return: success === ida_funcs EPYDOC INJECTIONS === ida_funcs.FIND_FUNC_DEFINE @@ -13053,7 +13514,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) | @@ -13076,112 +13537,95 @@ class FlowChart(builtins.object) 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()' . - @param fname (C++: const char *) - @return: error code from os, 0 if ok + display_gdl(fname) -> int + @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) -> '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 + gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool + @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) -> '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 + gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool + @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) -> 'void' - gen_gdl(g, fname) - - Create GDL file for graph. - - @param g (C++: const gdl_graph_t *) - @param fname (C++: const char *) + gen_gdl(g, fname) + @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) -> '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 + gen_simple_call_chart(filename, wait, title, gflags) -> bool + @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) -> 'bool' - is_noret_block(btype) -> bool - - Does this block never return? - - @param btype (C++: fc_block_type_t) + is_noret_block(btype) -> bool + @param btype (C++: 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) + is_ret_block(btype) -> bool + @param btype (C++: fc_block_type_t) Help on class node_iterator in module ida_gdl: @@ -13192,12 +13636,16 @@ class node_iterator(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool + | n: node_iterator const & | | __init__(self, *args) | __init__(self, _g, n) -> node_iterator + | _g: gdl_graph_t const * + | n: int | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool + | n: node_iterator const & | | __ref__(self, *args) -> 'int' | __ref__(self) -> int @@ -13255,43 +13703,66 @@ class qbasic_block_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -13326,10 +13797,15 @@ class qflow_chart_t(builtins.object) | | __getitem__(self, *args) -> 'qbasic_block_t *' | __getitem__(self, n) -> qbasic_block_t + | n: int | | __init__(self, *args) | __init__(self) -> qflow_chart_t - | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | _title: char const * + | _pfn: func_t * + | _ea1: ea_t + | _ea2: ea_t + | _flags: int | | __repr__ = _swig_repr(self) | @@ -13338,37 +13814,61 @@ class qflow_chart_t(builtins.object) | | append_to_flowchart(self, *args) -> 'void' | append_to_flowchart(self, ea1, ea2) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | calc_block_type(self, *args) -> 'fc_block_type_t' | calc_block_type(self, blknum) -> fc_block_type_t + | @param blknum (C++: size_t) | | create(self, *args) -> 'void' | create(self, _title, _pfn, _ea1, _ea2, _flags) + | @param _title (C++: const char *) + | @param _pfn (C++: func_t *) + | @param _ea1 (C++: ea_t) + | @param _ea2 (C++: ea_t) + | @param _flags (C++: int) + | + | | create(self, _title, ranges, _flags) + | @param _title (C++: const char *) + | ranges: rangevec_t const & + | @param _flags (C++: int) | | get_node_label(self, *args) -> 'char *' | get_node_label(self, arg2, arg3, arg4) -> char * + | arg2: char * + | arg3: int + | arg4: int | | is_noret_block(self, *args) -> 'bool' | is_noret_block(self, blknum) -> bool + | @param blknum (C++: size_t) | | is_ret_block(self, *args) -> 'bool' | is_ret_block(self, blknum) -> bool + | @param blknum (C++: size_t) | | npred(self, *args) -> 'int' | npred(self, node) -> int + | @param node (C++: int) | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int + | @param node (C++: int) | | pred(self, *args) -> 'int' | pred(self, node, i) -> int + | @param node (C++: int) + | @param i (C++: int) | | print_names(self, *args) -> 'bool' | print_names(self) -> bool | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, arg2, arg3) + | arg2: FILE * + | arg3: int | | refresh(self, *args) -> 'void' | refresh(self) @@ -13378,6 +13878,8 @@ class qflow_chart_t(builtins.object) | | succ(self, *args) -> 'int' | succ(self, node, i) -> int + | @param node (C++: int) + | @param i (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13473,6 +13975,11 @@ ida_gdl.FC_APPND multirange flowchart (set by append_to_flowchart) """ +ida_gdl.FC_CALL_ENDS +""" +call instructions terminate basic blocks +""" + ida_gdl.FC_CHKBREAK """ build_qflow_chart() may be aborted by user @@ -13486,9 +13993,9 @@ targets of those outgoing jumps will be present in the flow chart under the form of one-instruction blocks """ -ida_gdl.FC_PREDS +ida_gdl.FC_NOPREDS """ -compute predecessor lists +do not compute predecessor lists """ ida_gdl.FC_PRINT @@ -13661,37 +14168,81 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, view, ve) + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, view, *args) + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, view, *args) + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, view, ve) + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, view) + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, view, key, state) + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, view, now, was) + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, view, ve) + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, view, rt) + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from ida_kernwin.CustomIDAMemo: @@ -13718,7 +14269,10 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_kernwin.View_Hooks: @@ -13741,14 +14295,20 @@ class TPointDouble(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: TPointDouble const & | | __init__(self, *args) | __init__(self) -> TPointDouble - | __init__(self, a, b) -> TPointDouble + | a: double + | b: double + | + | | __init__(self, r) -> TPointDouble + | r: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: TPointDouble const & | | __repr__ = _swig_repr(self) | @@ -13757,12 +14317,14 @@ class TPointDouble(builtins.object) | | add(self, *args) -> 'void' | add(self, r) + | @param r (C++: const TPointDouble &) | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'void' | sub(self, r) + | @param r (C++: const TPointDouble &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13790,106 +14352,88 @@ class TPointDouble(builtins.object) 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) + calc_dist(p, q) -> double + @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) + clr_node_info(gid, node, flags) + @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) -> 'mutable_graph_t *' - create_disasm_graph(ea) -> mutable_graph_t - create_disasm_graph(ranges) -> mutable_graph_t - - Create a graph for the function that contains 'ea'. + create_disasm_graph(ea) -> mutable_graph_t + @param ea (C++: ea_t) - @param ea (C++: ea_t) + + create_disasm_graph(ranges) -> mutable_graph_t + 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 *) - @return: new viewer + create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * + @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) -> 'mutable_graph_t *' - create_mutable_graph(id) -> mutable_graph_t - - Create a new empty graph with given id. - - @param id (C++: uval_t) + create_mutable_graph(id) -> mutable_graph_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) - - @param node (C++: int) - @param lnnum (C++: int) + create_user_graph_place(node, lnnum) -> user_graph_place_t + @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) + del_node_info(gid, 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.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 *) + delete_mutable_graph(g) + @param g (C++: mutable_graph_t *) Help on class edge_info_t in module ida_graph: @@ -13975,14 +14519,20 @@ class edge_layout_point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: edge_layout_point_t const & | | __init__(self, *args) | __init__(self) -> edge_layout_point_t - | __init__(self, r) -> edge_layout_point_t + | r: edge_layout_point_t const & + | + | | __init__(self, _e, _pidx) -> edge_layout_point_t + | _e: edge_t const & + | _pidx: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: edge_layout_point_t const & | | __repr__ = _swig_repr(self) | @@ -13991,6 +14541,7 @@ class edge_layout_point_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | @param r (C++: const edge_layout_point_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14027,6 +14578,7 @@ class edge_segment_t(builtins.object) | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: edge_segment_t const & | | __repr__ = _swig_repr(self) | @@ -14072,16 +14624,20 @@ class edge_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, y) -> bool + | y: edge_t const & | | __init__(self, *args) | __init__(self) -> edge_t - | __init__(self, x, y) -> edge_t + | x: int + | y: int | | __lt__(self, *args) -> 'bool' | __lt__(self, y) -> bool + | y: edge_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, y) -> bool + | y: edge_t const & | | __repr__ = _swig_repr(self) | @@ -14114,37 +14670,29 @@ class edge_t(builtins.object) 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 *) + get_graph_viewer(parent) -> graph_viewer_t * + @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) - @return: success + get_node_info(out, gid, node) -> bool + @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) -> 'mutable_graph_t *' - get_viewer_graph(gv) -> mutable_graph_t - - Get graph object for given custom graph viewer. - - @param gv (C++: graph_viewer_t *) + get_viewer_graph(gv) -> mutable_graph_t + @param gv (C++: graph_viewer_t *) Help on class graph_item_t in module ida_graph: @@ -14208,6 +14756,7 @@ class graph_node_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_node_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14215,19 +14764,32 @@ class graph_node_visitor_t(builtins.object) | delete_graph_node_visitor_t(self) | | is_forbidden_edge(self, *args) -> 'bool' + | Should the edge between 'n' and 'm' be ignored? + | | is_forbidden_edge(self, arg0, arg1) -> bool + | arg0: int + | arg1: int | | is_visited(self, *args) -> 'bool' + | Have we already visited the given node? + | | is_visited(self, n) -> bool + | @param n (C++: int) | | reinit(self, *args) -> 'void' - | reinit(self) + | Reset visited nodes. | | set_visited(self, *args) -> 'void' + | Mark node as visited. + | | set_visited(self, n) + | @param n (C++: int) | | visit_node(self, *args) -> 'int' + | Implements action to take when a node is visited. + | | visit_node(self, arg0) -> int + | arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14252,6 +14814,7 @@ class graph_path_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_path_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14260,9 +14823,11 @@ class graph_path_visitor_t(builtins.object) | | walk_backward(self, *args) -> 'int' | walk_backward(self, arg0) -> int + | arg0: int | | walk_forward(self, *args) -> 'int' | walk_forward(self, arg0) -> int + | arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14293,6 +14858,7 @@ class graph_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14301,9 +14867,13 @@ class graph_visitor_t(builtins.object) | | visit_edge(self, *args) -> 'int' | visit_edge(self, arg2, arg3) -> int + | arg2: edge_t + | arg3: edge_info_t * | | visit_node(self, *args) -> 'int' | visit_node(self, arg2, arg3) -> int + | arg2: int + | arg3: rect_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14359,14 +14929,20 @@ class interval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: interval_t const & | | __init__(self, *args) | __init__(self) -> interval_t - | __init__(self, y0, y1) -> interval_t + | y0: int + | y1: int + | + | | __init__(self, s) -> interval_t + | s: edge_segment_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: interval_t const & | | __repr__ = _swig_repr(self) | @@ -14375,21 +14951,25 @@ class interval_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, x) -> bool + | @param x (C++: int) | | empty(self, *args) -> 'bool' | empty(self) -> bool | | intersect(self, *args) -> 'void' | intersect(self, r) + | @param r (C++: const interval_t &) | | length(self, *args) -> 'int' | length(self) -> int | | make_union(self, *args) -> 'void' | make_union(self, r) + | @param r (C++: const interval_t &) | | move_by(self, *args) -> 'void' | move_by(self, shift) + | @param shift (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14433,9 +15013,12 @@ class mutable_graph_t(builtins.object) | | calc_group_ea(self, *args) -> 'ea_t' | calc_group_ea(self, arg0) -> ea_t + | arg0: intvec_t const & | | change_group_visibility(self, *args) -> 'bool' | change_group_visibility(self, group, expand) -> bool + | @param group (C++: int) + | @param expand (C++: bool) | | clear(self, *args) -> 'void' | clear(self) @@ -14445,88 +15028,115 @@ class mutable_graph_t(builtins.object) | | create_group(self, *args) -> 'int' | create_group(self, nodes) -> int + | @param nodes (C++: const intvec_t &) | | del_custom_layout(self, *args) -> 'void' | del_custom_layout(self) | | delete_group(self, *args) -> 'bool' | delete_group(self, group) -> bool + | @param group (C++: int) | | empty(self, *args) -> 'bool' | empty(self) -> bool | | exists(self, *args) -> 'bool' | exists(self, node) -> bool + | @param node (C++: int) | | 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 + | @param e (C++: edge_t) | | get_first_subgraph_node(self, *args) -> 'int' | get_first_subgraph_node(self, group) -> int + | @param group (C++: 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 (C++: int) + | @param current (C++: int) | | get_node_group(self, *args) -> 'int' | get_node_group(self, node) -> int + | @param node (C++: int) | | get_node_representative(self, *args) -> 'int' | get_node_representative(self, node) -> int + | @param node (C++: int) | | is_collapsed_node(self, *args) -> 'bool' | is_collapsed_node(self, node) -> bool + | @param node (C++: int) | | is_deleted_node(self, *args) -> 'bool' | is_deleted_node(self, node) -> bool + | @param node (C++: int) | | is_displayable_node(self, *args) -> 'bool' | is_displayable_node(self, node) -> bool + | @param node (C++: int) | | is_dot_node(self, *args) -> 'bool' | is_dot_node(self, node) -> bool + | @param node (C++: int) | | is_group_node(self, *args) -> 'bool' | is_group_node(self, node) -> bool + | @param node (C++: int) | | is_simple_node(self, *args) -> 'bool' | is_simple_node(self, node) -> bool + | @param node (C++: int) | | is_subgraph_node(self, *args) -> 'bool' | is_subgraph_node(self, node) -> bool + | @param node (C++: int) | | is_uncollapsed_node(self, *args) -> 'bool' | is_uncollapsed_node(self, node) -> bool + | @param node (C++: int) | | is_user_graph(self, *args) -> 'bool' | is_user_graph(self) -> bool | | is_visible_node(self, *args) -> 'bool' | is_visible_node(self, node) -> bool + | @param node (C++: int) | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, b) -> int + | @param b (C++: int) | | nrect(self, *args) -> 'rect_t &' | nrect(self, n) -> rect_t + | @param n (C++: int) + | + | | nrect(self, n) -> rect_t + | @param n (C++: int) | | nsucc(self, *args) -> 'int' | nsucc(self, b) -> int + | @param b (C++: int) | | pred(self, *args) -> 'int' | pred(self, b, i) -> int + | @param b (C++: int) + | @param i (C++: int) | | predset(self, *args) -> 'intvec_t const &' | predset(self, b) -> intvec_t const & + | @param b (C++: int) | | reset(self, *args) -> 'void' | reset(self) @@ -14536,24 +15146,32 @@ class mutable_graph_t(builtins.object) | | set_deleted_node(self, *args) -> 'void' | set_deleted_node(self, node) + | @param node (C++: int) | | set_edge(self, *args) -> 'bool' | set_edge(self, e, ei) -> bool + | @param e (C++: edge_t) + | @param ei (C++: const edge_info_t *) | | set_graph_groups(self, *args) -> 'void' | set_graph_groups(self) | | set_node_group(self, *args) -> 'void' | set_node_group(self, node, group) + | @param node (C++: int) + | @param group (C++: int) | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, b, i) -> int + | @param b (C++: int) + | @param i (C++: int) | | succset(self, *args) -> 'intvec_t const &' | succset(self, b) -> intvec_t const & + | @param b (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14610,22 +15228,23 @@ class node_info_t(builtins.object) | 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: @@ -14663,13 +15282,15 @@ class node_layout_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< rect_t > const & | | __getitem__(self, *args) -> 'rect_t const &' | __getitem__(self, i) -> rect_t + | i: size_t | | __init__(self, *args) | __init__(self) -> node_layout_t - | __init__(self, x) -> node_layout_t + | 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,23 +15300,29 @@ class node_layout_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< rect_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: rect_t const & | | __swig_destroy__ = delete_node_layout_t(...) | delete_node_layout_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: rect_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: rect_t const & | | at(self, *args) -> 'rect_t const &' | at(self, _idx) -> rect_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -14719,52 +15346,74 @@ class node_layout_t(builtins.object) | | erase(self, *args) -> 'qvector< rect_t >::iterator' | erase(self, it) -> rect_t + | it: qvector< rect_t >::iterator + | + | | erase(self, first, last) -> rect_t + | first: qvector< rect_t >::iterator + | 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 + | x: rect_t const & + | + | | find(self, x) -> rect_t + | x: rect_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rect_t()) + | x: rect_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: rect_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: rect_t * + | len: size_t | | insert(self, *args) -> 'qvector< rect_t >::iterator' | insert(self, it, x) -> rect_t + | it: qvector< rect_t >::iterator + | x: rect_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rect_t &' | push_back(self, x) - | push_back(self) -> rect_t + | x: rect_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: rect_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< rect_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -14806,12 +15455,16 @@ class node_ordering_t(builtins.object) | | node(self, *args) -> 'int' | node(self, _order) -> int + | @param _order (C++: size_t) | | resize(self, *args) -> 'void' | resize(self, n) + | @param n (C++: int) | | set(self, *args) -> 'void' | set(self, _node, num) + | @param _node (C++: int) + | @param num (C++: int) | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -14837,13 +15490,16 @@ class point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: point_t const & | | __init__(self, *args) | __init__(self) -> point_t - | __init__(self, _x, _y) -> point_t + | _x: int + | _y: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: point_t const & | | __repr__ = _swig_repr(self) | @@ -14852,12 +15508,14 @@ class point_t(builtins.object) | | add(self, *args) -> 'point_t &' | add(self, r) -> point_t + | @param r (C++: const point_t &) | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'point_t &' | sub(self, r) -> point_t + | @param r (C++: const point_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14913,9 +15571,11 @@ class pointseq_t(pointvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -14925,18 +15585,24 @@ class pointseq_t(pointvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< point_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: point_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -14960,52 +15626,74 @@ class pointseq_t(pointvec_t) | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t + | it: qvector< point_t >::iterator + | + | | erase(self, first, last) -> point_t + | first: qvector< point_t >::iterator + | 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 + | x: point_t const & + | + | | find(self, x) -> point_t + | x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) + | x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: point_t * + | len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t + | it: qvector< point_t >::iterator + | x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) - | push_back(self) -> point_t + | x: point_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: point_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15033,13 +15721,15 @@ class pointvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t + | i: size_t | | __init__(self, *args) | __init__(self) -> pointvec_t - | __init__(self, x) -> pointvec_t + | 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,23 +15739,29 @@ class pointvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< point_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: point_t const & | | __swig_destroy__ = delete_pointvec_t(...) | delete_pointvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15089,52 +15785,74 @@ class pointvec_t(builtins.object) | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t + | it: qvector< point_t >::iterator + | + | | erase(self, first, last) -> point_t + | first: qvector< point_t >::iterator + | 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 + | x: point_t const & + | + | | find(self, x) -> point_t + | x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) + | x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: point_t * + | len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t + | it: qvector< point_t >::iterator + | x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) - | push_back(self) -> point_t + | x: point_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: point_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15160,16 +15878,20 @@ Help on function pyg_close in module ida_graph: pyg_close(*args) -> 'void' pyg_close(_self) + self: PyObject * Help on function pyg_select_node in module ida_graph: pyg_select_node(*args) -> 'void' pyg_select_node(_self, nid) + self: PyObject * + nid: int Help on function pyg_show in module ida_graph: pyg_show(*args) -> 'bool' pyg_show(_self) -> bool + self: PyObject * Help on class rect_t in module ida_graph: @@ -15180,14 +15902,23 @@ class rect_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: rect_t const & | | __init__(self, *args) | __init__(self) -> rect_t - | __init__(self, l, t, r, b) -> rect_t + | l: int + | t: int + | r: int + | b: int + | + | | __init__(self, p0, p1) -> rect_t + | p0: point_t const & + | p1: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: rect_t const & | | __repr__ = _swig_repr(self) | @@ -15205,30 +15936,37 @@ class rect_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, p) -> bool + | @param p (C++: const point_t &) | | empty(self, *args) -> 'bool' | empty(self) -> bool | | grow(self, *args) -> 'void' | grow(self, delta) + | @param delta (C++: int) | | height(self, *args) -> 'int' | height(self) -> int | | intersect(self, *args) -> 'void' | intersect(self, r) + | @param r (C++: const rect_t &) | | is_intersection_empty(self, *args) -> 'bool' | is_intersection_empty(self, r) -> bool + | @param r (C++: const rect_t &) | | make_union(self, *args) -> 'void' | make_union(self, r) + | @param r (C++: const rect_t &) | | move_by(self, *args) -> 'void' | move_by(self, p) + | @param p (C++: const point_t &) | | move_to(self, *args) -> 'void' | move_to(self, p) + | @param p (C++: const point_t &) | | topleft(self, *args) -> 'point_t' | topleft(self) -> point_t @@ -15268,13 +16006,10 @@ class rect_t(builtins.object) 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 *) + refresh_viewer(gv) + @param gv (C++: graph_viewer_t *) Help on class row_info_t in module ida_graph: @@ -15324,13 +16059,15 @@ class screen_graph_selection_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t + | i: size_t | | __init__(self, *args) | __init__(self) -> screen_graph_selection_base_t - | __init__(self, x) -> screen_graph_selection_base_t + | 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,23 +16077,29 @@ class screen_graph_selection_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15380,52 +16123,74 @@ class screen_graph_selection_base_t(builtins.object) | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | + | | erase(self, first, last) -> selection_item_t + | first: qvector< selection_item_t >::iterator + | 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 + | x: selection_item_t const & + | + | | find(self, x) -> selection_item_t + | x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) + | x: selection_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: selection_item_t * + | len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) - | push_back(self) -> selection_item_t + | x: selection_item_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: selection_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15469,24 +16234,33 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | add(self, *args) -> 'void' | add(self, s) + | @param s (C++: const screen_graph_selection_t &) | | add_node(self, *args) -> 'void' | add_node(self, node) + | @param node (C++: int) | | add_point(self, *args) -> 'void' | add_point(self, e, idx) + | @param e (C++: edge_t) + | @param idx (C++: int) | | del_node(self, *args) -> 'void' | del_node(self, node) + | @param node (C++: int) | | del_point(self, *args) -> 'void' | del_point(self, e, idx) + | @param e (C++: edge_t) + | @param idx (C++: int) | | has(self, *args) -> 'bool' | has(self, item) -> bool + | @param item (C++: const selection_item_t &) | | items_count(self, *args) -> 'size_t' | items_count(self, look_for_nodes) -> size_t + | @param look_for_nodes (C++: bool) | | nodes_count(self, *args) -> 'size_t' | nodes_count(self) -> size_t @@ -15496,6 +16270,7 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | sub(self, *args) -> 'void' | sub(self, s) + | @param s (C++: const screen_graph_selection_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15508,9 +16283,11 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15520,18 +16297,24 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: selection_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15555,49 +16338,70 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | + | | erase(self, first, last) -> selection_item_t + | first: qvector< selection_item_t >::iterator + | 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 + | x: selection_item_t const & + | + | | find(self, x) -> selection_item_t + | x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) + | x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: selection_item_t * + | len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) - | push_back(self) -> selection_item_t + | x: selection_item_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: selection_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15625,18 +16429,28 @@ class selection_item_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: selection_item_t const & | | __init__(self, *args) | __init__(self) -> selection_item_t - | __init__(self, n) -> selection_item_t + | n: int + | + | | __init__(self, _elp) -> selection_item_t + | _elp: edge_layout_point_t & + | + | | __init__(self, e, idx) -> selection_item_t + | e: edge_t + | idx: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: selection_item_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: selection_item_t const & | | __repr__ = _swig_repr(self) | @@ -15645,6 +16459,7 @@ class selection_item_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | @param r (C++: const selection_item_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15675,28 +16490,23 @@ class selection_item_t(builtins.object) 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) + set_node_info(gid, node, ni, flags) + @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) -> '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 *) + set_viewer_graph(gv, g) + @param gv (C++: graph_viewer_t *) + @param g (C++: mutable_graph_t *) Help on class user_graph_place_t in module ida_graph: @@ -15731,34 +16541,26 @@ class user_graph_place_t(builtins.object) 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 *) - @param name: action name (C++: const char *) - @return: success + viewer_attach_menu_item(g, name) -> bool + @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) -> 'void' - viewer_center_on(gv, node) - - Center the graph view on the given node. - - @param gv (C++: graph_viewer_t *) - @param node (C++: int) + viewer_center_on(gv, 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 @@ -15768,151 +16570,123 @@ viewer_create_groups(*args) -> 'bool' 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 &) + viewer_create_groups(gv, out_group_nodes, gi) -> bool + @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) -> '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) + viewer_del_node_info(gv, n) + @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 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) + viewer_delete_groups(gv, groups, new_current=-1) -> bool + @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) -> 'void' - viewer_fit_window(gv) - - Fit graph viewer to its parent form. - - @param gv (C++: graph_viewer_t *) + viewer_fit_window(gv) + @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 *) + viewer_get_curnode(gv) -> int + @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) + viewer_get_gli(out, gv, flags=0) -> bool + @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) + viewer_get_node_info(gv, out, n) -> bool + @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 *) + viewer_get_selection(gv, sgs) -> bool + @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 *) - @param flags (C++: uint32) + viewer_set_gli(gv, gli, flags=0) + @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) -> '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 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) + viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool + @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) -> '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 &) - @param flags (C++: uint32) + viewer_set_node_info(gv, n, ni, flags) + @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) -> '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) + viewer_set_titlebar_height(gv, height) -> int + @param gv (C++: graph_viewer_t *) + @param height (C++: int) === ida_graph EPYDOC INJECTIONS === ida_graph.GLICTL_CENTER @@ -15939,27 +16713,27 @@ slowing down significantly (see MAX_VISIBLE_NODE_AREA) ida_graph.NIF_BG_COLOR """ - 'node_info_t::bg_color' +'node_info_t::bg_color' """ ida_graph.NIF_EA """ - 'node_info_t::ea' +'node_info_t::ea' """ ida_graph.NIF_FLAGS """ - 'node_info_t::flags' +'node_info_t::flags' """ ida_graph.NIF_FRAME_COLOR """ - 'node_info_t::frame_color' +'node_info_t::frame_color' """ ida_graph.NIF_TEXT """ - 'node_info_t::text' +'node_info_t::text' """ === ida_graph EPYDOC INJECTIONS END === Help on class DecompilationFailure in module ida_hexrays: @@ -16048,6 +16822,7 @@ class Hexrays_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> Hexrays_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -16055,103 +16830,243 @@ class Hexrays_Hooks(builtins.object) | delete_Hexrays_Hooks(self) | | close_pseudocode(self, *args) -> 'int' + | Pseudocode view is being closed. + | | close_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | cmt_changed(self, *args) -> 'int' + | Comment got changed. + | | cmt_changed(self, cfunc, loc, cmt) -> int + | @param cfunc (C++: cfunc_t *) + | @param loc (C++: const treeloc_t *) + | @param cmt (C++: const char *) | | combine(self, *args) -> 'int' + | Trying to combine instructions of basic block. + | | combine(self, blk, insn) -> int + | @param blk (C++: mblock_t *) + | @param insn: Should return: 1 if combined the current instruction with + | a preceding one (C++: minsn_t *) | | create_hint(self, *args) -> 'PyObject *' + | Create a hint for the current item. + | | create_hint(self, vu) -> PyObject * + | @param vu (C++: vdui_t *) | | curpos(self, *args) -> 'int' + | Current cursor position has been changed. (for example, by left- + | clicking or using keyboard) + | | curpos(self, vu) -> int + | @param vu (C++: vdui_t *) | | double_click(self, *args) -> 'int' + | Mouse double click. + | | double_click(self, vu, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | dump_state(self, *args) -> 'qstring' | dump_state(self) -> qstring | | flowchart(self, *args) -> 'int' + | Flowchart has been generated. + | | flowchart(self, fc) -> int + | @param fc (C++: qflow_chart_t *) | | func_printed(self, *args) -> 'int' + | Function text has been generated. Plugins may modify the text in + | 'cfunc_t::sv' . + | | func_printed(self, cfunc) -> int + | @param cfunc (C++: cfunc_t *) | | glbopt(self, *args) -> 'int' + | Global optimization has been finished. If microcode is modified, + | MERR_LOOP must be returned. It will cause a complete restart of the + | optimization. + | | glbopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | interr(self, *args) -> 'int' + | Internal error has occurred. + | | interr(self, errcode) -> int + | @param errcode (C++: int ) | | keyboard(self, *args) -> 'int' + | Keyboard has been hit. + | | keyboard(self, vu, key_code, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param key_code: VK_... (C++: int) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | locopt(self, *args) -> 'int' + | Basic block level optimization has been finished. + | | locopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | lvar_cmt_changed(self, *args) -> 'int' + | Local variable comment got changed. + | | lvar_cmt_changed(self, vu, v, cmt) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param cmt: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | char *) | | lvar_mapping_changed(self, *args) -> 'int' + | Local variable mapping got changed. + | | lvar_mapping_changed(self, vu, frm, to) -> int + | @param vu (C++: vdui_t *) + | @param frm (C++: lvar_t *) + | @param to: Please note that it is possible to read/write user settings + | for lvars directly from the idb. (C++: lvar_t *) | | lvar_name_changed(self, *args) -> 'int' + | Local variable got renamed. + | | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param name (C++: const char *) + | @param is_user_name: Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | (C++: bool) | | lvar_type_changed(self, *args) -> 'int' + | Local variable type got changed. + | | lvar_type_changed(self, vu, v, tinfo) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param tinfo: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | tinfo_t *) | | maturity(self, *args) -> 'int' + | Ctree maturity level is being changed. + | | maturity(self, cfunc, new_maturity) -> int + | @param cfunc (C++: cfunc_t *) + | @param new_maturity (C++: ctree_maturity_t) | | microcode(self, *args) -> 'int' + | Microcode has been generated. + | | microcode(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | open_pseudocode(self, *args) -> 'int' + | New pseudocode view has been opened. + | | open_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | populating_popup(self, *args) -> 'int' + | Populating popup menu. We can add menu items now. + | | populating_popup(self, widget, popup_handle, vu) -> int + | @param widget (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param vu (C++: vdui_t *) | | prealloc(self, *args) -> 'int' + | Local variables: preallocation step begins. + | | prealloc(self, mba) -> int + | @param mba: This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error + | codes error codes (C++: mba_t *) | | preoptimized(self, *args) -> 'int' + | Microcode has been preoptimized. + | | preoptimized(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | print_func(self, *args) -> 'int' + | Printing ctree and generating text. + | | print_func(self, cfunc, vp) -> int + | @param cfunc (C++: cfunc_t *) + | @param vp: Returns: 1 if text has been generated by the plugin (C++: + | vc_printer_t *) | | prolog(self, *args) -> 'int' + | Prolog analysis has been finished. + | | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | @param mba (C++: mba_t *) + | @param fc (C++: qflow_chart_t *) + | @param reachable_blocks (C++: bitset_t *) + | @param decomp_flags: return Microcode error codes code (C++: int) | | refresh_pseudocode(self, *args) -> 'int' + | Existing pseudocode text has been refreshed. Adding/removing + | pseudocode lines is forbidden in this event. + | | refresh_pseudocode(self, vu) -> int + | @param vu: See also hxe_text_ready, which happens earlier (C++: + | vdui_t *) | | resolve_stkaddrs(self, *args) -> 'int' + | The optimizer is about to resolve stack addresses. + | | resolve_stkaddrs(self, mba) -> int + | @param mba (C++: mba_t *) | | right_click(self, *args) -> 'int' + | Mouse right click. Use hxe_populating_popup instead, in case you want + | to add items in the popup menu. + | | right_click(self, vu) -> int + | @param vu (C++: vdui_t *) | | stkpnts(self, *args) -> 'int' + | SP change points have been calculated. + | | stkpnts(self, mba, _sps) -> int + | @param mba (C++: mba_t *) + | _sps: stkpnts_t * | | structural(self, *args) -> 'int' + | Structural analysis has been finished. + | | structural(self, ct) -> int + | @param ct (C++: control_graph_t *) | | switch_pseudocode(self, *args) -> '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. + | | switch_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | text_ready(self, *args) -> 'int' + | Decompiled text is ready. + | | text_ready(self, vu) -> int + | @param vu: This event can be used to modify the output text (sv). The + | text uses regular color codes (see lines.hpp) COLOR_ADDR is + | used to store pointers to ctree elements (C++: vdui_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -16182,51 +17097,116 @@ class __cbhooks_t(Hexrays_Hooks) | | __init__(self, callback) | __init__(self, _flags=0) -> Hexrays_Hooks + | _flags: uint32 | | close_pseudocode(self, *args) + | Pseudocode view is being closed. + | | close_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | create_hint(self, *args) + | Create a hint for the current item. + | | create_hint(self, vu) -> PyObject * + | @param vu (C++: vdui_t *) | | curpos(self, *args) + | Current cursor position has been changed. (for example, by left- + | clicking or using keyboard) + | | curpos(self, vu) -> int + | @param vu (C++: vdui_t *) | | double_click(self, *args) + | Mouse double click. + | | double_click(self, vu, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | func_printed(self, *args) + | Function text has been generated. Plugins may modify the text in + | 'cfunc_t::sv' . + | | func_printed(self, cfunc) -> int + | @param cfunc (C++: cfunc_t *) | | interr(self, *args) + | Internal error has occurred. + | | interr(self, errcode) -> int + | @param errcode (C++: int ) | | keyboard(self, *args) + | Keyboard has been hit. + | | keyboard(self, vu, key_code, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param key_code: VK_... (C++: int) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | maturity(self, *args) + | Ctree maturity level is being changed. + | | maturity(self, cfunc, new_maturity) -> int + | @param cfunc (C++: cfunc_t *) + | @param new_maturity (C++: ctree_maturity_t) | | open_pseudocode(self, *args) + | New pseudocode view has been opened. + | | open_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | populating_popup(self, *args) + | Populating popup menu. We can add menu items now. + | | populating_popup(self, widget, popup_handle, vu) -> int + | @param widget (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param vu (C++: vdui_t *) | | print_func(self, *args) + | Printing ctree and generating text. + | | print_func(self, cfunc, vp) -> int + | @param cfunc (C++: cfunc_t *) + | @param vp: Returns: 1 if text has been generated by the plugin (C++: + | vc_printer_t *) | | refresh_pseudocode(self, *args) + | Existing pseudocode text has been refreshed. Adding/removing + | pseudocode lines is forbidden in this event. + | | refresh_pseudocode(self, vu) -> int + | @param vu: See also hxe_text_ready, which happens earlier (C++: + | vdui_t *) | | right_click(self, *args) + | Mouse right click. Use hxe_populating_popup instead, in case you want + | to add items in the popup menu. + | | right_click(self, vu) -> int + | @param vu (C++: vdui_t *) | | switch_pseudocode(self, *args) + | Existing pseudocode view has been reloaded with a new function. Its + | text has not been refreshed yet, only cfunc and mba pointers are + | ready. + | | switch_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | text_ready(self, *args) + | Decompiled text is ready. + | | text_ready(self, vu) -> int + | @param vu: This event can be used to modify the output text (sv). The + | text uses regular color codes (see lines.hpp) COLOR_ADDR is + | used to store pointers to ctree elements (C++: vdui_t *) | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -16244,58 +17224,134 @@ class __cbhooks_t(Hexrays_Hooks) | delete_Hexrays_Hooks(self) | | cmt_changed(self, *args) -> 'int' + | Comment got changed. + | | cmt_changed(self, cfunc, loc, cmt) -> int + | @param cfunc (C++: cfunc_t *) + | @param loc (C++: const treeloc_t *) + | @param cmt (C++: const char *) | | combine(self, *args) -> 'int' + | Trying to combine instructions of basic block. + | | combine(self, blk, insn) -> int + | @param blk (C++: mblock_t *) + | @param insn: Should return: 1 if combined the current instruction with + | a preceding one (C++: minsn_t *) | | dump_state(self, *args) -> 'qstring' | dump_state(self) -> qstring | | flowchart(self, *args) -> 'int' + | Flowchart has been generated. + | | flowchart(self, fc) -> int + | @param fc (C++: qflow_chart_t *) | | glbopt(self, *args) -> 'int' + | Global optimization has been finished. If microcode is modified, + | MERR_LOOP must be returned. It will cause a complete restart of the + | optimization. + | | glbopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | locopt(self, *args) -> 'int' + | Basic block level optimization has been finished. + | | locopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | lvar_cmt_changed(self, *args) -> 'int' + | Local variable comment got changed. + | | lvar_cmt_changed(self, vu, v, cmt) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param cmt: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | char *) | | lvar_mapping_changed(self, *args) -> 'int' + | Local variable mapping got changed. + | | lvar_mapping_changed(self, vu, frm, to) -> int + | @param vu (C++: vdui_t *) + | @param frm (C++: lvar_t *) + | @param to: Please note that it is possible to read/write user settings + | for lvars directly from the idb. (C++: lvar_t *) | | lvar_name_changed(self, *args) -> 'int' + | Local variable got renamed. + | | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param name (C++: const char *) + | @param is_user_name: Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | (C++: bool) | | lvar_type_changed(self, *args) -> 'int' + | Local variable type got changed. + | | lvar_type_changed(self, vu, v, tinfo) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param tinfo: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | tinfo_t *) | | microcode(self, *args) -> 'int' + | Microcode has been generated. + | | microcode(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | prealloc(self, *args) -> 'int' + | Local variables: preallocation step begins. + | | prealloc(self, mba) -> int + | @param mba: This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error + | codes error codes (C++: mba_t *) | | preoptimized(self, *args) -> 'int' + | Microcode has been preoptimized. + | | preoptimized(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | prolog(self, *args) -> 'int' + | Prolog analysis has been finished. + | | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | @param mba (C++: mba_t *) + | @param fc (C++: qflow_chart_t *) + | @param reachable_blocks (C++: bitset_t *) + | @param decomp_flags: return Microcode error codes code (C++: int) | | resolve_stkaddrs(self, *args) -> 'int' + | The optimizer is about to resolve stack addresses. + | | resolve_stkaddrs(self, mba) -> int + | @param mba (C++: mba_t *) | | stkpnts(self, *args) -> 'int' + | SP change points have been calculated. + | | stkpnts(self, mba, _sps) -> int + | @param mba (C++: mba_t *) + | _sps: stkpnts_t * | | structural(self, *args) -> 'int' + | Structural analysis has been finished. + | | structural(self, ct) -> int + | @param ct (C++: control_graph_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -16317,40 +17373,58 @@ 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) + 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 + 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 + 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 + 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 + 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 + 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 + e: cexpr_t * Help on function _ll_new_block in module ida_hexrays: @@ -16365,32 +17439,27 @@ _map_as_dict(maptype, name, keytype, valuetype) 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) + accepts_small_udts(op) -> bool + @param op (C++: ctype_t) Help on function accepts_udts in module ida_hexrays: accepts_udts(*args) -> 'bool' accepts_udts(op) -> bool + @param op (C++: 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) + arglocs_overlap(loc1, w1, loc2, w2) -> bool + @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: @@ -16401,13 +17470,15 @@ class array_of_bitsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< bitset_t > const & | | __getitem__(self, *args) -> 'bitset_t const &' | __getitem__(self, i) -> bitset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_bitsets - | __init__(self, x) -> array_of_bitsets + | 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,23 +17488,29 @@ class array_of_bitsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< bitset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: bitset_t const & | | __swig_destroy__ = delete_array_of_bitsets(...) | delete_array_of_bitsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: bitset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: bitset_t const & | | at(self, *args) -> 'bitset_t const &' | at(self, _idx) -> bitset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -16457,52 +17534,74 @@ class array_of_bitsets(builtins.object) | | erase(self, *args) -> 'qvector< bitset_t >::iterator' | erase(self, it) -> bitset_t + | it: qvector< bitset_t >::iterator + | + | | erase(self, first, last) -> bitset_t + | first: qvector< bitset_t >::iterator + | 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 + | x: bitset_t const & + | + | | find(self, x) -> bitset_t + | x: bitset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bitset_t()) + | x: bitset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: bitset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: bitset_t * + | len: size_t | | insert(self, *args) -> 'qvector< bitset_t >::iterator' | insert(self, it, x) -> bitset_t + | it: qvector< bitset_t >::iterator + | x: bitset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bitset_t &' | push_back(self, x) - | push_back(self) -> bitset_t + | x: bitset_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: bitset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< bitset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16533,13 +17632,15 @@ class array_of_ivlsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< ivlset_t > const & | | __getitem__(self, *args) -> 'ivlset_t const &' | __getitem__(self, i) -> ivlset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_ivlsets - | __init__(self, x) -> array_of_ivlsets + | 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,23 +17650,29 @@ class array_of_ivlsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< ivlset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: ivlset_t const & | | __swig_destroy__ = delete_array_of_ivlsets(...) | delete_array_of_ivlsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: ivlset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: ivlset_t const & | | at(self, *args) -> 'ivlset_t const &' | at(self, _idx) -> ivlset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -16589,52 +17696,74 @@ class array_of_ivlsets(builtins.object) | | erase(self, *args) -> 'qvector< ivlset_t >::iterator' | erase(self, it) -> ivlset_t + | it: qvector< ivlset_t >::iterator + | + | | erase(self, first, last) -> ivlset_t + | first: qvector< ivlset_t >::iterator + | 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 + | x: ivlset_t const & + | + | | find(self, x) -> ivlset_t + | x: ivlset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ivlset_t()) + | x: ivlset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: ivlset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: ivlset_t * + | len: size_t | | insert(self, *args) -> 'qvector< ivlset_t >::iterator' | insert(self, it, x) -> ivlset_t + | it: qvector< ivlset_t >::iterator + | x: ivlset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ivlset_t &' | push_back(self, x) - | push_back(self) -> ivlset_t + | x: ivlset_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: ivlset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< ivlset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16659,27 +17788,22 @@ class array_of_ivlsets(builtins.object) 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) + asgop(cop) -> ctype_t + @param cop (C++: 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) - @return: cot_empty is the input operator is not an assignment - operator. + asgop_revert(cop) -> ctype_t + @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: @@ -16690,6 +17814,8 @@ class bit_bound_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0, s=0) -> bit_bound_t + | n: int + | s: int | | __repr__ = _swig_repr(self) | @@ -16723,29 +17849,35 @@ class bitset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: bitset_t const & | | __init__(self, *args) | __init__(self) -> bitset_t - | __init__(self, m) -> bitset_t + | m: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: bitset_t const & | | __repr__ = _swig_repr(self) | @@ -16754,30 +17886,41 @@ class bitset_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, bit) -> bool + | @param bit (C++: int) + | + | | add(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | add(self, ml) -> bool + | 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 + | r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t + | @param m (C++: const bitset_t &) | | count(self, *args) -> 'int' | count(self) -> int - | count(self, bit) -> int + | bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool + | @param maxbit (C++: int) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -16786,57 +17929,81 @@ 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 (C++: int) | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool + | @param bit (C++: int) | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | inc(self, *args) -> 'void' | inc(self, p, n=1) + | @param p (C++: iterator &) + | @param n (C++: int) | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | itat(self, *args) -> 'bitset_t::iterator' - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | @param n (C++: int) | | itv(self, *args) -> 'int' | itv(self, it) -> int + | it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) + | @param shift (C++: int) | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool + | @param bit (C++: int) + | + | | sub(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | sub(self, ml) -> bool + | ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: bitset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16858,93 +18025,69 @@ class bitset_t(builtins.object) 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_begin(set) -> block_chains_iterator_t + @param set (C++: const block_chains_t *) 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 *) + block_chains_clear(set) + @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_end(set) -> block_chains_iterator_t + @param set (C++: const block_chains_t *) 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) + block_chains_erase(set, p) + @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 *) - @param val (C++: const chain_t &) + block_chains_find(set, val) -> block_chains_iterator_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) -> 'void' - block_chains_free(set) - - Delete 'block_chains_t' instance. - - @param set (C++: block_chains_t *) + block_chains_free(set) + @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) + block_chains_get(p) -> chain_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' . - - @param set (C++: block_chains_t *) - @param val (C++: const chain_t &) + block_chains_insert(set, val) -> block_chains_iterator_t + @param set (C++: block_chains_t *) + @param val (C++: const chain_t &) Help on class block_chains_iterator_t in module ida_hexrays: @@ -16955,12 +18098,14 @@ class block_chains_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: block_chains_iterator_t const & | | __init__(self, *args) | __init__(self) -> block_chains_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: block_chains_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -16990,43 +18135,31 @@ class block_chains_iterator_t(builtins.object) 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) + block_chains_next(p) -> 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) + block_chains_prev(p) -> 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' . - - @param set (C++: block_chains_t *) + block_chains_size(set) -> size_t + @param set (C++: block_chains_t *) Help on class block_chains_t in module ida_hexrays: @@ -17050,18 +18183,50 @@ class block_chains_t(builtins.object) | dstr(self) -> char const * | | get_chain(self, *args) -> 'chain_t *' + | Get chain for the specified value offset. + | | get_chain(self, k, width=1) -> chain_t + | @param k: value offset (register number or stack offset) (C++: const + | voff_t &) + | @param width: size of value in bytes (C++: int) + | + | | get_chain(self, k, width=1) -> chain_t + | @param k: value offset (register number or stack offset) (C++: const + | voff_t &) + | @param width: size of value in bytes (C++: int) + | + | | get_chain(self, ch) -> chain_t + | ch: chain_t const & + | + | | get_chain(self, ch) -> chain_t + | ch: chain_t const & | | get_reg_chain(self, *args) -> 'chain_t *' + | Get chain for the specified register + | | get_reg_chain(self, reg, width=1) -> chain_t + | @param reg: register number (C++: mreg_t) + | @param width: size of register in bytes (C++: int) + | + | | get_reg_chain(self, reg, width=1) -> chain_t + | @param reg: register number (C++: mreg_t) + | @param width: size of register in bytes (C++: int) | | get_stk_chain(self, *args) -> 'chain_t *' + | Get chain for the specified stack offset + | | get_stk_chain(self, off, width=1) -> chain_t + | @param off: stack offset (C++: sval_t) + | @param width: size of stack value in bytes (C++: int) + | + | | get_stk_chain(self, off, width=1) -> chain_t + | @param off: stack offset (C++: sval_t) + | @param width: size of stack value in bytes (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17084,10 +18249,11 @@ class block_chains_vec_t(builtins.object) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t + | i: size_t | | __init__(self, *args) | __init__(self) -> block_chains_vec_t - | __init__(self, x) -> block_chains_vec_t + | 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,12 +18265,15 @@ class block_chains_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -17128,7 +18297,12 @@ class block_chains_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | + | | erase(self, first, last) -> block_chains_t + | first: qvector< block_chains_t >::iterator + | last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -17138,35 +18312,47 @@ class block_chains_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) + | x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: block_chains_t * + | len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) - | push_back(self) -> block_chains_t + | x: block_chains_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: block_chains_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< block_chains_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -17186,94 +18372,70 @@ class block_chains_vec_t(builtins.object) 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_begin(map) -> boundaries_iterator_t + @param map (C++: const boundaries_t *) Help on function boundaries_clear in module ida_hexrays: boundaries_clear(*args) -> 'void' - boundaries_clear(map) - - Clear boundaries_t. - - @param map (C++: boundaries_t *) + boundaries_clear(map) + @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_end(map) -> boundaries_iterator_t + @param map (C++: const boundaries_t *) 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) + boundaries_erase(map, p) + @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 *&) + boundaries_find(map, key) -> boundaries_iterator_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) -> 'cinsn_t *const &' - boundaries_first(p) -> cinsn_t - - Get reference to the current map key. - - @param p (C++: boundaries_iterator_t) + boundaries_first(p) -> cinsn_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 *) + boundaries_free(map) + @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 *&) - @param val (C++: const rangeset_t &) + boundaries_insert(map, key, val) -> boundaries_iterator_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: @@ -17284,12 +18446,14 @@ class boundaries_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: boundaries_iterator_t const & | | __init__(self, *args) | __init__(self) -> boundaries_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: boundaries_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -17319,54 +18483,39 @@ class boundaries_iterator_t(builtins.object) 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) + boundaries_next(p) -> 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) + boundaries_prev(p) -> 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) + boundaries_second(p) -> rangeset_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 *) + boundaries_size(map) -> size_t + @param map (C++: boundaries_t *) Help on class boundaries_t in module ida_hexrays: @@ -17377,9 +18526,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 +18546,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 +18582,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 +18597,36 @@ 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 + | _Keyval: cinsn_t *const & | | begin lambda self, *args | @@ -17521,24 +18715,30 @@ class carg_t(cexpr_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: carg_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: carg_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: carg_t const & | | __init__(self, *args) | __init__(self) -> carg_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: carg_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: carg_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: carg_t const & | | __repr__ = _swig_repr(self) | @@ -17547,9 +18747,11 @@ class carg_t(cexpr_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: carg_t const & | | consume_cexpr(self, *args) -> 'void' | consume_cexpr(self, e) + | @param e (C++: cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17618,119 +18820,194 @@ class carg_t(cexpr_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | _v: char * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) + | _v: char * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t + | @param r (C++: const cexpr_t &) | | calc_type(self, *args) -> 'void' + | Calculate the type of the expression. Use this function to calculate + | the expression type when a new expression is built + | | calc_type(self, recursive) + | @param recursive: if true, types of all children expression will be + | calculated before calculating our type (C++: bool) | | 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' + | Does the expression contain a comma operator? + | | contains_comma(self, times=1) -> bool + | @param times (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' + | Does the expression contain a comma operator or an embedded statement + | operator or a label? + | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | @param maxcommas (C++: int) | | contains_insn(self, *args) -> 'bool' + | Does the expression contain an embedded statement operator? + | | contains_insn(self, times=1) -> bool + | @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' + | Check if the expression contains the specified operator. + | | contains_operator(self, needed_op, times=1) -> bool + | @param needed_op: operator code to search for (C++: ctype_t) + | @param times: how many times the operator code should be present (C++: + | int) + | @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? | | equal_effect(self, *args) -> '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. + | | equal_effect(self, r) -> bool + | @param r: the expression to compare against the current expression + | (C++: const cexpr_t &) + | @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 the operand with a numeric value. | | find_op(self, *args) -> 'cexpr_t *' + | Find the child with the specified operator. + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) + | + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) | | get_1num_op(self, *args) -> 'bool' + | Get pointers to operands. at last one operand should be a number o1 + | will be pointer to the number + | | get_1num_op(self, o1, o2) -> bool + | @param o1 (C++: cexpr_t **) + | @param o2 (C++: cexpr_t **) | | get_const_value(self, *args) -> 'bool' - | get_const_value(self) -> bool + | Get expression value. | | 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 argument? + | | is_call_arg_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is a call argument of the specified + | parent expression. | | is_call_object_of(self, *args) -> 'bool' + | Is call object? + | | is_call_object_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is the call object of the specified + | parent expression. | | is_child_of(self, *args) -> 'bool' + | Verify if the specified item is our parent. + | | is_child_of(self, parent) -> bool + | @param parent: possible parent item (C++: const citem_t *) + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' + | Check if the expression is a number with the specified value. + | | is_const_value(self, _v) -> bool + | @param _v (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -17742,28 +19019,30 @@ class carg_t(cexpr_t) | 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 @@ -17772,38 +19051,63 @@ class carg_t(cexpr_t) | 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' + | Print expression into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | put_number(self, *args) -> 'void' + | Assign a number to the expression. + | | put_number(self, func, value, nbytes, sign=no_sign) + | @param func: current function (C++: cfunc_t *) + | @param value: number value (C++: uint64) + | @param nbytes: size of the number in bytes (C++: int) + | @param sign: number sign (C++: type_sign_t) | | requires_lvalue(self, *args) -> 'bool' + | Check if the expression requires an lvalue. + | | requires_lvalue(self, child) -> bool + | @param child: The function will check if this child of our expression + | must be an lvalue. (C++: const cexpr_t *) + | @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) + | v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: cexpr_t &) | | theother(self, *args) -> 'cexpr_t *' + | Get the other operand. This function returns the other operand (not + | the specified one) for binary expressions. + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) + | + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from cexpr_t: @@ -17883,22 +19187,37 @@ class carg_t(cexpr_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | 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 (C++: ea_t) | | find_parent_of(self, *args) -> 'citem_t *' + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) -> 'bool' - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -17951,25 +19270,32 @@ class carglist_t(qvector_carg_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: carglist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: carglist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: carglist_t const & | | __init__(self, *args) | __init__(self) -> carglist_t - | __init__(self, ftype, fl=0) -> carglist_t + | ftype: tinfo_t const & + | fl: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: carglist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: carglist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: carglist_t const & | | __repr__ = _swig_repr(self) | @@ -17978,6 +19304,7 @@ class carglist_t(qvector_carg_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: carglist_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18001,6 +19328,7 @@ class carglist_t(qvector_carg_t) | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18010,19 +19338,24 @@ class carglist_t(qvector_carg_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: carg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | at = __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18046,52 +19379,74 @@ class carglist_t(qvector_carg_t) | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t + | it: qvector< carg_t >::iterator + | + | | erase(self, first, last) -> carg_t + | first: qvector< carg_t >::iterator + | 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 + | x: carg_t const & + | + | | find(self, x) -> carg_t + | x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) + | x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: carg_t * + | len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t + | it: qvector< carg_t >::iterator + | x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: carg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18119,25 +19474,35 @@ class casm_t(ida_pro.eavec_t)↗ | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: casm_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: casm_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: casm_t const & | | __init__(self, *args) | __init__(self, ea) -> casm_t + | ea: ea_t + | + | | __init__(self, r) -> casm_t + | r: casm_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: casm_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: casm_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: casm_t const & | | __repr__ = _swig_repr(self) | @@ -18146,6 +19511,7 @@ class casm_t(ida_pro.eavec_t)↗ | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: casm_t const & | | one_insn(self, *args) -> 'bool' | one_insn(self) -> bool @@ -18166,6 +19532,7 @@ 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 &↗ + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18175,19 +19542,24 @@ class casm_t(ida_pro.eavec_t)↗ | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: unsigned-ea-like-numeric-type const &↗ | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | append = push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ | push_back(self, x) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | x: unsigned-ea-like-numeric-type const &↗ | | at = __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18211,49 +19583,70 @@ 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↗ + | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | 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↗ + | x: unsigned-ea-like-numeric-type const &↗ + | + | | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | x: unsigned-ea-like-numeric-type const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: unsigned-ea-like-numeric-type *↗ + | len: size_t | | insert(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | 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) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | x: unsigned-ea-like-numeric-type const &↗ | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned-ea-like-numeric-type const &↗ + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< unsigned-ea-like-numeric-type > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -18267,35 +19660,6 @@ 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) @@ -18310,29 +19674,30 @@ class cblock_t(qlist_cinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cblock_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cblock_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | 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 + | r: cblock_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cblock_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cblock_t const & | | __repr__ = _swig_repr(self) | @@ -18342,23 +19707,9 @@ 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) + | r: cblock_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18374,9 +19725,25 @@ class cblock_t(qlist_cinsn_t) | ---------------------------------------------------------------------- | Methods inherited from qlist_cinsn_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 + | 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) + | i: size_t + | v: cinsn_t const & + | + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qlist_cinsn_t_iterator' | begin(self) -> qlist_cinsn_t_iterator @@ -18392,12 +19759,42 @@ class cblock_t(qlist_cinsn_t) | | erase(self, *args) -> 'void' | erase(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | erase(self, p1, p2) + | p1: qlist< cinsn_t >::iterator + | p2: qlist< cinsn_t >::iterator + | + | | erase(self, p) + | p: qlist_cinsn_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) -> 'qlist_cinsn_t_iterator' + | insert(self, p, x) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | x: cinsn_t const & + | + | + | insert(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | + | insert(self, i, v) + | i: size_t + | v: cinsn_t const & + | + | + | insert(self, p, x) -> qlist_cinsn_t_iterator + | p: qlist_cinsn_t_iterator + | x: cinsn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) @@ -18407,15 +19804,20 @@ class cblock_t(qlist_cinsn_t) | | push_back(self, *args) -> 'cinsn_t &' | push_back(self, x) - | push_back(self) -> cinsn_t + | x: cinsn_t const & | | push_front(self, *args) -> 'void' | push_front(self, x) + | 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 + | 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,6 +19827,7 @@ class cblock_t(qlist_cinsn_t) | | swap(self, *args) -> 'void' | swap(self, x) + | x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from qlist_cinsn_t: @@ -18450,24 +19853,30 @@ class ccase_t(cinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ccase_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ccase_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ccase_t const & | | __init__(self, *args) | __init__(self) -> ccase_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ccase_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ccase_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ccase_t const & | | __repr__ = _swig_repr(self) | @@ -18476,12 +19885,14 @@ class ccase_t(cinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | 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 (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18535,89 +19946,145 @@ class ccase_t(cinsn_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | 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) + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t + | @param r (C++: const cinsn_t &) | | 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 '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. + | | collect_free_breaks(self, breaks) -> bool + | @param breaks: pointer to the variable where the vector of all found + | free break statements is returned. This argument can + | be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> '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. + | | collect_free_continues(self, continues) -> bool + | @param continues: pointer to the variable where the vector of all + | found free continue statements is returned. This + | argument can be NULL. (C++: cinsnptrvec_t *) + | @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' + | Check if the statement contains a statement of the specified type. + | | contains_insn(self, type, times=1) -> bool + | @param type: statement opcode to look for (C++: ctype_t) + | @param times: how many times TYPE should be present (C++: int) + | @return: true if the statement has at least TIMES children with opcode + | == TYPE | | create_if(self, *args) -> 'cif_t &' + | Create a new if-statement. The current statement must be a block. The + | new statement will be appended to it. + | | create_if(self, cnd) -> cif_t + | @param cnd: if condition. It will be deleted after being copied. (C++: + | cexpr_t *) | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' - | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. | | new_insn(self, *args) -> 'cinsn_t &' + | Create a new statement. The current statement must be a block. The new + | statement will be appended to it. + | | new_insn(self, insn_ea) -> cinsn_t + | @param insn_ea: statement address (C++: ea_t) | | print1(self, *args) -> 'void' + | Print the statement into one line. Currently this function is not + | available. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: 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 + | insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cinsn_t: @@ -18683,22 +20150,37 @@ class ccase_t(cinsn_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | 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 (C++: ea_t) | | find_parent_of(self, *args) -> 'citem_t *' + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) -> 'bool' - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -18748,24 +20230,30 @@ class ccases_t(qvector_ccase_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ccases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ccases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ccases_t const & | | __init__(self, *args) | __init__(self) -> ccases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ccases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ccases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ccases_t const & | | __repr__ = _swig_repr(self) | @@ -18774,6 +20262,7 @@ class ccases_t(qvector_ccase_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: ccases_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18791,6 +20280,7 @@ class ccases_t(qvector_ccase_t) | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18800,19 +20290,24 @@ class ccases_t(qvector_ccase_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: ccase_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | at = __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18836,52 +20331,74 @@ class ccases_t(qvector_ccase_t) | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t + | it: qvector< ccase_t >::iterator + | + | | erase(self, first, last) -> ccase_t + | first: qvector< ccase_t >::iterator + | 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 + | x: ccase_t const & + | + | | find(self, x) -> ccase_t + | x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) + | x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: ccase_t * + | len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t + | it: qvector< ccase_t >::iterator + | x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: ccase_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18903,8 +20420,12 @@ 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 + | mba_: mba_t const * + | + | | __init__(self, r) -> cdg_insn_iterator_t + | r: cdg_insn_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -18917,14 +20438,19 @@ 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 (C++: insn_t *) | | ok(self, *args) -> 'bool' | ok(self) -> bool | | start(self, *args) -> 'void' | start(self, rng) + | @param rng (C++: const range_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18950,8 +20476,11 @@ class cdg_insn_iterator_t(builtins.object) | 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 + | mba + | cdg_insn_iterator_t_mba_get(self) -> mba_t + | + | severed_branch + | cdg_insn_iterator_t_severed_branch_get(self) -> ea_t | | thisown | The membership flag @@ -18971,24 +20500,30 @@ class cdo_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cdo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cdo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cdo_t const & | | __init__(self, *args) | __init__(self) -> cdo_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cdo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cdo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cdo_t const & | | __repr__ = _swig_repr(self) | @@ -18997,6 +20532,7 @@ class cdo_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cdo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19014,6 +20550,7 @@ class cdo_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -19085,28 +20622,49 @@ class cexpr_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cexpr_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cexpr_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cexpr_t const & | | __init__(self, *args) | __init__(self) -> cexpr_t - | __init__(self, cop, _x) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | + | | __init__(self, cop, _x, _y) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | _y: cexpr_t * + | + | | __init__(self, cop, _x, _y, _z) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | _y: cexpr_t * + | _z: cexpr_t * + | + | | __init__(self, r) -> cexpr_t + | r: cexpr_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cexpr_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cexpr_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cexpr_t const & | | __repr__ = _swig_repr(self) | @@ -19160,122 +20718,198 @@ class cexpr_t(citem_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | _v: char * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) + | _v: char * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t + | @param r (C++: const cexpr_t &) | | calc_type(self, *args) -> 'void' + | Calculate the type of the expression. Use this function to calculate + | the expression type when a new expression is built + | | calc_type(self, recursive) + | @param recursive: if true, types of all children expression will be + | calculated before calculating our type (C++: bool) | | 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 + | r: cexpr_t const & | | contains_comma(self, *args) -> 'bool' + | Does the expression contain a comma operator? + | | contains_comma(self, times=1) -> bool + | @param times (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' + | Does the expression contain a comma operator or an embedded statement + | operator or a label? + | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | @param maxcommas (C++: int) | | contains_insn(self, *args) -> 'bool' + | Does the expression contain an embedded statement operator? + | | contains_insn(self, times=1) -> bool + | @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' + | Check if the expression contains the specified operator. + | | contains_operator(self, needed_op, times=1) -> bool + | @param needed_op: operator code to search for (C++: ctype_t) + | @param times: how many times the operator code should be present (C++: + | int) + | @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? | | equal_effect(self, *args) -> '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. + | | equal_effect(self, r) -> bool + | @param r: the expression to compare against the current expression + | (C++: const cexpr_t &) + | @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 the operand with a numeric value. | | find_op(self, *args) -> 'cexpr_t *' + | Find the child with the specified operator. + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) + | + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) | | get_1num_op(self, *args) -> 'bool' + | Get pointers to operands. at last one operand should be a number o1 + | will be pointer to the number + | | get_1num_op(self, o1, o2) -> bool + | @param o1 (C++: cexpr_t **) + | @param o2 (C++: cexpr_t **) | | get_const_value(self, *args) -> 'bool' - | get_const_value(self) -> bool + | Get expression value. | | 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 argument? + | | is_call_arg_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is a call argument of the specified + | parent expression. | | is_call_object_of(self, *args) -> 'bool' + | Is call object? + | | is_call_object_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is the call object of the specified + | parent expression. | | is_child_of(self, *args) -> 'bool' + | Verify if the specified item is our parent. + | | is_child_of(self, parent) -> bool + | @param parent: possible parent item (C++: const citem_t *) + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' + | Check if the expression is a number with the specified value. + | | is_const_value(self, _v) -> bool + | @param _v (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -19287,28 +20921,30 @@ class cexpr_t(citem_t) | 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 @@ -19317,38 +20953,63 @@ class cexpr_t(citem_t) | 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' + | Print expression into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | put_number(self, *args) -> 'void' + | Assign a number to the expression. + | | put_number(self, func, value, nbytes, sign=no_sign) + | @param func: current function (C++: cfunc_t *) + | @param value: number value (C++: uint64) + | @param nbytes: size of the number in bytes (C++: int) + | @param sign: number sign (C++: type_sign_t) | | requires_lvalue(self, *args) -> 'bool' + | Check if the expression requires an lvalue. + | | requires_lvalue(self, child) -> bool + | @param child: The function will check if this child of our expression + | must be an lvalue. (C++: const cexpr_t *) + | @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) + | v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: cexpr_t &) | | theother(self, *args) -> 'cexpr_t *' + | Get the other operand. This function returns the other operand (not + | the specified one) for binary expressions. + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) + | + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19433,22 +21094,37 @@ class cexpr_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | 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 (C++: ea_t) | | find_parent_of(self, *args) -> 'citem_t *' + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) -> 'bool' - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -19502,24 +21178,30 @@ class cfor_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cfor_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cfor_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cfor_t const & | | __init__(self, *args) | __init__(self) -> cfor_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cfor_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cfor_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cfor_t const & | | __repr__ = _swig_repr(self) | @@ -19528,6 +21210,7 @@ class cfor_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cfor_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19551,6 +21234,7 @@ class cfor_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -19590,6 +21274,8 @@ class cfunc_parentee_t(ctree_parentee_t) | | __init__(self, *args) | __init__(self, f, post=False) -> cfunc_parentee_t + | f: cfunc_t * + | post: bool | | __repr__ = _swig_repr(self) | @@ -19597,7 +21283,18 @@ class cfunc_parentee_t(ctree_parentee_t) | delete_cfunc_parentee_t(self) | | calc_rvalue_type(self, *args) -> '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. + | | calc_rvalue_type(self, target, e) -> bool + | @param target: 'best' type of the expression will be returned here + | (C++: tinfo_t *) + | @param e: expression to determine the desired type (C++: const + | cexpr_t *) + | @return: false if failed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19612,61 +21309,112 @@ class cfunc_parentee_t(ctree_parentee_t) | Methods inherited from ctree_parentee_t: | | recalc_parent_types(self, *args) -> 'bool' - | recalc_parent_types(self) -> bool + | Recalculate types of parent node. 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 it is + | recommended to restart the traversal because the information about + | parent nodes is stale. | | ---------------------------------------------------------------------- | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) -> 'int' + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> '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. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @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' + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> '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. + | | leave_insn(self, arg0) -> int + | 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 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> '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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -19702,98 +21450,189 @@ class cfunc_t(builtins.object) | 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 (C++: const citem_t *) + | @param px (C++: int *) + | @param py (C++: int *) + | + | | find_item_coords(self, item) -> PyObject * + | @param item (C++: const citem_t *) | | find_label(self, *args) -> 'citem_t *' + | Find the label. + | | find_label(self, label) -> citem_t + | @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 (C++: const ctree_item_t &) + | @param udm (C++: 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 the function type. + | | get_func_type(self, type) -> bool + | @param type: variable where the function type is returned (C++: + | tinfo_t *) + | @return: false if failure | | get_line_item(self, *args) -> 'bool' + | Get ctree item for the specified cursor position. + | 'vdui_t::get_current_item()' + | | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | @param line: line of decompilation text (element of sv ) (C++: const + | char *) + | @param x: x cursor coordinate in the line (C++: int) + | @param is_ctree_line: does the line belong to statement area? (if not, + | it is assumed to belong to the declaration area) + | (C++: bool) + | @param phead: ptr to the first item on the line (used to attach block + | comments). May be NULL (C++: ctree_item_t *) + | @param pitem: ptr to the current item. May be NULL (C++: ctree_item_t + | *) + | @param ptail: ptr to the last item on the line (used to attach + | indented comments). May be NULL (C++: ctree_item_t *) + | @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. | | 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. | | get_user_cmt(self, *args) -> 'char const *' + | Retrieve a user defined comment. + | | get_user_cmt(self, loc, rt) -> char const * + | @param loc: ctree location (C++: const treeloc_t &) + | @param rt: should already retrieved comments retrieved again? (C++: + | cmt_retrieval_type_t) + | @return: pointer to the comment string or NULL | | get_user_iflags(self, *args) -> 'int32' + | Retrieve citem iflags. + | | get_user_iflags(self, loc) -> int32 + | @param loc: citem locator (C++: const citem_locator_t &) + | @return: ctree item iflags bits or 0 | | get_user_union_selection(self, *args) -> 'bool' + | Retrieve a user defined union field selection. + | | get_user_union_selection(self, ea, path) -> bool + | @param ea: address (C++: ea_t) + | @param path: out: path describing the union selection. (C++: intvec_t + | *) + | @return: pointer to the path or NULL | | get_warnings(self, *args) -> 'hexwarns_t &' - | get_warnings(self) -> hexwarns_t + | Get information about decompilation 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 function text. + | | print_func(self, vp) + | @param vp: printer helper class to receive the generated text. (C++: + | vc_printer_t &) | | 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 check what labels are really used + | by the function and removes the unused ones. | | 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 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. + | | set_user_cmt(self, loc, cmt) + | @param loc: ctree location (C++: const treeloc_t &) + | @param cmt: new comment. if empty or NULL, then an existing comment is + | deleted. (C++: const char *) | | set_user_iflags(self, *args) -> 'void' + | Set citem iflags. + | | set_user_iflags(self, loc, iflags) + | @param loc: citem locator (C++: const citem_locator_t &) + | @param iflags: new iflags (C++: int32) | | set_user_union_selection(self, *args) -> 'void' + | Set a union field selection. The 'save_user_unions()' function must be + | called after calling this function. + | | set_user_union_selection(self, ea, path) + | @param ea: address (C++: ea_t) + | @param path: in: path describing the union selection. (C++: const + | intvec_t &) | | verify(self, *args) -> 'void' + | 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. + | | verify(self, aul, even_without_debugger) + | @param aul: Are unused labels acceptable? (C++: allow_unused_labels_t) + | @param even_without_debugger: if false and there is no debugger, the + | verification will be skipped (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19813,10 +21652,12 @@ class cfunc_t(builtins.object) | cfunc_t_body_get(self) -> cinsn_t | | 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 @@ -19825,19 +21666,20 @@ class cfunc_t(builtins.object) | cfunc_t_hdrlines_get(self) -> int | | lvars - | get_lvars(self) -> lvars_t + | Get vector of local variables. | | maturity | cfunc_t_maturity_get(self) -> ctree_maturity_t | | mba - | cfunc_t_mba_get(self) -> mbl_array_t + | cfunc_t_mba_get(self) -> mba_t | | numforms | cfunc_t_numforms_get(self) -> user_numforms_t | | 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 @@ -19867,7 +21709,7 @@ class cfunc_t(builtins.object) | cfunc_t_user_unions_get(self) -> user_unions_t | | warnings - | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. Help on function cfunc_type in module ida_hexrays: @@ -19888,7 +21730,11 @@ class cfuncptr_t(builtins.object) | | __init__(self, *args) | __init__(self, p) -> cfuncptr_t + | p: cfunc_t * + | + | | __init__(self, r) -> cfuncptr_t + | r: qrefcnt_t< cfunc_t > const & | | __ptrval__(self, *args) -> 'size_t' | __ptrval__(self) -> size_t @@ -19911,13 +21757,22 @@ class cfuncptr_t(builtins.object) | | find_item_coords(self, *args) -> 'PyObject *' | find_item_coords(self, item, px, py) -> bool + | item: citem_t const * + | px: int * + | py: int * + | + | | find_item_coords(self, item) -> PyObject * + | item: citem_t const * | | find_label(self, *args) -> 'citem_t *' | find_label(self, label) -> citem_t + | label: int | | gather_derefs(self, *args) -> 'bool' | gather_derefs(self, ci, udm=None) -> bool + | ci: ctree_item_t const & + | udm: udt_type_data_t * | | get_boundaries(self, *args) -> 'boundaries_t &' | get_boundaries(self) -> boundaries_t @@ -19927,9 +21782,16 @@ class cfuncptr_t(builtins.object) | | get_func_type(self, *args) -> 'bool' | get_func_type(self, type) -> bool + | type: tinfo_t * | | get_line_item(self, *args) -> 'bool' | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | line: char const * + | x: int + | is_ctree_line: bool + | phead: ctree_item_t * + | pitem: ctree_item_t * + | ptail: ctree_item_t * | | get_lvars(self, *args) -> 'lvars_t *' | get_lvars(self) -> lvars_t @@ -19942,12 +21804,17 @@ class cfuncptr_t(builtins.object) | | get_user_cmt(self, *args) -> 'char const *' | get_user_cmt(self, loc, rt) -> char const * + | loc: treeloc_t const & + | rt: enum cmt_retrieval_type_t | | get_user_iflags(self, *args) -> 'int32' | get_user_iflags(self, loc) -> int32 + | loc: citem_locator_t const & | | get_user_union_selection(self, *args) -> 'bool' | get_user_union_selection(self, ea, path) -> bool + | ea: ea_t + | path: intvec_t * | | get_warnings(self, *args) -> 'hexwarns_t &' | get_warnings(self) -> hexwarns_t @@ -19955,11 +21822,15 @@ 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) + | vp: vc_printer_t & | | refresh_func_ctext(self, *args) -> 'void' | refresh_func_ctext(self) @@ -19990,15 +21861,23 @@ class cfuncptr_t(builtins.object) | | set_user_cmt(self, *args) -> 'void' | set_user_cmt(self, loc, cmt) + | loc: treeloc_t const & + | cmt: char const * | | set_user_iflags(self, *args) -> 'void' | set_user_iflags(self, loc, iflags) + | loc: citem_locator_t const & + | iflags: int32 | | set_user_union_selection(self, *args) -> 'void' | set_user_union_selection(self, ea, path) + | ea: ea_t + | path: intvec_t const & | | verify(self, *args) -> 'void' | verify(self, aul, even_without_debugger) + | aul: enum allow_unused_labels_t + | even_without_debugger: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20033,7 +21912,7 @@ class cfuncptr_t(builtins.object) | cfuncptr_t_maturity_get(self) -> ctree_maturity_t | | mba - | cfuncptr_t_mba_get(self) -> mbl_array_t + | cfuncptr_t_mba_get(self) -> mba_t | | numforms | cfuncptr_t_numforms_get(self) -> user_numforms_t @@ -20077,24 +21956,30 @@ class cgoto_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cgoto_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cgoto_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cgoto_t const & | | __init__(self, *args) | __init__(self) -> cgoto_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cgoto_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cgoto_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cgoto_t const & | | __repr__ = _swig_repr(self) | @@ -20103,6 +21988,7 @@ class cgoto_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cgoto_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20133,6 +22019,7 @@ class chain_keeper_t(builtins.object) | | __init__(self, *args) | __init__(self, _gc) -> chain_keeper_t + | _gc: graph_chains_t * | | __repr__ = _swig_repr(self) | @@ -20144,6 +22031,8 @@ class chain_keeper_t(builtins.object) | | for_all_chains(self, *args) -> 'int' | for_all_chains(self, cv, gca) -> int + | @param cv (C++: chain_visitor_t &) + | @param gca (C++: int) | | front(self, *args) -> 'block_chains_t &' | front(self) -> block_chains_t @@ -20174,11 +22063,19 @@ class chain_t(ida_pro.intvec_t) | | __init__(self, *args) | __init__(self) -> chain_t - | __init__(self, t, off, w=1, v=-1) -> chain_t + | t: mopt_t + | off: sval_t + | w: int + | v: int + | + | | __init__(self, _k, w=1) -> chain_t + | _k: voff_t const & + | w: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: chain_t const & | | __repr__ = _swig_repr(self) | @@ -20189,7 +22086,10 @@ class chain_t(ida_pro.intvec_t) | _print(self) | | append_list(self, *args) -> 'void' + | Append the contents of the chain to the specified list of locations. + | | append_list(self, list) + | @param list (C++: mlist_t *) | | clear_varnum(self, *args) -> 'void' | clear_varnum(self) @@ -20208,6 +22108,7 @@ class chain_t(ida_pro.intvec_t) | | includes(self, *args) -> 'bool' | includes(self, r) -> bool + | @param r (C++: const chain_t &) | | is_fake(self, *args) -> 'bool' | is_fake(self) -> bool @@ -20238,21 +22139,27 @@ class chain_t(ida_pro.intvec_t) | | overlap(self, *args) -> 'bool' | overlap(self, r) -> bool + | @param r (C++: const chain_t &) | | set_inited(self, *args) -> 'void' | set_inited(self, b) + | @param b (C++: bool) | | set_overlapped(self, *args) -> 'void' | set_overlapped(self, b) + | @param b (C++: bool) | | set_replaced(self, *args) -> 'void' | set_replaced(self, b) + | @param b (C++: bool) | | set_term(self, *args) -> 'void' | set_term(self, b) + | @param b (C++: bool) | | set_value(self, *args) -> 'void' | set_value(self, r) + | @param r (C++: const chain_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20274,9 +22181,11 @@ class chain_t(ida_pro.intvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20286,22 +22195,28 @@ class chain_t(ida_pro.intvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< int > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: int const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: int const & | | append = push_back(self, *args) -> 'int &' | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | at = __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -20325,49 +22240,70 @@ class chain_t(ida_pro.intvec_t) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator + | it: qvector< int >::iterator + | + | | erase(self, first, last) -> qvector< int >::iterator + | first: qvector< int >::iterator + | last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator + | x: int const & + | + | | find(self, x) -> qvector< int >::const_iterator + | x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: int * + | len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator + | it: qvector< int >::iterator + | x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -20397,6 +22333,7 @@ class chain_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> chain_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -20405,6 +22342,8 @@ class chain_visitor_t(builtins.object) | | visit_chain(self, *args) -> 'int' | visit_chain(self, nblock, ch) -> int + | @param nblock (C++: int) + | @param ch (C++: chain_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20424,9 +22363,6 @@ class chain_visitor_t(builtins.object) 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 @@ -20434,9 +22370,10 @@ checkout_hexrays_license(*args) -> 'bool' 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 + checkout_hexrays_license(silent) -> bool + @param silent: silently fail if the license cannot be checked out. + (C++: bool) + @return: false if failed Help on class cif_t in module ida_hexrays: @@ -20452,25 +22389,31 @@ class cif_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cif_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cif_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cif_t const & | | __init__(self, *args) | __init__(self) -> cif_t - | __init__(self, r) -> cif_t + | r: cif_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cif_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cif_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cif_t const & | | __repr__ = _swig_repr(self) | @@ -20479,12 +22422,14 @@ class cif_t(ceinsn_t) | | assign(self, *args) -> 'cif_t &' | assign(self, r) -> cif_t + | @param r (C++: const cif_t &) | | cleanup(self, *args) -> 'void' | cleanup(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cif_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20534,25 +22479,31 @@ class cinsn_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cinsn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cinsn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cinsn_t const & | | __init__(self, *args) | __init__(self) -> cinsn_t - | __init__(self, r) -> cinsn_t + | r: cinsn_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cinsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cinsn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cinsn_t const & | | __repr__ = _swig_repr(self) | @@ -20594,92 +22545,149 @@ class cinsn_t(citem_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | 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) + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t + | @param r (C++: const cinsn_t &) | | 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 '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. + | | collect_free_breaks(self, breaks) -> bool + | @param breaks: pointer to the variable where the vector of all found + | free break statements is returned. This argument can + | be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> '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. + | | collect_free_continues(self, continues) -> bool + | @param continues: pointer to the variable where the vector of all + | found free continue statements is returned. This + | argument can be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free continue statements have been found | | compare(self, *args) -> 'int' | compare(self, r) -> int + | 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' + | Check if the statement contains a statement of the specified type. + | | contains_insn(self, type, times=1) -> bool + | @param type: statement opcode to look for (C++: ctype_t) + | @param times: how many times TYPE should be present (C++: int) + | @return: true if the statement has at least TIMES children with opcode + | == TYPE | | create_if(self, *args) -> 'cif_t &' + | Create a new if-statement. The current statement must be a block. The + | new statement will be appended to it. + | | create_if(self, cnd) -> cif_t + | @param cnd: if condition. It will be deleted after being copied. (C++: + | cexpr_t *) | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' - | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. | | new_insn(self, *args) -> 'cinsn_t &' + | Create a new statement. The current statement must be a block. The new + | statement will be appended to it. + | | new_insn(self, insn_ea) -> cinsn_t + | @param insn_ea: statement address (C++: ea_t) | | print1(self, *args) -> 'void' + | Print the statement into one line. Currently this function is not + | available. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: 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 + | insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20750,22 +22758,37 @@ class cinsn_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | 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 (C++: ea_t) | | find_parent_of(self, *args) -> 'citem_t *' + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) -> 'bool' - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -20805,6 +22828,7 @@ 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 + insn: cinsn_t const * Help on class cinsnptrvec_t in module ida_hexrays: @@ -20815,13 +22839,15 @@ class cinsnptrvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< cinsn_t * > const & | | __getitem__(self, *args) -> 'cinsn_t *const &' | __getitem__(self, i) -> cinsn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> cinsnptrvec_t - | __init__(self, x) -> cinsnptrvec_t + | 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 +22856,25 @@ class cinsnptrvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< cinsn_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: cinsn_t *const & | | __swig_destroy__ = delete_cinsnptrvec_t(...) | delete_cinsnptrvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: cinsn_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: cinsn_t *const & | | append = push_back(self, *args) -> 'cinsn_t *&' | @@ -20871,49 +22902,70 @@ class cinsnptrvec_t(builtins.object) | | erase(self, *args) -> 'qvector< cinsn_t * >::iterator' | erase(self, it) -> qvector< cinsn_t * >::iterator + | it: qvector< cinsn_t * >::iterator + | + | | erase(self, first, last) -> qvector< cinsn_t * >::iterator + | first: qvector< cinsn_t * >::iterator + | 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 + | x: cinsn_t *const & + | + | | find(self, x) -> qvector< cinsn_t * >::const_iterator + | x: cinsn_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: cinsn_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: cinsn_t ** + | len: size_t | | insert(self, *args) -> 'qvector< cinsn_t * >::iterator' | insert(self, it, x) -> qvector< cinsn_t * >::iterator + | it: qvector< cinsn_t * >::iterator + | x: cinsn_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'cinsn_t *&' | push_back(self, x) - | push_back(self) -> cinsn_t *& + | x: cinsn_t *const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: cinsn_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< cinsn_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -20944,7 +22996,7 @@ class citem_cmt_t(builtins.object) | | __init__(self, *args) | __init__(self) -> citem_cmt_t - | __init__(self, s) -> citem_cmt_t + | s: char const * | | __repr__ = _swig_repr(self) | @@ -20981,25 +23033,36 @@ class citem_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: citem_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: citem_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: citem_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _op) -> citem_locator_t + | _ea: ea_t + | _op: enum ctype_t + | + | | __init__(self, i) -> citem_locator_t + | i: citem_t const * | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: citem_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: citem_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: citem_locator_t const & | | __repr__ = _swig_repr(self) | @@ -21008,6 +23071,7 @@ class citem_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: citem_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21041,7 +23105,7 @@ class citem_t(builtins.object) | | __init__(self, *args) | __init__(self) -> citem_t - | __init__(self, o) -> citem_t + | o: enum ctype_t | | __repr__ = _swig_repr(self) | @@ -21076,30 +23140,53 @@ class citem_t(builtins.object) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | 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 (C++: ea_t) | | find_parent_of(self, *args) -> 'citem_t *' + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) -> 'bool' - | is_expr(self) -> bool + | Is an expression? | | print1(self, *args) -> 'void' + | Print item into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) + | @return: length of the generated text. | | replace_by(self, o) | | swap(self, *args) -> 'void' + | Swap two 'citem_t' . + | | swap(self, r) + | @param r (C++: citem_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21147,9 +23234,6 @@ citem_to_specific_type(self) 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: @@ -21166,8 +23250,11 @@ class cloop_t(ceinsn_t) | | __init__(self, *args) | __init__(self) -> cloop_t - | __init__(self, b) -> cloop_t + | b: cinsn_t * + | + | | __init__(self, r) -> cloop_t + | r: cloop_t const & | | __repr__ = _swig_repr(self) | @@ -21176,6 +23263,7 @@ class cloop_t(ceinsn_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -21201,16 +23289,20 @@ class cloop_t(ceinsn_t) | expr | ceinsn_t_expr_get(self) -> cexpr_t +Help on function close_hexrays_waitbox in module ida_hexrays: + +close_hexrays_waitbox(*args) -> 'void' + 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 *) - @return: false if failed + close_pseudocode(f) -> bool + @param f: pointer to window (C++: TWidget *) + @return: false if failed Help on class cnumber_t in module ida_hexrays: @@ -21221,24 +23313,31 @@ class cnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cnumber_t const & | | __init__(self, *args) | __init__(self, _opnum=0) -> cnumber_t + | _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cnumber_t const & | | __repr__ = _swig_repr(self) | @@ -21247,15 +23346,28 @@ class cnumber_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, type, parent=None, nice_stroff=None) + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * | | assign(self, *args) -> 'void' + | Assign new value + | | assign(self, v, nbytes, sign) + | @param v: new value (C++: uint64) + | @param nbytes: size of the new value in bytes (C++: int) + | @param sign: sign of the value (C++: type_sign_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cnumber_t const & | | value(self, *args) -> 'uint64' + | Get value. This function will properly extend the number sign to + | 64bits depending on the type sign. + | | value(self, type) -> uint64 + | @param type (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21287,10 +23399,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) | @@ -21298,20 +23408,62 @@ class codegen_t(builtins.object) | delete_codegen_t(self) | | analyze_prolog(self, *args) -> 'merror_t' + | Analyze prolog/epilog of the function to decompile. If prolog is + | found, allocate and fill 'mba->pi' structure. + | | analyze_prolog(self, fc, reachable) -> merror_t + | @param fc: flow chart (C++: const class qflow_chart_t &) + | @param reachable: bitmap of reachable blocks (C++: const class + | bitset_t &) + | @return: error code | | emit(self, *args) -> 'minsn_t *' + | Emit one microinstruction. The L, R, D arguments usually mean the + | register number. However, they depend on CODE. For example:for m_goto + | and m_jcnd L is the target addressfor m_ldc L is the constant value to + | load + | | emit(self, code, width, l, r, d, offsize) -> minsn_t + | @param code (C++: mcode_t) + | @param width (C++: int) + | @param l (C++: uval_t) + | @param r (C++: uval_t) + | @param d (C++: uval_t) + | @param offsize (C++: int) + | @return: created microinstruction. can be NULL if the instruction got + | immediately optimized away. + | + | | emit(self, code, l, r, d) -> minsn_t + | @param code (C++: mcode_t) + | @param l (C++: uval_t) + | @param r (C++: uval_t) + | @param d (C++: uval_t) + | @return: created microinstruction. can be NULL if the instruction got + | immediately optimized away. | | emit_micro_mvm(self, *args) -> 'minsn_t *' + | Emit one microinstruction. This variant takes a data type not a size. + | | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t + | @param code (C++: 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 | | load_operand(self, *args) -> 'mreg_t' + | Generate microcode to load one operand. + | | load_operand(self, opnum) -> mreg_t + | @param opnum (C++: int) + | + | microgen_completed(self, *args) -> 'void' + | This method is called when the microcode generation is done. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21335,7 +23487,7 @@ class codegen_t(builtins.object) | codegen_t_mb_get(self) -> mblock_t | | mba - | codegen_t_mba_get(self) -> mbl_array_t + | codegen_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -21343,20 +23495,20 @@ class codegen_t(builtins.object) 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) + convert_to_user_call(udc, cdg) -> merror_t + @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) -> 'qstring' create_field_name(type, offset=BADADDR) -> qstring + @param type (C++: const tinfo_t &) + @param offset (C++: uval_t) Help on function create_helper in module ida_hexrays: @@ -21365,15 +23517,20 @@ create_helper(*args) Help on function create_typedef in module ida_hexrays: create_typedef(*args) -> 'tinfo_t' - 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. + create_typedef(name) -> tinfo_t + @param name: type name (C++: const char *) + @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 + n: int + @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. Help on class creturn_t in module ida_hexrays: @@ -21389,24 +23546,30 @@ class creturn_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: creturn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: creturn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: creturn_t const & | | __init__(self, *args) | __init__(self) -> creturn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: creturn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: creturn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: creturn_t const & | | __repr__ = _swig_repr(self) | @@ -21415,6 +23578,7 @@ class creturn_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: creturn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21453,24 +23617,30 @@ class cswitch_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cswitch_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cswitch_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cswitch_t const & | | __init__(self, *args) | __init__(self) -> cswitch_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cswitch_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cswitch_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cswitch_t const & | | __repr__ = _swig_repr(self) | @@ -21479,6 +23649,7 @@ class cswitch_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cswitch_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21518,24 +23689,33 @@ class ctext_position_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ctext_position_t const & | | __init__(self, *args) | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t + | _lnnum: int + | _x: int + | _y: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -21544,9 +23724,13 @@ class ctext_position_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' + | Is the cursor in the variable/type declaration area? + | | in_ctree(self, hdrlines) -> bool + | @param hdrlines: Number of lines of the declaration area (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21656,19 +23840,32 @@ class ctree_item_t(builtins.object) | _get_l(self) -> lvar_t | | get_ea(self, *args) -> 'ea_t' - | get_ea(self) -> ea_t + | Get address of the current item. Each ctree item has an address. | | get_label_num(self, *args) -> 'int' + | Get label number of the current item. + | | get_label_num(self, gln_flags) -> int + | @param gln_flags: Combination of get_label_num control bits (C++: + | int) + | @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. | | get_memptr(self, *args) -> 'member_t *' + | Get pointer to structure member. If the current item is a structure + | field, this function will return pointer to its definition. + | | get_memptr(self, p_sptr=None) -> member_t * + | @param p_sptr: pointer to the variable where the pointer to the parent + | structure is returned. This parameter can be NULL. + | (C++: struc_t **) + | @return: NULL if failed | | is_citem(self, *args) -> 'bool' - | is_citem(self) -> bool + | Is the current item is a ctree item? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21707,13 +23904,15 @@ class ctree_items_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< citem_t * > const & | | __getitem__(self, *args) -> 'citem_t *const &' | __getitem__(self, i) -> citem_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ctree_items_t - | __init__(self, x) -> ctree_items_t + | 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 +23921,25 @@ class ctree_items_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< citem_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: citem_t *const & | | __swig_destroy__ = delete_ctree_items_t(...) | delete_ctree_items_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: citem_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: citem_t *const & | | append = push_back(self, *args) -> 'citem_t *&' | @@ -21763,49 +23967,70 @@ class ctree_items_t(builtins.object) | | erase(self, *args) -> 'qvector< citem_t * >::iterator' | erase(self, it) -> qvector< citem_t * >::iterator + | it: qvector< citem_t * >::iterator + | + | | erase(self, first, last) -> qvector< citem_t * >::iterator + | first: qvector< citem_t * >::iterator + | 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 + | x: citem_t *const & + | + | | find(self, x) -> qvector< citem_t * >::const_iterator + | x: citem_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: citem_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: citem_t ** + | len: size_t | | insert(self, *args) -> 'qvector< citem_t * >::iterator' | insert(self, it, x) -> qvector< citem_t * >::iterator + | it: qvector< citem_t * >::iterator + | x: citem_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'citem_t *&' | push_back(self, x) - | push_back(self) -> citem_t *& + | x: citem_t *const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: citem_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< citem_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -21843,6 +24068,7 @@ class ctree_parentee_t(ctree_visitor_t) | | __init__(self, *args) | __init__(self, post=False) -> ctree_parentee_t + | post: bool | | __repr__ = _swig_repr(self) | @@ -21850,7 +24076,12 @@ class ctree_parentee_t(ctree_visitor_t) | delete_ctree_parentee_t(self) | | recalc_parent_types(self, *args) -> 'bool' - | recalc_parent_types(self) -> bool + | Recalculate types of parent node. 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 it is + | recommended to restart the traversal because the information about + | parent nodes is stale. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21862,55 +24093,101 @@ class ctree_parentee_t(ctree_visitor_t) | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) -> 'int' + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> '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. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @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' + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> '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. + | | leave_insn(self, arg0) -> int + | 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 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> '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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -21938,6 +24215,7 @@ class ctree_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, _flags) -> ctree_visitor_t + | _flags: int | | __repr__ = _swig_repr(self) | @@ -21945,55 +24223,101 @@ class ctree_visitor_t(builtins.object) | delete_ctree_visitor_t(self) | | apply_to(self, *args) -> 'int' + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> '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. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @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' + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> '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. + | | leave_insn(self, arg0) -> int + | 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 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> '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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22028,24 +24352,30 @@ class cwhile_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cwhile_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cwhile_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cwhile_t const & | | __init__(self, *args) | __init__(self) -> cwhile_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cwhile_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cwhile_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cwhile_t const & | | __repr__ = _swig_repr(self) | @@ -22054,6 +24384,7 @@ class cwhile_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cwhile_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22071,6 +24402,7 @@ class cwhile_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -22097,6 +24429,7 @@ Help on function debug_hexrays_ctree in module ida_hexrays: debug_hexrays_ctree(*args) -> 'void' debug_hexrays_ctree(msg) + msg: char const * Help on function decompile in module ida_hexrays: @@ -22106,35 +24439,31 @@ decompile(ea, hf=None, flags=0) Help on function decompile_func in module ida_hexrays: decompile_func(*args) -> 'cfuncptr_t' - 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. + decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t + @param pfn: pointer to function to decompile (C++: func_t *) + @param hf: extended error information (if failed) (C++: + hexrays_failure_t *) + @param decomp_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) -> '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 + decompile_many(outfile, funcaddrs, flags) -> bool + @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: @@ -22143,116 +24472,88 @@ dereference(e, ptrsize, is_float=False) 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 *) + dstr(tif) -> char const * + @param tif (C++: const tinfo_t *) 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) + dummy_ptrtype(ptrsize, isfp) -> tinfo_t + @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_iterator_t' - eamap_begin(map) -> eamap_iterator_t - - Get iterator pointing to the beginning of eamap_t. - - @param map (C++: const eamap_t *) + eamap_begin(map) -> eamap_iterator_t + @param map (C++: const eamap_t *) Help on function eamap_clear in module ida_hexrays: eamap_clear(*args) -> 'void' - eamap_clear(map) - - Clear eamap_t. - - @param map (C++: eamap_t *) + eamap_clear(map) + @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_end(map) -> eamap_iterator_t + @param map (C++: const eamap_t *) 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) + eamap_erase(map, p) + @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 &) + eamap_find(map, key) -> eamap_iterator_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) -> 'ea_t const &' - eamap_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: eamap_iterator_t) + eamap_first(p) -> ea_t const & + @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 *) + eamap_free(map) + @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 &) + eamap_insert(map, key, val) -> eamap_iterator_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: @@ -22263,12 +24564,14 @@ class eamap_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: eamap_iterator_t const & | | __init__(self, *args) | __init__(self) -> eamap_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: eamap_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -22298,54 +24601,39 @@ class eamap_iterator_t(builtins.object) 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) + eamap_next(p) -> 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) + eamap_prev(p) -> 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) + eamap_second(p) -> cinsnptrvec_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 *) + eamap_size(map) -> size_t + @param map (C++: eamap_t *) Help on class eamap_t in module ida_hexrays: @@ -22356,9 +24644,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 +24664,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 +24700,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 +24715,36 @@ 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 + | _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -22503,9 +24836,11 @@ class fnum_array(builtins.object) | | __getitem__(self, *args) -> 'unsigned short const &' | __getitem__(self, i) -> unsigned short const & + | i: size_t | | __init__(self, *args) | __init__(self, data) -> fnum_array + | data: unsigned short (&)[6] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -22517,6 +24852,8 @@ class fnum_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: unsigned short const & | | __swig_destroy__ = delete_fnum_array(...) | delete_fnum_array(self) @@ -22545,24 +24882,30 @@ class fnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: fnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: fnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: fnumber_t const & | | __init__(self, *args) | __init__(self) -> fnumber_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: fnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: fnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: fnumber_t const & | | __repr__ = _swig_repr(self) | @@ -22577,6 +24920,7 @@ class fnumber_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: fnumber_t const & | | dereference_const_uint16(self, *args) -> 'uint16 const *' | dereference_const_uint16(self) -> uint16 const * @@ -22623,7 +24967,12 @@ class gco_info_t(builtins.object) | delete_gco_info_t(self) | | append_to_list(self, *args) -> 'bool' + | Append operand info to LIST. This function converts IDA register + | number or stack offset to a decompiler list. + | | append_to_list(self, list, mba) -> bool + | @param list: list to append to (C++: mlist_t *) + | @param mba: microcode object (C++: const mba_t *) | | is_def(self, *args) -> 'bool' | is_def(self) -> bool @@ -22657,138 +25006,115 @@ class gco_info_t(builtins.object) 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 *' 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. + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t + @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 decomp_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) -> 'char const *' get_ctype_name(op) -> char const * + @param op (C++: 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 - return true. + returns true. - @param out (C++: gco_info_t *) + get_current_operand(out) -> bool + @param out (C++: gco_info_t *) 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) - @return: type info object + get_float_type(width) -> tinfo_t + @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) -> 'char const *' - 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) -> '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: size of the type in bytes (C++: int) - @param sign: sign of the type (C++: type_sign_t) + get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t + @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) -> '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: 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 + get_member_type(mptr, type) -> bool + @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) -> '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 *) - @return: the error address + get_merror_desc(code, mba) -> str + @param code: Microcode error codes (C++: merror_t) + @param mba: the microcode array (C++: mba_t *) + @return: the error address Help on function get_mreg_name in module ida_hexrays: get_mreg_name(*args) -> 'qstring *' + Get the microregister name. + 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. + @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) -> '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) + get_op_signness(op) -> type_sign_t + @param op (C++: 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 (C++: 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 @@ -22799,65 +25125,54 @@ get_temp_regs(*args) -> 'mlist_t const &' 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) - @return: success + get_type(id, tif, guess) -> bool + @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) -> '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: size of the type in bytes (C++: int) + get_unk_type(size) -> tinfo_t + @param size: size of the type in bytes (C++: int) Help on function get_unsigned_mcode in module ida_hexrays: get_unsigned_mcode(*args) -> 'mcode_t' get_unsigned_mcode(code) -> mcode_t + @param code (C++: 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: pointer to window (C++: TWidget *) - @return: a vdui_t *, or NULL + get_widget_vdui(f) -> vdui_t + @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) -> 'minsn_t *' - getb_reginsn(ins) -> minsn_t - - Skip assertions backward. - - @param ins (C++: const minsn_t *) + getb_reginsn(ins) -> minsn_t + @param ins (C++: const 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 *) + getf_reginsn(ins) -> minsn_t + @param ins (C++: const minsn_t *) Help on class graph_chains_t in module ida_hexrays: @@ -22880,19 +25195,26 @@ class graph_chains_t(block_chains_vec_t) | delete_graph_chains_t(self) | | acquire(self, *args) -> 'void' - | acquire(self) + | Lock the chains. | | for_all_chains(self, *args) -> 'int' + | Visit all chains + | | for_all_chains(self, cv, gca_flags) -> int + | @param cv: chain visitor (C++: chain_visitor_t &) + | @param gca_flags: combination of GCA_ bits (C++: int) | | 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 (C++: graph_chains_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22905,6 +25227,7 @@ class graph_chains_t(block_chains_vec_t) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -22914,9 +25237,12 @@ class graph_chains_t(block_chains_vec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: block_chains_t const & | | at(self, *args) -> 'block_chains_t const &' | at(self, _idx) -> block_chains_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -22940,7 +25266,12 @@ class graph_chains_t(block_chains_vec_t) | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | + | | erase(self, first, last) -> block_chains_t + | first: qvector< block_chains_t >::iterator + | last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -22950,29 +25281,40 @@ class graph_chains_t(block_chains_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) + | x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: block_chains_t * + | len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) - | push_back(self) -> block_chains_t + | x: block_chains_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: block_chains_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -22992,18 +25334,22 @@ class graph_chains_t(block_chains_vec_t) 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) + has_cached_cfunc(ea) -> bool + @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 (C++: mcode_t) Help on function hexrays_alloc in module ida_hexrays: hexrays_alloc(*args) -> 'void *' hexrays_alloc(size) -> void * + @param size (C++: size_t) Help on class hexrays_failure_t in module ida_hexrays: @@ -23014,8 +25360,15 @@ class hexrays_failure_t(builtins.object) | | __init__(self, *args) | __init__(self) -> hexrays_failure_t - | __init__(self, c, ea, buf=None) -> hexrays_failure_t + | c: enum merror_t + | ea: ea_t + | buf: char const * + | + | | __init__(self, c, ea, buf) -> hexrays_failure_t + | c: enum merror_t + | ea: ea_t + | buf: qstring const & | | __repr__ = _swig_repr(self) | @@ -23052,6 +25405,7 @@ Help on function hexrays_free in module ida_hexrays: hexrays_free(*args) -> 'void' hexrays_free(ptr) + @param ptr (C++: void *) Help on class hexwarn_t in module ida_hexrays: @@ -23062,24 +25416,30 @@ class hexwarn_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: hexwarn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: hexwarn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: hexwarn_t const & | | __init__(self, *args) | __init__(self) -> hexwarn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: hexwarn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: hexwarn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: hexwarn_t const & | | __repr__ = _swig_repr(self) | @@ -23088,6 +25448,7 @@ class hexwarn_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: hexwarn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23124,13 +25485,15 @@ class hexwarns_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< hexwarn_t > const & | | __getitem__(self, *args) -> 'hexwarn_t const &' | __getitem__(self, i) -> hexwarn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> hexwarns_t - | __init__(self, x) -> hexwarns_t + | 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 +25502,25 @@ class hexwarns_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< hexwarn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: hexwarn_t const & | | __swig_destroy__ = delete_hexwarns_t(...) | delete_hexwarns_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: hexwarn_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: hexwarn_t const & | | append = push_back(self, *args) -> 'hexwarn_t &' | @@ -23180,52 +25548,74 @@ class hexwarns_t(builtins.object) | | erase(self, *args) -> 'qvector< hexwarn_t >::iterator' | erase(self, it) -> hexwarn_t + | it: qvector< hexwarn_t >::iterator + | + | | erase(self, first, last) -> hexwarn_t + | first: qvector< hexwarn_t >::iterator + | 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 + | x: hexwarn_t const & + | + | | find(self, x) -> hexwarn_t + | x: hexwarn_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=hexwarn_t()) + | x: hexwarn_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: hexwarn_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: hexwarn_t * + | len: size_t | | insert(self, *args) -> 'qvector< hexwarn_t >::iterator' | insert(self, it, x) -> hexwarn_t + | it: qvector< hexwarn_t >::iterator + | x: hexwarn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'hexwarn_t &' | push_back(self, x) - | push_back(self) -> hexwarn_t + | x: hexwarn_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: hexwarn_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< hexwarn_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -23261,7 +25651,15 @@ class history_item_t(ctext_position_t) | | __init__(self, *args) | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t + | _ea: ea_t + | _lnnum: int + | _x: int + | _y: int + | + | | __init__(self, _ea, p) -> history_item_t + | _ea: ea_t + | p: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -23285,27 +25683,37 @@ class history_item_t(ctext_position_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ctext_position_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ctext_position_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' + | Is the cursor in the variable/type declaration area? + | | in_ctree(self, hdrlines) -> bool + | @param hdrlines: Number of lines of the declaration area (C++: int) | | ---------------------------------------------------------------------- | Data descriptors inherited from ctext_position_t: @@ -23358,16 +25766,18 @@ class history_t(qvector_history_t) | | append = push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | at = __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | i: size_t | | pop(self, *args) -> 'history_item_t' | pop(self) -> history_item_t | | push(self, *args) -> 'void' | push(self, v) + | v: history_item_t const & | | top(self, *args) -> 'history_item_t &' | top(self) -> history_item_t @@ -23384,21 +25794,28 @@ class history_t(qvector_history_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | i: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< history_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: history_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: history_item_t const & | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -23422,52 +25839,74 @@ class history_t(qvector_history_t) | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t + | it: qvector< history_item_t >::iterator + | + | | erase(self, first, last) -> history_item_t + | first: qvector< history_item_t >::iterator + | 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 + | x: history_item_t const & + | + | | find(self, x) -> history_item_t + | x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) + | x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: history_item_t * + | len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t + | it: qvector< history_item_t >::iterator + | x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: history_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -23489,16 +25928,14 @@ class history_t(qvector_history_t) Help on function init_hexrays_plugin in module ida_hexrays: init_hexrays_plugin(*args) -> 'bool' - 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. + init_hexrays_plugin(flags=0) -> bool + @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: @@ -23507,342 +25944,343 @@ install_hexrays_callback(callback) 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' 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) + install_microcode_filter(filter, install=True) -> bool + @param filter: - microcode generator object (C++: microcode_filter_t + *) + @param install: - TRUE - register the object, FALSE - unregister (C++: + bool) + @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) + is_additive(op) -> bool + @param op (C++: 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) + is_assignment(op) -> bool + @param op (C++: 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) + is_binary(op) -> bool + @param op (C++: 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) + is_bitop(op) -> bool + @param op (C++: 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 &) - @return: true if the type is a boolean type + is_bool_type(type) -> bool + @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) -> 'bool' - is_break_consumer(op) -> bool - - Does a break statement influence the specified statement code? - - @param op (C++: ctype_t) + is_break_consumer(op) -> bool + @param op (C++: 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) + is_commutative(op) -> bool + @param op (C++: 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 &) + is_inplace_def(type) -> bool + @param type (C++: const tinfo_t &) Help on function is_kreg in module ida_hexrays: is_kreg(*args) -> '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_kreg(r) -> bool - - - 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) + is_logical(op) -> bool + @param op (C++: 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) + is_loop(op) -> bool + @param op (C++: 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) + is_lvalue(op) -> bool + @param op (C++: ctype_t) Help on function is_may_access in module ida_hexrays: is_may_access(*args) -> 'bool' is_may_access(maymust) -> bool + @param maymust (C++: maymust_t) Help on function is_mcode_addsub in module ida_hexrays: is_mcode_addsub(*args) -> 'bool' is_mcode_addsub(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_call in module ida_hexrays: is_mcode_call(*args) -> 'bool' is_mcode_call(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_commutative in module ida_hexrays: is_mcode_commutative(*args) -> 'bool' is_mcode_commutative(mcode) -> bool + @param mcode (C++: 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 (C++: 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 (C++: mcode_t) Help on function is_mcode_divmod in module ida_hexrays: is_mcode_divmod(*args) -> 'bool' is_mcode_divmod(op) -> bool + @param op (C++: mcode_t) Help on function is_mcode_fpu in module ida_hexrays: is_mcode_fpu(*args) -> 'bool' is_mcode_fpu(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_j1 in module ida_hexrays: is_mcode_j1(*args) -> 'bool' is_mcode_j1(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_jcond in module ida_hexrays: is_mcode_jcond(*args) -> 'bool' is_mcode_jcond(mcode) -> bool + @param mcode (C++: 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) + is_mcode_propagatable(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_set in module ida_hexrays: is_mcode_set(*args) -> 'bool' is_mcode_set(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_set1 in module ida_hexrays: is_mcode_set1(*args) -> 'bool' is_mcode_set1(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_shift in module ida_hexrays: is_mcode_shift(*args) -> 'bool' is_mcode_shift(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_xdsu in module ida_hexrays: is_mcode_xdsu(*args) -> 'bool' is_mcode_xdsu(mcode) -> bool + @param mcode (C++: 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) + is_multiplicative(op) -> bool + @param op (C++: 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) + is_nonbool_type(type) -> bool + @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) -> 'bool' - is_paf(t) -> bool - - Is a pointer, array, or function type? - - @param t (C++: type_t) + is_paf(t) -> bool + @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) + is_prepost(op) -> bool + @param op (C++: 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) + is_ptr_or_array(t) -> bool + @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) + is_relational(op) -> bool + @param op (C++: ctype_t) Help on function is_signed_mcode in module ida_hexrays: is_signed_mcode(*args) -> 'bool' is_signed_mcode(code) -> bool + @param code (C++: 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. + is_small_udt(tif) -> bool + @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) -> 'bool' - is_type_correct(ptr) -> bool - - Verify a type string. - @param ptr (C++: const type_t *) - @return: true if type string is correct + is_type_correct(ptr) -> bool + @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) -> 'bool' - is_unary(op) -> bool - - Is unary operator? - - @param op (C++: ctype_t) + is_unary(op) -> bool + @param op (C++: ctype_t) Help on function is_unsigned_mcode in module ida_hexrays: is_unsigned_mcode(*args) -> 'bool' is_unsigned_mcode(code) -> bool + @param code (C++: 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 + | n: bitset_t::iterator const & + | + | __init__(self, *args) + | __init__(self, n=-1) -> iterator + | n: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, n) -> bool + | 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 +26296,32 @@ class ivl_t(uval_ivl_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ivl_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ivl_t const & | | __init__(self, *args) | __init__(self, _off, _size) -> ivl_t + | _off: uval_t + | _size: uval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -23887,9 +26333,11 @@ class ivl_t(uval_ivl_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: ivl_t const & | | contains(self, *args) -> 'bool' | contains(self, off2) -> bool + | @param off2 (C++: uval_t) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -23899,15 +26347,19 @@ class ivl_t(uval_ivl_t) | | extend_to_cover(self, *args) -> 'bool' | extend_to_cover(self, r) -> bool + | @param r (C++: const ivl_t &) | | includes(self, *args) -> 'bool' | includes(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) | | intersect(self, *args) -> 'void' | intersect(self, r) + | @param r (C++: const ivl_t &) | | overlap(self, *args) -> 'bool' | overlap(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23997,25 +26449,31 @@ class ivlset_t(uval_ivl_ivlset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ivlset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ivlset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ivlset_t const & | | __init__(self, *args) | __init__(self) -> ivlset_t - | __init__(self, ivl) -> ivlset_t + | ivl: ivl_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ivlset_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ivlset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ivlset_t const & | | __repr__ = _swig_repr(self) | @@ -24027,17 +26485,29 @@ class ivlset_t(uval_ivl_ivlset_t) | | add(self, *args) -> 'bool' | add(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) + | + | | add(self, ea, size) -> bool + | ea: ea_t + | size: asize_t + | + | | add(self, ivs) -> bool + | ivs: ivlset_t const & | | addmasked(self, *args) -> 'bool' | addmasked(self, ivs, mask) -> bool + | @param ivs (C++: const ivlset_t &) + | @param mask (C++: const ivl_t &) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: ivlset_t const & | | contains(self, *args) -> 'bool' | contains(self, off) -> bool + | @param off (C++: uval_t) | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -24047,18 +26517,33 @@ class ivlset_t(uval_ivl_ivlset_t) | | has_common(self, *args) -> 'bool' | has_common(self, ivl, strict=False) -> bool + | @param ivl (C++: const ivl_t &) + | @param strict (C++: bool) + | + | | has_common(self, ivs) -> bool + | ivs: ivlset_t const & | | includes(self, *args) -> 'bool' | includes(self, ivs) -> bool + | @param ivs (C++: const ivlset_t &) | | intersect(self, *args) -> 'bool' | intersect(self, ivs) -> bool + | @param ivs (C++: const ivlset_t &) | | sub(self, *args) -> 'bool' | sub(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) + | + | | sub(self, ea, size) -> bool + | ea: ea_t + | size: asize_t + | + | | sub(self, ivs) -> bool + | ivs: ivlset_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24093,6 +26578,7 @@ class ivlset_t(uval_ivl_ivlset_t) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t + | idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -24107,10 +26593,12 @@ class ivlset_t(uval_ivl_ivlset_t) | set_all_values(self) | | single_value(self, *args) -> 'bool' - | single_value(self, v) -> bool + | single_value(self) -> bool + | v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) + | r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from uval_ivl_ivlset_t: @@ -24125,11 +26613,14 @@ Help on function jcnd2set in module ida_hexrays: jcnd2set(*args) -> 'mcode_t' jcnd2set(code) -> mcode_t + @param code (C++: mcode_t) Help on function lexcompare in module ida_hexrays: lexcompare(*args) -> 'int' lexcompare(a, b) -> int + a: mop_t const & + b: mop_t const & Help on function lnot in module ida_hexrays: @@ -24144,25 +26635,32 @@ class lvar_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: lvar_locator_t const & | | __init__(self, *args) | __init__(self) -> lvar_locator_t - | __init__(self, loc, ea) -> lvar_locator_t + | loc: vdloc_t const & + | ea: ea_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: lvar_locator_t const & | | __repr__ = _swig_repr(self) | @@ -24171,34 +26669,34 @@ class lvar_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | 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 information about scattered variable. | | get_stkoff(self, *args) -> 'sval_t' - | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. | | 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: @@ -24226,95 +26724,71 @@ class lvar_locator_t(builtins.object) 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_begin(map) -> lvar_mapping_iterator_t + @param map (C++: const lvar_mapping_t *) 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 *) + lvar_mapping_clear(map) + @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_end(map) -> lvar_mapping_iterator_t + @param map (C++: const lvar_mapping_t *) 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) + lvar_mapping_erase(map, p) + @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 &) + lvar_mapping_find(map, key) -> lvar_mapping_iterator_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_locator_t const &' - lvar_mapping_first(p) -> lvar_locator_t - - Get reference to the current map key. - - @param p (C++: lvar_mapping_iterator_t) + lvar_mapping_first(p) -> lvar_locator_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 *) + lvar_mapping_free(map) + @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 &) - @param val (C++: const lvar_locator_t &) + lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_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: @@ -24325,12 +26799,14 @@ class lvar_mapping_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: lvar_mapping_iterator_t const & | | __init__(self, *args) | __init__(self) -> lvar_mapping_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: lvar_mapping_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -24360,54 +26836,39 @@ class lvar_mapping_iterator_t(builtins.object) 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) + lvar_mapping_next(p) -> 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) + lvar_mapping_prev(p) -> 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) + lvar_mapping_second(p) -> lvar_locator_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 *) + lvar_mapping_size(map) -> size_t + @param map (C++: lvar_mapping_t *) Help on class lvar_mapping_t in module ida_hexrays: @@ -24426,6 +26887,7 @@ class lvar_mapping_t(builtins.object) | | at(self, *args) -> 'lvar_locator_t &' | at(self, _Keyval) -> lvar_locator_t + | _Keyval: lvar_locator_t const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -24451,25 +26913,37 @@ class lvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: lvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: lvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: lvar_ref_t const & | | __init__(self, *args) | __init__(self, m, i, o=0) -> lvar_ref_t + | m: mba_t * + | i: int + | o: sval_t + | + | | __init__(self, r) -> lvar_ref_t + | r: lvar_ref_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: lvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: lvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: lvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -24478,12 +26952,14 @@ class lvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: lvar_ref_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: lvar_ref_t &) | | var(self, *args) -> 'lvar_t &' - | var(self) -> lvar_t + | Retrieve the referenced variable. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24498,7 +26974,7 @@ class lvar_ref_t(builtins.object) | lvar_ref_t_idx_get(self) -> int | | mba - | lvar_ref_t_mba_get(self) -> mbl_array_t + | lvar_ref_t_mba_get(self) -> mba_t | | off | lvar_ref_t_off_get(self) -> sval_t @@ -24520,12 +26996,14 @@ class lvar_saved_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: lvar_saved_info_t const & | | __init__(self, *args) | __init__(self) -> lvar_saved_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: lvar_saved_info_t const & | | __repr__ = _swig_repr(self) | @@ -24615,13 +27093,15 @@ class lvar_saved_infos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< lvar_saved_info_t > const & | | __getitem__(self, *args) -> 'lvar_saved_info_t const &' | __getitem__(self, i) -> lvar_saved_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> lvar_saved_infos_t - | __init__(self, x) -> lvar_saved_infos_t + | 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 +27110,25 @@ class lvar_saved_infos_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< lvar_saved_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: lvar_saved_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: lvar_saved_info_t const & | | append = push_back(self, *args) -> 'lvar_saved_info_t &' | @@ -24671,52 +27156,74 @@ class lvar_saved_infos_t(builtins.object) | | erase(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | erase(self, it) -> lvar_saved_info_t + | it: qvector< lvar_saved_info_t >::iterator + | + | | erase(self, first, last) -> lvar_saved_info_t + | first: qvector< lvar_saved_info_t >::iterator + | 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 + | x: lvar_saved_info_t const & + | + | | find(self, x) -> lvar_saved_info_t + | x: lvar_saved_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_saved_info_t()) + | x: lvar_saved_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: lvar_saved_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: lvar_saved_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | insert(self, it, x) -> lvar_saved_info_t + | it: qvector< lvar_saved_info_t >::iterator + | 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) - | push_back(self) -> lvar_saved_info_t + | x: lvar_saved_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_saved_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< lvar_saved_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -24752,7 +27259,8 @@ class lvar_t(lvar_locator_t) | | __init__(self, *args, **kwargs) | __init__(self) -> lvar_locator_t - | __init__(self, loc, ea) -> lvar_locator_t + | loc: vdloc_t const & + | ea: ea_t | | __repr__ = _swig_repr(self) | @@ -24760,10 +27268,19 @@ class lvar_t(lvar_locator_t) | delete_lvar_t(self) | | accepts_type(self, *args) -> 'bool' + | Check if the variable accept the specified type. Some types are + | forbidden (void, function types, wrong arrays, etc) + | | accepts_type(self, t, may_change_thisarg=False) -> bool + | @param t (C++: const tinfo_t &) + | @param may_change_thisarg (C++: bool) | | append_list(self, *args) -> 'void' + | Append local variable to mlist. + | | append_list(self, lst, pad_if_scattered=False) + | @param lst: list to append to (C++: mlist_t *) + | @param pad_if_scattered (C++: bool) | | clear_used(self, *args) -> 'void' | clear_used(self) @@ -24810,6 +27327,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) | @@ -24820,34 +27340,49 @@ class lvar_t(lvar_locator_t) | clr_user_type(self) | | has_common(self, *args) -> 'bool' + | Do variables overlap? + | | has_common(self, v) -> bool + | @param v (C++: const lvar_t &) | | has_common_bit(self, *args) -> 'bool' + | Does the variable overlap with the specified location? + | | has_common_bit(self, loc, width2) -> bool + | @param loc (C++: const vdloc_t &) + | @param width2 (C++: asize_t) | | has_regname(self, *args) -> 'bool' - | has_regname(self) -> bool + | Has a register name? (like _RAX) | | is_aliasable(self, *args) -> 'bool' + | Is the variable aliasable? + | | is_aliasable(self, mba) -> bool + | @param mba: ptr to the current mba_t Aliasable variables may be + | modified indirectly (through a pointer) (C++: const mba_t + | *) | | is_automapped(self, *args) -> 'bool' - | is_automapped(self) -> bool + | Was the variable automatically mapped to another variable? | | 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_thisarg(self, *args) -> 'bool' - | is_thisarg(self) -> bool + | Is 'this' argument of a C++ member function? + | + | is_used_byref(self, *args) -> 'bool' + | Was the address of the variable taken? | | set_arg_var(self, *args) -> 'void' | set_arg_var(self) @@ -24862,7 +27397,10 @@ class lvar_t(lvar_locator_t) | set_fake_var(self) | | set_final_lvar_type(self, *args) -> 'void' + | Set final variable type. + | | set_final_lvar_type(self, t) + | @param t (C++: const tinfo_t &) | | set_floating_var(self, *args) -> 'void' | set_floating_var(self) @@ -24871,7 +27409,17 @@ class lvar_t(lvar_locator_t) | set_forced_var(self) | | set_lvar_type(self, *args) -> '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. + | | set_lvar_type(self, t, may_fail=False) -> bool + | @param t: new type (C++: const tinfo_t &) + | @param may_fail: if false and type is bad, interr (C++: bool) + | @return: success | | set_mapdst_var(self, *args) -> 'void' | set_mapdst_var(self) @@ -24906,6 +27454,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) | @@ -24913,11 +27464,17 @@ class lvar_t(lvar_locator_t) | set_user_type(self) | | set_width(self, *args) -> '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()' . + | | set_width(self, w, svw_flags=0) -> bool + | @param w: new width (C++: int) + | @param svw_flags: combination of SVW_... bits (C++: int) + | @return: success | | type(self, *args) -> 'tinfo_t &' - | type(self) -> tinfo_t - | type(self) -> tinfo_t + | Get variable type. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24932,43 +27489,44 @@ class lvar_t(lvar_locator_t) | lvar_t_divisor_get(self) -> uint64 | | 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 * @@ -24980,10 +27538,10 @@ class lvar_t(lvar_locator_t) | lvar_t_tif_get(self) -> tinfo_t | | 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 @@ -24993,52 +27551,58 @@ class lvar_t(lvar_locator_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: lvar_locator_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: lvar_locator_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int + | 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 information about scattered variable. | | get_stkoff(self, *args) -> 'sval_t' - | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. | | 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: @@ -25079,13 +27643,20 @@ class lvar_uservec_t(builtins.object) | clear(self) | | find_info(self, *args) -> 'lvar_saved_info_t *' + | find saved user settings for given var + | | find_info(self, vloc) -> lvar_saved_info_t + | @param vloc (C++: const lvar_locator_t &) | | keep_info(self, *args) -> 'void' + | Preserve user settings for given var. + | | keep_info(self, v) + | @param v (C++: const lvar_t &) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: lvar_uservec_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25132,16 +27703,37 @@ class lvars_t(qvector_lvar_t) | delete_lvars_t(self) | | find(self, *args) -> 'lvar_t *' + | Find variable at the specified location. + | | find(self, ll) -> lvar_t + | @param ll: variable location (C++: const lvar_locator_t &) + | @return: pointer to variable or NULL | | find_input_lvar(self, *args) -> 'int' + | Find input variable at the specified location. + | | find_input_lvar(self, argloc, _size) -> int + | @param argloc: variable location (C++: const vdloc_t &) + | @param _size: variable size (C++: int) + | @return: -1 if failed, otherwise the index into the variables vector. | | find_lvar(self, *args) -> 'int' + | Find variable at the specified location. + | | find_lvar(self, location, width, defblk=-1) -> int + | @param location: variable location (C++: const vdloc_t &) + | @param width: variable size (C++: int) + | @param defblk: definition block of the lvar. -1 means any block (C++: + | int) + | @return: -1 if failed, otherwise the index into the variables vector. | | find_stkvar(self, *args) -> 'int' + | Find stack variable at the specified location. + | | find_stkvar(self, spoff, width) -> int + | @param spoff: offset from the minimal sp (C++: sval_t) + | @param width: variable size (C++: int) + | @return: -1 if failed, otherwise the index into the variables vector. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25154,9 +27746,11 @@ class lvars_t(qvector_lvar_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -25166,22 +27760,28 @@ class lvars_t(qvector_lvar_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< lvar_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: lvar_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | at = __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -25205,7 +27805,12 @@ class lvars_t(qvector_lvar_t) | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t + | it: qvector< lvar_t >::iterator + | + | | erase(self, first, last) -> lvar_t + | first: qvector< lvar_t >::iterator + | last: qvector< lvar_t >::iterator | | extract(self, *args) -> 'lvar_t *' | extract(self) -> lvar_t @@ -25215,38 +27820,51 @@ class lvars_t(qvector_lvar_t) | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) + | x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: lvar_t * + | len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t + | it: qvector< lvar_t >::iterator + | x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -25272,14 +27890,12 @@ make_num(*args) 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: object type. (C++: const tinfo_t &) - @return: "type*". for example, if 'char' is passed as the argument, + make_pointer(type) -> tinfo_t + @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: @@ -25288,16 +27904,14 @@ make_ref(e) 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: 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. + mark_cfunc_dirty(ea, close_views=False) -> bool + @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: @@ -25325,6 +27939,7 @@ class mba_range_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, mbr) -> bool + | @param mbr (C++: const mba_ranges_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25353,7 +27968,11 @@ class mba_ranges_t(builtins.object) | | __init__(self, *args) | __init__(self, _pfn=None) -> mba_ranges_t + | _pfn: func_t * + | + | | __init__(self, r) -> mba_ranges_t + | r: rangevec_t const & | | __repr__ = _swig_repr(self) | @@ -25393,10 +28012,10 @@ class mba_ranges_t(builtins.object) | 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 +28024,74 @@ 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) + | vp: vd_printer_t & | | _register(self, *args) -> 'void' | _register(self) | + | alloc_fict_ea(self, *args) -> '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 LDManother 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. + | + | alloc_fict_ea(self, real_ea) -> ea_t + | @param real_ea (C++: ea_t) + | @return: a unique fictional address + | + | alloc_kreg(self, *args) -> 'mreg_t' + | Allocate a kernel register. + | + | alloc_kreg(self, size, check_size=True) -> mreg_t + | @param size: size of the register in bytes (C++: size_t) + | @param check_size: if true, only the sizes that correspond to a size + | of a basic type will be accepted. (C++: bool) + | @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 and determine calling conventions. + | | analyze_calls(self, acflags) -> int + | @param acflags: permitted actions that are necessary for successful + | detection of calling conventions. See Bits for + | analyze_calls() (C++: int) + | @return: number of calls. -1 means error. | | arg(self, *args) -> 'lvar_t const &' + | Get input argument of the decompiled function. + | | arg(self, n) -> lvar_t + | @param n: argument number (0..nargs-1) (C++: int) + | + | | arg(self, n) -> lvar_t + | @param n: argument number (0..nargs-1) (C++: int) | | argbase(self, *args) -> 'sval_t' | argbase(self) -> sval_t @@ -25440,7 +28106,10 @@ class mbl_array_t(builtins.object) | 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. | | calc_shins_flags(self, *args) -> 'int' | calc_shins_flags(self) -> int @@ -25456,18 +28125,30 @@ class mbl_array_t(builtins.object) | | clr_mba_flags(self, *args) -> 'void' | clr_mba_flags(self, f) + | @param f (C++: int) | | clr_mba_flags2(self, *args) -> 'void' | clr_mba_flags2(self, f) + | @param f (C++: int) | | combine_blocks(self, *args) -> 'bool' - | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. + | It calls 'remove_empty_blocks()' as well. | | common_stkvars_stkargs(self, *args) -> 'bool' | common_stkvars_stkargs(self) -> bool | | copy_block(self, *args) -> '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. + | | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t + | @param blk: block to copy (C++: mblock_t *) + | @param new_serial: position of the copied block (C++: int) + | @param cpblk_flags: combination of Batch decompilation bits ... bits + | (C++: int) + | @return: pointer to the new copy | | deleted_pairs(self, *args) -> 'bool' | deleted_pairs(self) -> bool @@ -25479,22 +28160,60 @@ class mbl_array_t(builtins.object) | 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 (C++: bool) + | @param title (C++: const char *) | | find_mop(self, *args) -> '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. + | | find_mop(self, ctx, ea, is_dest, list) -> mop_t + | @param ctx: context information for the result (C++: op_parent_info_t + | *) + | @param ea: desired address of the operand (C++: ea_t) + | @param is_dest: search for destination operand? this argument may be + | ignored if the exact match could not be found (C++: + | bool) + | @param list: list of locations the correspond to the operand (C++: + | const mlist_t &) + | @return: pointer to the operand or NULL. | | for_all_insns(self, *args) -> 'int' + | Visit all instructions. This function visits all instruction and + | subinstructions. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' + | Visit all operands of all instructions. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_topinsns(self, *args) -> 'int' + | Visit all top level instructions. + | | for_all_topinsns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero + | + | free_kreg(self, *args) -> 'void' + | Free a kernel register. If wrong arguments are passed, this function + | will generate an internal error. + | + | free_kreg(self, reg, size) + | @param reg: a previously allocated kernel register (C++: mreg_t) + | @param size: size of the register in bytes (C++: size_t) | | generated_asserts(self, *args) -> 'bool' | generated_asserts(self) -> bool @@ -25506,10 +28225,12 @@ class mbl_array_t(builtins.object) | 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 (C++: const lvar_t &) | | get_lvars_region(self, *args) -> 'ivl_t const &' | get_lvars_region(self) -> ivl_t @@ -25521,8 +28242,14 @@ class mbl_array_t(builtins.object) | get_mba_flags2(self) -> int | | get_mblock(self, *args) -> 'mblock_t *' + | Get basic block by its serial number. + | | get_mblock(self, n) -> mblock_t + | @param n (C++: int) + | + | | get_mblock(self, n) -> mblock_t + | @param n (C++: int) | | get_shadow_region(self, *args) -> 'ivl_t const &' | get_shadow_region(self) -> ivl_t @@ -25531,7 +28258,11 @@ class mbl_array_t(builtins.object) | get_stack_region(self) -> ivl_t | | get_std_region(self, *args) -> 'ivl_t const &' + | Get information about various memory regions. We map the stack frame + | to the global memory, to some unused range. + | | get_std_region(self, idx) -> ivl_t + | @param idx (C++: memreg_index_t) | | graph_insns(self, *args) -> 'bool' | graph_insns(self) -> bool @@ -25547,9 +28278,19 @@ class mbl_array_t(builtins.object) | | idaloc2vd(self, *args) -> 'vdloc_t' | idaloc2vd(self, loc, width) -> vdloc_t + | @param loc (C++: const argloc_t &) + | @param width (C++: int) | | insert_block(self, *args) -> '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. + | | insert_block(self, bblk) -> mblock_t + | @param bblk: the new block will be inserted before BBLK (C++: int) + | @return: ptr to the new block | | is_cdtr(self, *args) -> 'bool' | is_cdtr(self) -> bool @@ -25568,6 +28309,7 @@ class mbl_array_t(builtins.object) | | is_stkarg(self, *args) -> 'bool' | is_stkarg(self, v) -> bool + | @param v (C++: const lvar_t &) | | is_thunk(self, *args) -> 'bool' | is_thunk(self) -> bool @@ -25584,17 +28326,37 @@ class mbl_array_t(builtins.object) | lvars_renamed(self, *args) -> 'bool' | lvars_renamed(self) -> bool | + | map_fict_ea(self, *args) -> 'ea_t' + | Resolve a fictional address. This function provides a reverse of the + | mapping made by 'alloc_fict_ea()' . + | + | map_fict_ea(self, fict_ea) -> ea_t + | @param fict_ea: fictional definition address (C++: ea_t) + | @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. | | optimize_local(self, *args) -> 'int' + | Optimize each basic block locally + | | optimize_local(self, locopt_bits) -> int + | @param locopt_bits: combination of Bits for optimize_local() bits + | (C++: int) + | @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 @@ -25612,10 +28374,15 @@ class mbl_array_t(builtins.object) | regargs_is_not_aligned(self) -> bool | | remove_block(self, *args) -> 'bool' + | Delete a block. + | | remove_block(self, blk) -> bool + | @param blk: block to delete (C++: mblock_t *) + | @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 + | Delete all empty blocks. | | returns_fpval(self, *args) -> 'bool' | returns_fpval(self) -> bool @@ -25623,17 +28390,25 @@ class mbl_array_t(builtins.object) | rtype_refined(self, *args) -> 'bool' | rtype_refined(self) -> bool | + | save_snapshot(self, *args) -> 'void' + | Create and save microcode snapshot. + | + | save_snapshot(self, description) + | @param description (C++: const char *) + | | saverest_done(self, *args) -> 'bool' | saverest_done(self) -> bool | | serialize(self, *args) -> 'void' - | serialize(self) + | Serialize mbl array into a sequence of bytes. | | set_mba_flags(self, *args) -> 'void' | set_mba_flags(self, f) + | @param f (C++: int) | | set_mba_flags2(self, *args) -> 'void' | set_mba_flags2(self, f) + | @param f (C++: int) | | short_display(self, *args) -> 'bool' | short_display(self) -> bool @@ -25646,9 +28421,11 @@ class mbl_array_t(builtins.object) | | stkoff_ida2vd(self, *args) -> 'sval_t' | stkoff_ida2vd(self, off) -> sval_t + | @param off (C++: sval_t) | | stkoff_vd2ida(self, *args) -> 'sval_t' | stkoff_vd2ida(self, off) -> sval_t + | @param off (C++: sval_t) | | term(self, *args) -> 'void' | term(self) @@ -25664,10 +28441,25 @@ class mbl_array_t(builtins.object) | | vd2idaloc(self, *args) -> 'argloc_t' | vd2idaloc(self, loc, width, spd) -> argloc_t + | @param loc (C++: const vdloc_t &) + | @param width (C++: int) + | spd: sval_t + | + | | vd2idaloc(self, loc, width) -> argloc_t + | @param loc (C++: const vdloc_t &) + | @param width (C++: int) | | verify(self, *args) -> 'void' + | Verify microcode consistency. + | | verify(self, always) + | @param always: 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. (C++: bool) | | write_to_const_detected(self, *args) -> 'bool' | write_to_const_detected(self) -> bool @@ -25675,8 +28467,9 @@ 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 + | bytes: uchar const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25688,153 +28481,154 @@ 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 + | mba_t_aliased_args_get(self) -> ivl_t | | aliased_memory - | mbl_array_t_aliased_memory_get(self) -> ivlset_t + | mba_t_aliased_memory_get(self) -> ivlset_t | | aliased_vars - | mbl_array_t_aliased_vars_get(self) -> ivl_t + | mba_t_aliased_vars_get(self) -> ivl_t | | argidx - | mbl_array_t_argidx_get(self) -> intvec_t + | mba_t_argidx_get(self) -> intvec_t | | blocks - | mbl_array_t_blocks_get(self) -> mblock_t + | mba_t_blocks_get(self) -> mblock_t | | cc - | mbl_array_t_cc_get(self) -> cm_t + | mba_t_cc_get(self) -> cm_t | | consumed_argregs - | mbl_array_t_consumed_argregs_get(self) -> rlist_t + | mba_t_consumed_argregs_get(self) -> rlist_t | | entry_ea - | mbl_array_t_entry_ea_get(self) -> ea_t + | mba_t_entry_ea_get(self) -> ea_t | | error_ea - | mbl_array_t_error_ea_get(self) -> ea_t + | mba_t_error_ea_get(self) -> ea_t | | error_strarg - | mbl_array_t_error_strarg_get(self) -> qstring * + | mba_t_error_strarg_get(self) -> qstring * | | final_type - | mbl_array_t_final_type_get(self) -> bool + | mba_t_final_type_get(self) -> bool | | first_epilog_ea - | mbl_array_t_first_epilog_ea_get(self) -> ea_t + | mba_t_first_epilog_ea_get(self) -> ea_t | | fpd - | mbl_array_t_fpd_get(self) -> sval_t + | mba_t_fpd_get(self) -> sval_t | | frregs - | mbl_array_t_frregs_get(self) -> sval_t + | mba_t_frregs_get(self) -> sval_t | | frsize - | mbl_array_t_frsize_get(self) -> sval_t + | mba_t_frsize_get(self) -> sval_t | | fti_flags - | mbl_array_t_fti_flags_get(self) -> int + | mba_t_fti_flags_get(self) -> int | | fullsize - | mbl_array_t_fullsize_get(self) -> sval_t + | mba_t_fullsize_get(self) -> sval_t | | gotoff_stkvars - | mbl_array_t_gotoff_stkvars_get(self) -> ivlset_t + | mba_t_gotoff_stkvars_get(self) -> ivlset_t | | idb_node - | mbl_array_t_idb_node_get(self) -> netnode + | mba_t_idb_node_get(self) -> netnode | | idb_spoiled - | mbl_array_t_idb_spoiled_get(self) -> reginfovec_t + | mba_t_idb_spoiled_get(self) -> reginfovec_t | | idb_type - | mbl_array_t_idb_type_get(self) -> tinfo_t + | mba_t_idb_type_get(self) -> tinfo_t | | inargoff - | mbl_array_t_inargoff_get(self) -> sval_t + | mba_t_inargoff_get(self) -> sval_t | | label - | mbl_array_t_label_get(self) -> qstring * + | mba_t_label_get(self) -> qstring * | | last_prolog_ea - | mbl_array_t_last_prolog_ea_get(self) -> ea_t + | mba_t_last_prolog_ea_get(self) -> ea_t | | maturity - | mbl_array_t_maturity_get(self) -> mba_maturity_t + | mba_t_maturity_get(self) -> mba_maturity_t | | mbr - | mbl_array_t_mbr_get(self) -> mba_ranges_t + | mba_t_mbr_get(self) -> mba_ranges_t | | minargref - | mbl_array_t_minargref_get(self) -> sval_t + | mba_t_minargref_get(self) -> sval_t | | minstkref - | mbl_array_t_minstkref_get(self) -> sval_t + | mba_t_minstkref_get(self) -> sval_t | | minstkref_ea - | mbl_array_t_minstkref_ea_get(self) -> ea_t + | mba_t_minstkref_ea_get(self) -> ea_t | | natural - | mbl_array_t_natural_get(self) -> mblock_t ** + | mba_t_natural_get(self) -> mblock_t ** | | nodel_memory - | mbl_array_t_nodel_memory_get(self) -> mlist_t + | mba_t_nodel_memory_get(self) -> mlist_t | | notes - | mbl_array_t_notes_get(self) -> hexwarns_t + | mba_t_notes_get(self) -> hexwarns_t | | npurged - | mbl_array_t_npurged_get(self) -> int + | mba_t_npurged_get(self) -> int | | occurred_warns - | mbl_array_t_occurred_warns_get(self) -> uchar [32] + | mba_t_occurred_warns_get(self) -> uchar [32] | | pfn_flags - | mbl_array_t_pfn_flags_get(self) -> int + | mba_t_pfn_flags_get(self) -> int | | qty - | mbl_array_t_qty_get(self) -> int + | mba_t_qty_get(self) -> int | | reqmat - | mbl_array_t_reqmat_get(self) -> mba_maturity_t + | mba_t_reqmat_get(self) -> mba_maturity_t | | restricted_memory - | mbl_array_t_restricted_memory_get(self) -> ivlset_t + | mba_t_restricted_memory_get(self) -> ivlset_t | | retsize - | mbl_array_t_retsize_get(self) -> int + | mba_t_retsize_get(self) -> int | | retvaridx - | mbl_array_t_retvaridx_get(self) -> int + | mba_t_retvaridx_get(self) -> int | | shadow_args - | mbl_array_t_shadow_args_get(self) -> int + | mba_t_shadow_args_get(self) -> int | | spd_adjust - | mbl_array_t_spd_adjust_get(self) -> sval_t + | mba_t_spd_adjust_get(self) -> sval_t | | spoiled_list - | mbl_array_t_spoiled_list_get(self) -> mlist_t + | mba_t_spoiled_list_get(self) -> mlist_t | | stacksize - | mbl_array_t_stacksize_get(self) -> sval_t + | mba_t_stacksize_get(self) -> sval_t | | std_ivls - | mbl_array_t_std_ivls_get(self) -> ivl_with_name_t + | mba_t_std_ivls_get(self) -> ivl_with_name_t | | thisown | The membership flag | | tmpstk_size - | mbl_array_t_tmpstk_size_get(self) -> sval_t + | mba_t_tmpstk_size_get(self) -> sval_t | | vars - | mbl_array_t_vars_get(self) -> lvars_t + | mba_t_vars_get(self) -> lvars_t -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 + bytes: uchar const * Help on class mbl_graph_t in module ida_hexrays: @@ -25857,25 +28651,54 @@ class mbl_graph_t(simple_graph_t) | get_chain_stamp(self) -> int | | get_du(self, *args) -> 'graph_chains_t *' + | Get def-use chains. + | | get_du(self, gctype) -> graph_chains_t + | @param gctype (C++: gctype_t) | | get_mblock(self, *args) -> 'mblock_t *' | get_mblock(self, n) -> mblock_t + | @param n (C++: int) | | get_ud(self, *args) -> 'graph_chains_t *' + | Get use-def chains. + | | get_ud(self, gctype) -> graph_chains_t + | @param gctype (C++: gctype_t) | | is_du_chain_dirty(self, *args) -> 'bool' + | Is the def-use chain of the specified kind dirty? + | | is_du_chain_dirty(self, gctype) -> bool + | @param gctype (C++: gctype_t) | | is_redefined_globally(self, *args) -> 'bool' + | Is LIST redefined in the graph? + | | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | @param list (C++: const mlist_t &) + | @param b1 (C++: int) + | @param b2 (C++: int) + | @param m1 (C++: const minsn_t *) + | @param m2 (C++: const minsn_t *) + | @param maymust (C++: maymust_t) | | is_ud_chain_dirty(self, *args) -> 'bool' + | Is the use-def chain of the specified kind dirty? + | | is_ud_chain_dirty(self, gctype) -> bool + | @param gctype (C++: gctype_t) | | is_used_globally(self, *args) -> 'bool' + | Is LIST used in the graph? + | | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | @param list (C++: const mlist_t &) + | @param b1 (C++: int) + | @param b2 (C++: int) + | @param m1 (C++: const minsn_t *) + | @param m2 (C++: const minsn_t *) + | @param maymust (C++: maymust_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25915,64 +28738,208 @@ class mblock_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, vp) + | vp: vd_printer_t & | | append_def_list(self, *args) -> 'void' + | 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. + | | append_def_list(self, list, op, maymust) + | @param list: ptr to the output buffer. we will append to it. (C++: + | mlist_t *) + | @param op: operand to calculate the def list of (C++: const mop_t &) + | @param maymust: should we calculate 'may-def' or 'must-def' list? see + | maymust_t for more details. (C++: maymust_t) | | append_use_list(self, *args) -> 'void' + | 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. + | | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) + | @param list: ptr to the output buffer. we will append to it. (C++: + | mlist_t *) + | @param op: operand to calculate the use list of (C++: const mop_t &) + | @param maymust: should we calculate 'may-use' or 'must-use' list? see + | maymust_t for more details. (C++: maymust_t) + | @param mask: 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. + | (C++: bitrange_t) | | build_def_list(self, *args) -> '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. + | | build_def_list(self, ins, maymust) -> mlist_t + | @param ins: instruction to calculate the def list of (C++: const + | minsn_t &) + | @param maymust: should we calculate 'may-def' or 'must-def' list? see + | maymust_t for more details. (C++: maymust_t) + | @return: the calculated def-list | | build_lists(self, *args) -> 'int' + | Build def-use lists and eliminate deads. + | | build_lists(self, kill_deads) -> int + | @param kill_deads: do delete dead instructions? (C++: bool) + | @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 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. + | | build_use_list(self, ins, maymust) -> mlist_t + | @param ins: instruction to calculate the use list of (C++: const + | minsn_t &) + | @param maymust: should we calculate 'may-use' or 'must-use' list? see + | maymust_t for more details. (C++: maymust_t) + | @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 (C++: const char *) | | empty(self, *args) -> 'bool' | empty(self) -> bool | | find_access(self, *args) -> 'minsn_t *' + | Find the instruction that accesses the specified operand. This + | function search inside one block. + | | find_access(self, op, parent, mend, fdflags) -> minsn_t + | @param op: operand to search for (C++: const mop_t &) + | @param parent (C++: minsn_t **) + | @param mend (C++: const minsn_t *) + | @param fdflags (C++: int) + | @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. NULL means 'not found'. | | find_def(self, *args) -> 'minsn_t *' | find_def(self, op, p_i1, i2, fdflags) -> minsn_t + | @param op (C++: const mop_t &) + | @param p_i1 (C++: minsn_t **) + | @param i2 (C++: const minsn_t *) + | @param fdflags (C++: int) | | find_first_use(self, *args) -> 'minsn_t *' + | Find the first insn that uses the specified list in the insn range. + | | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | @param list: list of locations. LIST may be modified by the function: + | redefined locations will be removed from it. (C++: + | mlist_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) + | @return: pointer to such instruction or NULL. Upon return LIST will + | contain only locations not redefined by insns [i1..result] | | find_redefinition(self, *args) -> 'minsn_t *' + | Find the first insn that redefines any part of the list in the insn + | range. + | | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | @param list: list of locations to check. (C++: const mlist_t &) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) + | @return: pointer to such instruction or NULL. | | find_use(self, *args) -> 'minsn_t *' | find_use(self, op, p_i1, i2, fdflags) -> minsn_t + | @param op (C++: const mop_t &) + | @param p_i1 (C++: minsn_t **) + | @param i2 (C++: const minsn_t *) + | @param fdflags (C++: int) | | for_all_insns(self, *args) -> 'int' + | Visit all instructions. This function visits subinstructions too. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() | | for_all_ops(self, *args) -> 'int' + | Visit all operands. This function visit subinstruction operands too. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @return: zero or the value returned by mv.visit_mop() | | for_all_uses(self, *args) -> 'int' + | Visit all operands that use LIST. + | | for_all_uses(self, list, i1, i2, mmv) -> int + | @param list: ptr to the list of locations. it may be modified: parts + | that get redefined by the instructions in [i1,i2) will be + | deleted. (C++: mlist_t *) + | @param i1: starting instruction. must be a top level insn. (C++: + | minsn_t *) + | @param i2: ending instruction (excluded). must be a top level insn. + | (C++: minsn_t *) + | @param mmv: operand visitor (C++: mlist_mop_visitor_t &) + | @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 register instructions in the block. Assertions are + | skipped by this function. | | get_valranges(self, *args) -> 'bool' + | Find possible values for a block. + | | get_valranges(self, res, vivl, vrflags) -> bool + | @param res: set of value ranges (C++: valrng_t *) + | @param vivl: what to search for (C++: const vivl_t &) + | @param vrflags: combination of bits for get_valranges bits (C++: + | int) + | + | | get_valranges(self, res, vivl, m, vrflags) -> bool + | @param res: set of value ranges (C++: valrng_t *) + | @param vivl: what to search for (C++: const vivl_t &) + | m: minsn_t const * + | @param vrflags: combination of bits for get_valranges bits (C++: + | int) | | insert_into_block(self, *args) -> 'minsn_t *' + | Insert instruction into the doubly linked list + | | insert_into_block(self, nm, om) -> minsn_t + | @param nm: new instruction (C++: minsn_t *) + | @param om: existing instruction, part of the doubly linked list if + | NULL, then the instruction will be inserted at the + | beginning of the list NM will be inserted immediately after + | OM (C++: minsn_t *) + | @return: pointer to NM | | is_branch(self, *args) -> 'bool' | is_branch(self) -> bool @@ -25984,10 +28951,32 @@ class mblock_t(builtins.object) | is_nway(self) -> bool | | is_redefined(self, *args) -> 'bool' + | Is the list redefined by the specified instructions? + | | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | @param list: list of locations to check. (C++: const mlist_t &) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) | | is_rhs_redefined(self, *args) -> 'bool' + | Is the right hand side of the instruction redefined the insn range? + | "right hand side" corresponds to the source operands of the + | instruction. + | | is_rhs_redefined(self, ins, i1, i2) -> bool + | @param ins: instruction to consider (C++: const minsn_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) | | is_simple_goto_block(self, *args) -> 'bool' | is_simple_goto_block(self) -> bool @@ -25999,7 +28988,20 @@ class mblock_t(builtins.object) | is_unknown_call(self) -> bool | | is_used(self, *args) -> 'bool' + | Is the list used by the specified instruction range? + | | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | @param list: list of locations. LIST may be modified by the function: + | redefined locations will be removed from it. (C++: + | mlist_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) | | lists_dirty(self, *args) -> 'bool' | lists_dirty(self) -> bool @@ -26011,7 +29013,12 @@ class mblock_t(builtins.object) | make_lists_ready(self) -> int | | make_nop(self, *args) -> 'void' + | 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. + | | make_nop(self, m) + | @param m (C++: minsn_t *) | | mark_lists_dirty(self, *args) -> 'void' | mark_lists_dirty(self) @@ -26020,28 +29027,49 @@ class mblock_t(builtins.object) | 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. | | optimize_insn(self, *args) -> 'int' + | Optimize one instruction in the context of the block. + | | optimize_insn(self, m, optflags=0x0002|0x0004) -> int + | @param m: pointer to a top level instruction (C++: minsn_t *) + | @param optflags: combination of optimization flags bits (C++: int) + | @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). | | pred(self, *args) -> 'int' | pred(self, n) -> int + | @param n (C++: int) | | preds(self) | Iterates the list of predecessor blocks | | remove_from_block(self, *args) -> 'minsn_t *' + | Remove instruction from the doubly linked list + | | remove_from_block(self, m) -> minsn_t + | @param m: instruction to remove The removed instruction is not + | deleted, the caller gets its ownership (C++: minsn_t *) + | @return: pointer to the next instruction | | request_demote64(self, *args) -> 'void' | request_demote64(self) @@ -26051,6 +29079,7 @@ class mblock_t(builtins.object) | | succ(self, *args) -> 'int' | succ(self, n) -> int + | @param n (C++: int) | | succs(self) | Iterates the list of successor blocks @@ -26089,7 +29118,7 @@ class mblock_t(builtins.object) | mblock_t_maybuse_get(self) -> mlist_t | | mba - | mblock_t_mba_get(self) -> mbl_array_t + | mblock_t_mba_get(self) -> mba_t | | minbargref | mblock_t_minbargref_get(self) -> sval_t @@ -26144,7 +29173,7 @@ class mcallarg_t(mop_t) | | __init__(self, *args) | __init__(self) -> mcallarg_t - | __init__(self, rarg) -> mcallarg_t + | rarg: mop_t const & | | __repr__ = _swig_repr(self) | @@ -26153,23 +29182,43 @@ class mcallarg_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | copy_mop(self, *args) -> 'void' | copy_mop(self, op) + | @param op (C++: const mop_t &) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | make_int(self, *args) -> 'void' | make_int(self, val, val_ea, opno=0) + | @param val (C++: int) + | @param val_ea (C++: ea_t) + | @param opno (C++: int) | | make_uint(self, *args) -> 'void' | make_uint(self, val, val_ea, opno=0) + | @param val (C++: int) + | @param val_ea (C++: ea_t) + | @param opno (C++: int) | | set_regarg(self, *args) -> 'void' | set_regarg(self, mr, sz, tif) + | @param mr (C++: mreg_t) + | @param sz (C++: int) + | @param tif (C++: const tinfo_t &) + | + | | set_regarg(self, mr, tif) + | @param mr (C++: mreg_t) + | @param tif (C++: const tinfo_t &) + | + | | set_regarg(self, mr, dt, sign=type_unsigned) + | @param mr (C++: mreg_t) + | dt: char + | sign: type_sign_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26194,12 +29243,15 @@ class mcallarg_t(mop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -26261,35 +29313,90 @@ class mcallarg_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) -> 'void' + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) -> 'void' + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) -> 'void' + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) -> 'void' + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) -> 'void' + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) -> 'void' + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) -> 'void' + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) -> 'void' + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) -> 'void' + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -26311,90 +29418,172 @@ class mcallarg_t(mop_t) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) -> '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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) -> 'void' + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) -> 'bool' + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) -> '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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) -> 'void' + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | empty(self, *args) -> 'bool' | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) -> 'void' | erase(self) @@ -26403,65 +29592,122 @@ class mcallarg_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) -> '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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) -> 'minsn_t *' + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) -> 'bool' + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | 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_bit_reg(self) -> bool + | reg: mreg_t | | 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' + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @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 (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) -> 'bool' + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | 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 a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -26473,18 +29719,30 @@ class mcallarg_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) -> 'bool' - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) -> 'bool' - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -26496,53 +29754,136 @@ class mcallarg_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int + | @param rop (C++: const mop_t &) | | make_blkref(self, *args) -> 'void' + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) -> 'bool' + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) -> 'bool' + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) -> 'void' + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) -> 'void' + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) -> 'bool' + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) -> 'void' + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) -> 'void' + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) -> 'void' + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) -> 'void' + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) -> 'bool' + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | 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' + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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 +29893,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) | @@ -26559,19 +29903,32 @@ class mcallarg_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) -> '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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | value(self, *args) -> '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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -26646,13 +30003,15 @@ class mcallargs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< mcallarg_t > const & | | __getitem__(self, *args) -> 'mcallarg_t const &' | __getitem__(self, i) -> mcallarg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> mcallargs_t - | __init__(self, x) -> mcallargs_t + | 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,23 +30021,29 @@ class mcallargs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< mcallarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: mcallarg_t const & | | __swig_destroy__ = delete_mcallargs_t(...) | delete_mcallargs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: mcallarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: mcallarg_t const & | | at(self, *args) -> 'mcallarg_t const &' | at(self, _idx) -> mcallarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -26702,52 +30067,74 @@ class mcallargs_t(builtins.object) | | erase(self, *args) -> 'qvector< mcallarg_t >::iterator' | erase(self, it) -> mcallarg_t + | it: qvector< mcallarg_t >::iterator + | + | | erase(self, first, last) -> mcallarg_t + | first: qvector< mcallarg_t >::iterator + | 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 + | x: mcallarg_t const & + | + | | find(self, x) -> mcallarg_t + | x: mcallarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mcallarg_t()) + | x: mcallarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: mcallarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: mcallarg_t * + | len: size_t | | insert(self, *args) -> 'qvector< mcallarg_t >::iterator' | insert(self, it, x) -> mcallarg_t + | it: qvector< mcallarg_t >::iterator + | x: mcallarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mcallarg_t &' | push_back(self, x) - | push_back(self) -> mcallarg_t + | x: mcallarg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: mcallarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< mcallarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -26778,6 +30165,8 @@ class mcallinfo_t(builtins.object) | | __init__(self, *args) | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t + | _callee: ea_t + | _sargs: int | | __repr__ = _swig_repr(self) | @@ -26786,6 +30175,8 @@ class mcallinfo_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, size=-1, shins_flags=0x04|0x02) + | size: int + | shins_flags: int | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -26798,9 +30189,11 @@ class mcallinfo_t(builtins.object) | | lexcompare(self, *args) -> 'int' | lexcompare(self, f) -> int + | @param f (C++: const mcallinfo_t &) | | set_type(self, *args) -> 'bool' | set_type(self, type) -> bool + | @param type (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26874,24 +30267,30 @@ class mcases_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: mcases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: mcases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: mcases_t const & | | __init__(self, *args) | __init__(self) -> mcases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: mcases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: mcases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: mcases_t const & | | __repr__ = _swig_repr(self) | @@ -26903,6 +30302,7 @@ class mcases_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: mcases_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -26912,12 +30312,14 @@ class mcases_t(builtins.object) | | resize(self, *args) -> 'void' | resize(self, s) + | @param s (C++: int) | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: mcases_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26946,6 +30348,7 @@ Help on function mcode_modifies_d in module ida_hexrays: mcode_modifies_d(*args) -> 'bool' mcode_modifies_d(mcode) -> bool + @param mcode (C++: mcode_t) Help on class microcode_filter_t in module ida_hexrays: @@ -26958,6 +30361,7 @@ class microcode_filter_t(builtins.object) | | __init__(self, *args) | __init__(self) -> microcode_filter_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -26965,10 +30369,20 @@ class microcode_filter_t(builtins.object) | delete_microcode_filter_t(self) | | apply(self, *args) -> 'merror_t' + | generate microcode for an instruction + | | apply(self, cdg) -> merror_t + | @param cdg (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to + | the next instruction MERR_INSN - not generated - the caller + | should try the standard way else - error | | match(self, *args) -> 'bool' + | check if the filter object is to be appied + | | match(self, cdg) -> bool + | @param cdg (C++: codegen_t &) + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26991,10 +30405,15 @@ class minsn_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> minsn_t + | _ea: ea_t + | + | | __init__(self, m) -> minsn_t + | m: minsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, ri) -> bool + | ri: minsn_t const & | | __repr__ = _swig_repr(self) | @@ -27011,7 +30430,9 @@ class minsn_t(builtins.object) | _ensure_no_obj(self, o, attr, attr_is_acquired) | | _make_nop(self, *args) -> 'void' - | _make_nop(self) + | Convert instruction to nop. This function erases all info but the + | prev/next fields. In most cases it is better to use + | 'mblock_t::make_nop()' , which also marks the block lists as dirty. | | _maybe_disown_and_deregister(self) | @@ -27030,6 +30451,7 @@ class minsn_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) @@ -27062,47 +30484,97 @@ class minsn_t(builtins.object) | clr_tailcall(self) | | contains_call(self, *args) -> 'bool' + | Does the instruction contain a call? + | | contains_call(self, with_helpers=False) -> bool + | @param with_helpers (C++: bool) | | contains_opcode(self, *args) -> 'bool' + | Does the instruction have the specified opcode? This function searches + | subinstructions as well. + | | contains_opcode(self, mcode) -> bool + | @param mcode: opcode to search for. (C++: mcode_t) | | dstr(self, *args) -> 'char const *' - | dstr(self) -> char const * + | Get displayable text without tags in a static buffer. | | equal_insns(self, *args) -> 'bool' + | Compare instructions. This is the main comparison function for + | instructions. + | | equal_insns(self, m, eqflags) -> bool + | @param m: instruction to compare with (C++: const minsn_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | find_call(self, *args) -> 'minsn_t *' + | Find a call instruction. Check for the current instruction and its + | subinstructions. + | | find_call(self, with_helpers=False) -> minsn_t + | @param with_helpers: consider helper calls as well? (C++: bool) | | find_ins_op(self, *args) -> 'minsn_t *' + | Find an operand that is a subinsruction with the specified opcode. + | This function checks only the 'l' and 'r' operands of the current + | insn. + | | find_ins_op(self, op=m_nop) -> minsn_t + | @param op: opcode to search for (C++: mcode_t) + | @return: &l or &r or NULL | | find_num_op(self, *args) -> 'mop_t *' - | find_num_op(self) -> mop_t + | Find a numeric operand of the current instruction. This function + | checks only the 'l' and 'r' operands of the current insn. | | find_opcode(self, *args) -> 'minsn_t *' + | Find a (sub)insruction with the specified opcode. + | | find_opcode(self, mcode) -> minsn_t + | @param mcode: opcode to search for. (C++: mcode_t) + | + | | find_opcode(self, mcode) -> minsn_t + | @param mcode: opcode to search for. (C++: mcode_t) | | for_all_insns(self, *args) -> 'int' + | Visit all instructions. This function visits the instruction itself + | and all its subinstructions. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' + | Visit all instruction operands. This function visits subinstruction + | operands as well. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @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' + | Does the instruction have a side effect? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: 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. (C++: + | bool) | | is_after(self, *args) -> 'bool' + | Is the instruction after the specified one? + | | is_after(self, m) -> bool + | @param m: the instruction to compare against in the list (C++: const + | minsn_t *) | | is_alloca(self, *args) -> 'bool' | is_alloca(self) -> bool @@ -27111,7 +30583,15 @@ class minsn_t(builtins.object) | is_assert(self) -> bool | | is_between(self, *args) -> 'bool' + | Is the instruction in the specified range of instructions? + | | is_between(self, m1, m2) -> bool + | @param m1: beginning of the range in the doubly linked list (C++: + | const minsn_t *) + | @param m2: end of the range in the doubly linked list (excluded, may + | be NULL) This function assumes that m1 and m2 belong to the + | same basic block and they are top level instructions. (C++: + | const minsn_t *) | | is_bswap(self, *args) -> 'bool' | is_bswap(self) -> bool @@ -27135,7 +30615,13 @@ class minsn_t(builtins.object) | is_fpinsn(self) -> bool | | is_helper(self, *args) -> '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. + | | is_helper(self, name) -> bool + | @param name (C++: const char *) | | is_ignlowsrc(self, *args) -> 'bool' | is_ignlowsrc(self) -> bool @@ -27162,7 +30648,11 @@ class minsn_t(builtins.object) | is_multimov(self) -> bool | | is_noret_call(self, *args) -> 'bool' + | Is a non-returing call? + | | is_noret_call(self, ignore_noret_icall=False) -> bool + | @param ignore_noret_icall: if set, indirect calls to noret functions + | will return false (C++: bool) | | is_optional(self, *args) -> 'bool' | is_optional(self) -> bool @@ -27180,28 +30670,49 @@ class minsn_t(builtins.object) | 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 (C++: const minsn_t &) | | 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 + | 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 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. + | | optimize_solo(self, optflags=0) -> int + | @param optflags: combination of optimization flags bits (C++: int) + | @return: number of changes, 0-unchanged See also + | mblock_t::optimize_insn() | | optimize_subtree(self, *args) -> 'int' + | Optimize instruction in its context. Do not use this function, use + | mblock_t::optimize() + | | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int + | @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) | @@ -27246,6 +30757,7 @@ class minsn_t(builtins.object) | | set_split_size(self, *args) -> 'void' | set_split_size(self, s) + | @param s (C++: int) | | set_tailcall(self, *args) -> 'void' | set_tailcall(self) @@ -27254,10 +30766,18 @@ class minsn_t(builtins.object) | set_wild_match(self) | | setaddr(self, *args) -> 'void' + | Change the instruction address. This function modifies subinstructions + | as well. + | | setaddr(self, new_ea) + | @param new_ea (C++: ea_t) | | swap(self, *args) -> 'void' + | Swap two instructions. The prev/next fields are not modified by this + | function because it would corrupt the doubly linked list. + | | swap(self, m) + | @param m (C++: minsn_t &) | | was_noret_icall(self, *args) -> 'bool' | was_noret_icall(self) -> bool @@ -27322,6 +30842,9 @@ class minsn_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -27353,7 +30876,7 @@ class minsn_visitor_t(op_parent_info_t) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | topins | op_parent_info_t_topins_get(self) -> minsn_t @@ -27369,6 +30892,7 @@ class mlist_mop_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> mlist_mop_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -27377,6 +30901,7 @@ class mlist_mop_visitor_t(builtins.object) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op) -> int + | @param op (C++: mop_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27411,26 +30936,36 @@ class mlist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: mlist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: mlist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: mlist_t const & | | __init__(self, *args) | __init__(self) -> mlist_t - | __init__(self, ivl) -> mlist_t + | ivl: ivl_t const & + | + | | __init__(self, r, size) -> mlist_t + | r: mreg_t + | size: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: mlist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: mlist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: mlist_t const & | | __repr__ = _swig_repr(self) | @@ -27442,18 +30977,32 @@ class mlist_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) + | + | | add(self, r) -> bool + | @param r (C++: mreg_t) + | + | | add(self, ivl) -> bool + | ivl: ivl_t const & + | + | | add(self, lst) -> bool + | lst: mlist_t const & | | addmem(self, *args) -> 'bool' | addmem(self, ea, size) -> bool + | @param ea (C++: ea_t) + | @param size (C++: asize_t) | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: mlist_t const & | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -27466,35 +31015,53 @@ class mlist_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, r) -> bool + | @param r (C++: mreg_t) | | has_all(self, *args) -> 'bool' | has_all(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) | | has_any(self, *args) -> 'bool' | has_any(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) | | has_common(self, *args) -> 'bool' | has_common(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | has_memory(self, *args) -> 'bool' | has_memory(self) -> bool | | includes(self, *args) -> 'bool' | includes(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | intersect(self, *args) -> 'bool' | intersect(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | sub(self, *args) -> 'bool' | sub(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) + | + | | sub(self, ivl) -> bool + | ivl: ivl_t const & + | + | | sub(self, lst) -> bool + | lst: mlist_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: mlist_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27533,24 +31100,33 @@ class mnumber_t(operand_locator_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: mnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: mnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: mnumber_t const & | | __init__(self, *args) | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t + | v: uint64 + | _ea: ea_t + | n: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: mnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: mnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: mnumber_t const & | | __repr__ = _swig_repr(self) | @@ -27559,9 +31135,11 @@ class mnumber_t(operand_locator_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: mnumber_t const & | | update_value(self, *args) -> 'void' | update_value(self, val64) + | @param val64 (C++: uint64) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27598,29 +31176,25 @@ class mnumber_t(operand_locator_t) Help on function modify_user_lvar_info in module ida_hexrays: modify_user_lvar_info(*args) -> 'bool' + Modify saved local variable settings of one variable. + 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 + @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) -> '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 &) - @return: true if modified variables + modify_user_lvars(entry_ea, mlv) -> bool + @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: @@ -27636,8 +31210,13 @@ class mop_addr_t(mop_t) | | __init__(self, *args) | __init__(self) -> mop_addr_t - | __init__(self, ra) -> mop_addr_t + | ra: mop_addr_t const & + | + | | __init__(self, ra, isz, osz) -> mop_addr_t + | ra: mop_t const & + | isz: int + | osz: int | | __repr__ = _swig_repr(self) | @@ -27646,6 +31225,7 @@ class mop_addr_t(mop_t) | | lexcompare(self, *args) -> 'int' | lexcompare(self, ra) -> int + | @param ra (C++: const mop_addr_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27664,12 +31244,15 @@ class mop_addr_t(mop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -27731,35 +31314,90 @@ class mop_addr_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) -> 'void' + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) -> 'void' + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) -> 'void' + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) -> 'void' + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) -> 'void' + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) -> 'void' + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) -> 'void' + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) -> 'void' + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) -> 'void' + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -27778,90 +31416,169 @@ class mop_addr_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) -> '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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) -> 'void' + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) -> 'bool' + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) -> '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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) -> 'void' + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -27870,7 +31587,11 @@ class mop_addr_t(mop_t) | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) -> 'void' | erase(self) @@ -27879,65 +31600,122 @@ class mop_addr_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) -> '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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) -> 'minsn_t *' + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) -> 'bool' + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | 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_bit_reg(self) -> bool + | reg: mreg_t | | 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' + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @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 (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) -> 'bool' + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | 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 a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -27949,18 +31727,30 @@ class mop_addr_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) -> 'bool' - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) -> 'bool' - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -27972,50 +31762,132 @@ class mop_addr_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | make_blkref(self, *args) -> 'void' + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) -> 'bool' + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) -> 'bool' + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) -> 'void' + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) -> 'void' + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) -> 'bool' + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) -> 'void' + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) -> 'void' + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) -> 'void' + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) -> 'void' + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) -> 'bool' + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | 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' + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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 +31897,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) | @@ -28032,19 +31907,32 @@ class mop_addr_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) -> '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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | value(self, *args) -> '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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -28152,17 +32040,24 @@ class mop_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | rop: mop_t const & | | __init__(self, *args) | __init__(self) -> mop_t - | __init__(self, rop) -> mop_t + | rop: mop_t const & + | + | | __init__(self, _r, _s) -> mop_t + | _r: mreg_t + | _s: int | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | rop: mop_t const & | | __repr__ = _swig_repr(self) | @@ -28229,35 +32124,90 @@ class mop_t(builtins.object) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) -> 'void' + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) -> 'void' + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) -> 'void' + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) -> 'void' + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) -> 'void' + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) -> 'void' + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) -> 'void' + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) -> 'void' + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) -> 'void' + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -28276,90 +32226,169 @@ class mop_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) -> '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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) -> 'void' + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) -> 'bool' + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) -> '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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) -> 'void' + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -28368,7 +32397,11 @@ class mop_t(builtins.object) | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) -> 'void' | erase(self) @@ -28377,65 +32410,122 @@ class mop_t(builtins.object) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) -> '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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) -> 'minsn_t *' + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) -> 'bool' + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | 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_bit_reg(self) -> bool + | reg: mreg_t | | 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' + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @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 (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) -> 'bool' + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | 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 a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -28447,18 +32537,30 @@ class mop_t(builtins.object) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) -> 'bool' - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) -> 'bool' - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -28470,53 +32572,136 @@ class mop_t(builtins.object) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int + | @param rop (C++: const mop_t &) | | make_blkref(self, *args) -> 'void' + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) -> 'bool' + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) -> 'bool' + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) -> 'void' + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) -> 'void' + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) -> 'bool' + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) -> 'void' + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) -> 'void' + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) -> 'void' + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) -> 'void' + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) -> 'bool' + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | 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' + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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 +32711,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) | @@ -28533,19 +32721,32 @@ class mop_t(builtins.object) | set_undef_val(self) | | shift_mop(self, *args) -> '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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | value(self, *args) -> '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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -28630,6 +32831,9 @@ class mop_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -28638,6 +32842,9 @@ class mop_visitor_t(op_parent_info_t) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op, type, is_target) -> int + | @param op (C++: mop_t *) + | @param type (C++: const tinfo_t *) + | @param is_target (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28664,7 +32871,7 @@ class mop_visitor_t(op_parent_info_t) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | topins | op_parent_info_t_topins_get(self) -> minsn_t @@ -28678,13 +32885,15 @@ class mopvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< mop_t > const & | | __getitem__(self, *args) -> 'mop_t const &' | __getitem__(self, i) -> mop_t + | i: size_t | | __init__(self, *args) | __init__(self) -> mopvec_t - | __init__(self, x) -> mopvec_t + | 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,23 +32903,29 @@ class mopvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< mop_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: mop_t const & | | __swig_destroy__ = delete_mopvec_t(...) | delete_mopvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: mop_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: mop_t const & | | at(self, *args) -> 'mop_t const &' | at(self, _idx) -> mop_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -28734,52 +32949,74 @@ class mopvec_t(builtins.object) | | erase(self, *args) -> 'qvector< mop_t >::iterator' | erase(self, it) -> mop_t + | it: qvector< mop_t >::iterator + | + | | erase(self, first, last) -> mop_t + | first: qvector< mop_t >::iterator + | 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 + | x: mop_t const & + | + | | find(self, x) -> mop_t + | x: mop_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mop_t()) + | x: mop_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: mop_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: mop_t * + | len: size_t | | insert(self, *args) -> 'qvector< mop_t >::iterator' | insert(self, it, x) -> mop_t + | it: qvector< mop_t >::iterator + | x: mop_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mop_t &' | push_back(self, x) - | push_back(self) -> mop_t + | x: mop_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: mop_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< mop_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -28804,48 +33041,41 @@ class mopvec_t(builtins.object) 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) - @return: processor register id or -1 + mreg2reg(reg, width) -> int + @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) -> '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: 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) + must_mcode_close_block(mcode, including_calls) -> bool + @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: unknown + calls (is_unknown_call) are considered as + closing opcodes. (C++: bool) Help on function negate_mcode_relation in module ida_hexrays: negate_mcode_relation(*args) -> 'mcode_t' negate_mcode_relation(code) -> mcode_t + @param code (C++: 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) + negated_relation(op) -> ctype_t + @param op (C++: ctype_t) Help on function new_block in module ida_hexrays: @@ -28860,6 +33090,7 @@ class number_format_t(builtins.object) | | __init__(self, *args) | __init__(self, _opnum=0) -> number_format_t + | _opnum: int | | __repr__ = _swig_repr(self) | @@ -28867,34 +33098,39 @@ class number_format_t(builtins.object) | delete_number_format_t(self) | | get_radix(self, *args) -> 'int' - | get_radix(self) -> int + | Get number radix + | + | 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: @@ -28935,6 +33171,9 @@ class op_parent_info_t(builtins.object) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -28957,7 +33196,7 @@ class op_parent_info_t(builtins.object) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -28968,50 +33207,37 @@ class op_parent_info_t(builtins.object) 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) + op_uses_x(op) -> bool + @param op (C++: 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) + op_uses_y(op) -> bool + @param op (C++: 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) + op_uses_z(op) -> bool + @param op (C++: 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 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 + open_pseudocode(ea, flags) -> vdui_t + @param ea: function to decompile (C++: ea_t) + @param flags: a combination of OPF_ flags (C++: int) + @return: false if failed Help on class operand_locator_t in module ida_hexrays: @@ -29022,24 +33248,32 @@ class operand_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: operand_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: operand_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: operand_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _opnum) -> operand_locator_t + | _ea: ea_t + | _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: operand_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: operand_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: operand_locator_t const & | | __repr__ = _swig_repr(self) | @@ -29048,6 +33282,7 @@ class operand_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: operand_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29125,6 +33360,7 @@ class optblock_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optblock_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -29132,7 +33368,16 @@ class optblock_t(builtins.object) | delete_optblock_t(self) | | func(self, *args) -> '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 ... ... + | | func(self, blk) -> int + | @param blk: Basic block to optimize as a whole. (C++: mblock_t *) + | @return: number of changes made to the block. See also + | mark_lists_dirty. | | install(self, *args) -> 'void' | install(self) @@ -29163,6 +33408,7 @@ class optinsn_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optinsn_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -29170,7 +33416,26 @@ class optinsn_t(builtins.object) | delete_optinsn_t(self) | | func(self, *args) -> 'int' - | func(self, blk, ins) -> int + | Optimize an instruction. + | + | func(self, blk, ins, optflags) -> int + | @param blk: current basic block. maybe NULL, which means that the + | instruction must be optimized without context (C++: + | mblock_t *) + | @param ins: 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. (C++: minsn_t *) + | @param optflags: combination of optimization flags bits (C++: int) + | @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) @@ -29193,40 +33458,34 @@ class optinsn_t(builtins.object) 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) - @return: success + parse_user_call(udc, decl, silent) -> bool + @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) -> '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. + partial_type_num(type) -> int + @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) -> 'qstring *' - 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) + print_vdloc(loc, nbytes) + @param loc (C++: const vdloc_t &) + @param nbytes (C++: int) Help on function property_op_to_typename in module ida_hexrays: @@ -29241,22 +33500,40 @@ class qlist_cinsn_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, x) -> bool + | x: qlist< cinsn_t > const & + | + | __getitem__(self, *args) -> 'cinsn_t const &' + | __getitem__(self, i) -> cinsn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qlist_cinsn_t - | __init__(self, x) -> qlist_cinsn_t + | 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 + | x: qlist< cinsn_t > const & | | __repr__ = _swig_repr(self) | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | v: cinsn_t const & + | | __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 + | at(self, index) + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- | | begin(self, *args) -> 'qlist_cinsn_t_iterator' | begin(self) -> qlist_cinsn_t_iterator @@ -29272,17 +33549,42 @@ class qlist_cinsn_t(builtins.object) | | erase(self, *args) -> 'void' | erase(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | erase(self, p1, p2) + | p1: qlist< cinsn_t >::iterator + | p2: qlist< cinsn_t >::iterator + | + | | erase(self, p) + | p: qlist_cinsn_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) -> 'qlist_cinsn_t_iterator' | insert(self, p, x) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | x: cinsn_t const & + | + | | insert(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | + | insert(self, i, v) + | i: size_t + | v: cinsn_t const & + | + | | insert(self, p, x) -> qlist_cinsn_t_iterator + | p: qlist_cinsn_t_iterator + | x: cinsn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) @@ -29292,15 +33594,20 @@ class qlist_cinsn_t(builtins.object) | | push_back(self, *args) -> 'cinsn_t &' | push_back(self, x) - | push_back(self) -> cinsn_t + | x: cinsn_t const & | | push_front(self, *args) -> 'void' | push_front(self, x) + | 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 + | 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 @@ -29310,6 +33617,7 @@ class qlist_cinsn_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, x) + | x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29337,12 +33645,14 @@ class qlist_cinsn_t_iterator(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, x) -> bool + | x: qlist_cinsn_t_iterator const * | | __init__(self, *args) | __init__(self) -> qlist_cinsn_t_iterator | | __ne__(self, *args) -> 'bool' | __ne__(self, x) -> bool + | x: qlist_cinsn_t_iterator const * | | __next__(self, *args) -> 'void' | __next__(self) @@ -29389,11 +33699,15 @@ class qstring_printer_t(vc_printer_t) | | __init__(self, *args) | __init__(self, f, tags) -> qstring_printer_t + | f: cfunc_t const * + | tags: bool | | __repr__ = _swig_repr(self) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | indent: int + | format: char const * | | get_s(self, *args) -> 'qstring' | get_s(self) -> qstring @@ -29418,7 +33732,7 @@ class qstring_printer_t(vc_printer_t) | delete_vc_printer_t(self) | | oneliner(self, *args) -> 'bool' - | oneliner(self) -> bool + | Are we generating one-line text representation? | | ---------------------------------------------------------------------- | Data descriptors inherited from vc_printer_t: @@ -29448,6 +33762,8 @@ Help on function qswap in module ida_hexrays: qswap(*args) -> 'void' qswap(a, b) + a: cinsn_t & + b: cinsn_t & Help on class qvector_carg_t in module ida_hexrays: @@ -29458,13 +33774,15 @@ class qvector_carg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< carg_t > const & | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_carg_t - | __init__(self, x) -> qvector_carg_t + | 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 +33791,25 @@ class qvector_carg_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< carg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: carg_t const & | | __swig_destroy__ = delete_qvector_carg_t(...) | delete_qvector_carg_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | @@ -29514,52 +33837,74 @@ class qvector_carg_t(builtins.object) | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t + | it: qvector< carg_t >::iterator + | + | | erase(self, first, last) -> carg_t + | first: qvector< carg_t >::iterator + | 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 + | x: carg_t const & + | + | | find(self, x) -> carg_t + | x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) + | x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: carg_t * + | len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t + | it: qvector< carg_t >::iterator + | x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: carg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29590,13 +33935,15 @@ class qvector_ccase_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< ccase_t > const & | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_ccase_t - | __init__(self, x) -> qvector_ccase_t + | 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 +33952,25 @@ class qvector_ccase_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< ccase_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: ccase_t const & | | __swig_destroy__ = delete_qvector_ccase_t(...) | delete_qvector_ccase_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | @@ -29646,52 +33998,74 @@ class qvector_ccase_t(builtins.object) | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t + | it: qvector< ccase_t >::iterator + | + | | erase(self, first, last) -> ccase_t + | first: qvector< ccase_t >::iterator + | 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 + | x: ccase_t const & + | + | | find(self, x) -> ccase_t + | x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) + | x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: ccase_t * + | len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t + | it: qvector< ccase_t >::iterator + | x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: ccase_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29722,13 +34096,15 @@ class qvector_history_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_history_t - | __init__(self, x) -> qvector_history_t + | 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,23 +34114,29 @@ class qvector_history_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< history_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: history_item_t const & | | __swig_destroy__ = delete_qvector_history_t(...) | delete_qvector_history_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: history_item_t const & | | at(self, *args) -> 'history_item_t const &' | at(self, _idx) -> history_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -29778,52 +34160,74 @@ class qvector_history_t(builtins.object) | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t + | it: qvector< history_item_t >::iterator + | + | | erase(self, first, last) -> history_item_t + | first: qvector< history_item_t >::iterator + | 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 + | x: history_item_t const & + | + | | find(self, x) -> history_item_t + | x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) + | x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: history_item_t * + | len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t + | it: qvector< history_item_t >::iterator + | x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: history_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29854,13 +34258,15 @@ class qvector_lvar_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_lvar_t - | __init__(self, x) -> qvector_lvar_t + | 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 +34275,25 @@ class qvector_lvar_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< lvar_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: lvar_t const & | | __swig_destroy__ = delete_qvector_lvar_t(...) | delete_qvector_lvar_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | @@ -29910,52 +34321,74 @@ class qvector_lvar_t(builtins.object) | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t + | it: qvector< lvar_t >::iterator + | + | | erase(self, first, last) -> lvar_t + | first: qvector< lvar_t >::iterator + | 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 + | x: lvar_t const & + | + | | find(self, x) -> lvar_t + | x: lvar_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) + | x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: lvar_t * + | len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t + | it: qvector< lvar_t >::iterator + | x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29980,18 +34413,17 @@ class qvector_lvar_t(builtins.object) 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) - @return: microregister register id or mr_none + reg2mreg(reg) -> mreg_t + @param reg: processor register number (C++: int) + @return: microregister register id or mr_none Help on function remitem in module ida_hexrays: remitem(*args) -> 'void' remitem(e) + @param e (C++: const citem_t *) Help on function remove_hexrays_callback in module ida_hexrays: @@ -30001,87 +34433,81 @@ remove_hexrays_callback(callback) 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() + restore_user_cmts(func_ea) -> user_cmts_t + @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) -> '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) - @return: success + restore_user_defined_calls(udcalls, func_ea) -> bool + @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) -> '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() + restore_user_iflags(func_ea) -> user_iflags_t + @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) -> '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() + restore_user_labels(func_ea) -> user_labels_t + @param func_ea: the entry address of the function, ignored if FUNC != + NULL (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_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 (C++: ea_t) + @param func (C++: const cfunc_t *) 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) - @return: success + restore_user_lvar_settings(lvinf, func_ea) -> bool + @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) -> '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() + restore_user_numforms(func_ea) -> user_numforms_t + @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) -> '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() + restore_user_unions(func_ea) -> user_unions_t + @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: @@ -30097,8 +34523,12 @@ class rlist_t(bitset_t) | | __init__(self, *args) | __init__(self) -> rlist_t - | __init__(self, m) -> rlist_t + | m: rlist_t const & + | + | | __init__(self, reg, width) -> rlist_t + | reg: mreg_t + | width: int | | __repr__ = _swig_repr(self) | @@ -30119,110 +34549,151 @@ class rlist_t(bitset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | count(self) -> int - | count(self, bit) -> int + | bit: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: bitset_t const & | | add(self, *args) -> 'bool' | add(self, bit) -> bool + | @param bit (C++: int) + | + | | add(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | add(self, ml) -> bool + | 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 + | r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t + | @param m (C++: const bitset_t &) | | count(self, *args) -> 'int' | count(self) -> int - | count(self, bit) -> int + | bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool + | @param maxbit (C++: 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 (C++: int) | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool + | @param bit (C++: int) | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | inc(self, *args) -> 'void' | inc(self, p, n=1) + | @param p (C++: iterator &) + | @param n (C++: int) | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | itat(self, *args) -> 'bitset_t::iterator' - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | @param n (C++: int) | | itv(self, *args) -> 'int' | itv(self, it) -> int + | it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) + | @param shift (C++: int) | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool + | @param bit (C++: int) + | + | | sub(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | sub(self, ml) -> bool + | ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: bitset_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from bitset_t: @@ -30241,86 +34712,81 @@ class rlist_t(bitset_t) 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 *) + save_user_cmts(func_ea, user_cmts) + @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) -> '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 &) + save_user_defined_calls(func_ea, udcalls) + @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) -> '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 *) + save_user_iflags(func_ea, iflags) + @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) -> '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 *) + save_user_labels(func_ea, user_labels) + @param func_ea: the entry address of the function, ignored if FUNC != + NULL (C++: ea_t) + @param user_labels: collection of user defined labels (C++: const + user_labels_t *) + +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 (C++: ea_t) + @param user_labels (C++: const user_labels_t *) + @param func (C++: const cfunc_t *) 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 &) + save_user_lvar_settings(func_ea, lvinf) + @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) -> '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 *) + save_user_numforms(func_ea, numforms) + @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) -> '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 *) + save_user_unions(func_ea, unions) + @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: @@ -30337,6 +34803,9 @@ class scif_t(vdloc_t) | | __init__(self, *args) | __init__(self, _mba, n, tif) -> scif_t + | _mba: mba_t * + | n: qstring * + | tif: tinfo_t * | | __repr__ = _swig_repr(self) | @@ -30347,7 +34816,7 @@ class scif_t(vdloc_t) | Data descriptors defined here: | | mba - | scif_t_mba_get(self) -> mbl_array_t + | scif_t_mba_get(self) -> mba_t | | name | scif_t_name_get(self) -> qstring * @@ -30363,36 +34832,47 @@ class scif_t(vdloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: vdloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: vdloc_t const & | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) + | @param r1 (C++: int) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool + | @param mb (C++: const mba_t *) + | @param size (C++: int) | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) + | @param r1 (C++: int) | | ---------------------------------------------------------------------- | Data and other attributes inherited from vdloc_t: @@ -30403,132 +34883,188 @@ class scif_t(vdloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) -> 'bool' + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) -> 'bool' + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) -> 'void' - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) -> 'void' + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) -> 'void' + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) -> 'void' + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg2(self, *args) -> 'void' + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) -> 'void' + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) -> 'bool' + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | 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' + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | 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. | | 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' . | | justify_reg_high(self, *args) -> 'void' + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) -> 'void' + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | 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 static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg2(self, *args) -> 'void' + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) -> 'void' + | Set stack offset location. + | | set_stkoff(self, off) + | @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' + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -30550,6 +35086,7 @@ class scif_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> scif_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -30558,6 +35095,8 @@ class scif_visitor_t(builtins.object) | | visit_scif_mop(self, *args) -> 'int' | visit_scif_mop(self, r, off) -> int + | @param r (C++: const mop_t &) + | @param off (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30574,53 +35113,48 @@ class scif_visitor_t(builtins.object) 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 &) + select_udt_by_offset(udts, ops, applicator) -> int + @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) -> '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: 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) + send_database(err, silent) + @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) -> 'mcode_t' set2jcnd(code) -> mcode_t + @param code (C++: 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) - @return: success + set_type(id, tif, source, force=False) -> bool + @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: @@ -30661,24 +35195,32 @@ class stkvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: stkvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: stkvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: stkvar_ref_t const & | | __init__(self, *args) | __init__(self, m, o) -> stkvar_ref_t + | m: mba_t * + | o: sval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: stkvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: stkvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: stkvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -30687,12 +35229,19 @@ class stkvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: stkvar_ref_t const & | | get_stkvar(self, *args) -> 'member_t *' + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off=None) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: stkvar_ref_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30704,7 +35253,7 @@ 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 + | stkvar_ref_t_mba_get(self) -> mba_t | | off | stkvar_ref_t_off_get(self) -> sval_t @@ -30721,24 +35270,19 @@ Help on function swap_mcode_relation in module ida_hexrays: swap_mcode_relation(*args) -> 'mcode_t' swap_mcode_relation(code) -> mcode_t + @param code (C++: 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) + swapped_relation(op) -> ctype_t + @param op (C++: 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 +35294,14 @@ class treeloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: treeloc_t const & | | __init__(self, *args) | __init__(self) -> treeloc_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: treeloc_t const & | | __repr__ = _swig_repr(self) | @@ -30801,6 +35347,7 @@ class udc_filter_t(microcode_filter_t) | | __init__(self, *args) | __init__(self) -> udc_filter_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -30808,13 +35355,29 @@ class udc_filter_t(microcode_filter_t) | delete_udc_filter_t(self) | | apply(self, *args) -> 'merror_t' + | generate microcode for an instruction + | | apply(self, cdg) -> merror_t + | @param cdg (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to + | the next instruction MERR_INSN - not generated - the caller + | should try the standard way else - error | | init(self, *args) -> 'bool' | init(self, decl) -> bool + | @param decl (C++: const char *) + | + | install(self, *args) -> 'void' + | install(self) | | match(self, *args) -> 'bool' + | return true if the filter object should be appied to given instruction + | | match(self, cdg) -> bool + | @param cdg (C++: codegen_t &) + | + | remove(self, *args) -> 'bool' + | remove(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30834,94 +35397,70 @@ class udc_filter_t(microcode_filter_t) 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_begin(map) -> udcall_map_iterator_t + @param map (C++: const udcall_map_t *) 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 *) + udcall_map_clear(map) + @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_end(map) -> udcall_map_iterator_t + @param map (C++: const udcall_map_t *) 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) + udcall_map_erase(map, p) + @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 &) + udcall_map_find(map, key) -> udcall_map_iterator_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) -> 'ea_t const &' - udcall_map_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: udcall_map_iterator_t) + udcall_map_first(p) -> ea_t const & + @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 *) + udcall_map_free(map) + @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 &) - @param val (C++: const udcall_t &) + udcall_map_insert(map, key, val) -> udcall_map_iterator_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: @@ -30932,12 +35471,14 @@ class udcall_map_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: udcall_map_iterator_t const & | | __init__(self, *args) | __init__(self) -> udcall_map_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: udcall_map_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -30967,54 +35508,39 @@ class udcall_map_iterator_t(builtins.object) 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) + udcall_map_next(p) -> 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) + udcall_map_prev(p) -> 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) + udcall_map_second(p) -> udcall_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 *) + udcall_map_size(map) -> size_t + @param map (C++: udcall_map_t *) Help on class udcall_t in module ida_hexrays: @@ -31025,24 +35551,30 @@ class udcall_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: udcall_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: udcall_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: udcall_t const & | | __init__(self, *args) | __init__(self) -> udcall_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: udcall_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: udcall_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: udcall_t const & | | __repr__ = _swig_repr(self) | @@ -31051,6 +35583,7 @@ class udcall_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: udcall_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31086,6 +35619,7 @@ class ui_stroff_applicator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ui_stroff_applicator_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -31093,7 +35627,13 @@ 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: operand ordinal number, see below (C++: size_t) + | @param path: path describing the union selection, maybe empty (C++: + | const intvec_t &) + | @param top_tif: tinfo_t of the selected toplevel UDT (C++: const + | tinfo_t &) + | @param spath: selected path (C++: const char *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31116,12 +35656,14 @@ class ui_stroff_op_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ui_stroff_op_t const & | | __init__(self, *args) | __init__(self) -> ui_stroff_op_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ui_stroff_op_t const & | | __repr__ = _swig_repr(self) | @@ -31160,13 +35702,15 @@ class ui_stroff_ops_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< ui_stroff_op_t > const & | | __getitem__(self, *args) -> 'ui_stroff_op_t const &' | __getitem__(self, i) -> ui_stroff_op_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ui_stroff_ops_t - | __init__(self, x) -> ui_stroff_ops_t + | 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 +35719,25 @@ class ui_stroff_ops_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< ui_stroff_op_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: ui_stroff_op_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: ui_stroff_op_t const & | | append = push_back(self, *args) -> 'ui_stroff_op_t &' | @@ -31216,52 +35765,74 @@ class ui_stroff_ops_t(builtins.object) | | erase(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | erase(self, it) -> ui_stroff_op_t + | it: qvector< ui_stroff_op_t >::iterator + | + | | erase(self, first, last) -> ui_stroff_op_t + | first: qvector< ui_stroff_op_t >::iterator + | 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 + | x: ui_stroff_op_t const & + | + | | find(self, x) -> ui_stroff_op_t + | x: ui_stroff_op_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ui_stroff_op_t()) + | x: ui_stroff_op_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: ui_stroff_op_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: ui_stroff_op_t * + | len: size_t | | insert(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | insert(self, it, x) -> ui_stroff_op_t + | it: qvector< ui_stroff_op_t >::iterator + | 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) - | push_back(self) -> ui_stroff_op_t + | x: ui_stroff_op_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: ui_stroff_op_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< ui_stroff_op_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -31286,94 +35857,70 @@ class ui_stroff_ops_t(builtins.object) 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_begin(map) -> user_cmts_iterator_t + @param map (C++: const user_cmts_t *) 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 *) + user_cmts_clear(map) + @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_end(map) -> user_cmts_iterator_t + @param map (C++: const user_cmts_t *) 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) + user_cmts_erase(map, p) + @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 &) + user_cmts_find(map, key) -> user_cmts_iterator_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) -> 'treeloc_t const &' - user_cmts_first(p) -> treeloc_t - - Get reference to the current map key. - - @param p (C++: user_cmts_iterator_t) + user_cmts_first(p) -> treeloc_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 *) + user_cmts_free(map) + @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 &) - @param val (C++: const citem_cmt_t &) + user_cmts_insert(map, key, val) -> user_cmts_iterator_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: @@ -31384,12 +35931,14 @@ class user_cmts_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: user_cmts_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_cmts_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: user_cmts_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31419,54 +35968,39 @@ class user_cmts_iterator_t(builtins.object) 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) + user_cmts_next(p) -> 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) + user_cmts_prev(p) -> 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) + user_cmts_second(p) -> citem_cmt_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 *) + user_cmts_size(map) -> size_t + @param map (C++: user_cmts_t *) Help on class user_cmts_t in module ida_hexrays: @@ -31477,9 +36011,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 +36031,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 +36067,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 +36082,36 @@ 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 + | _Keyval: treeloc_t const & | | begin lambda self, *args | @@ -31605,94 +36184,70 @@ class user_cmts_t(builtins.object) 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_begin(map) -> user_iflags_iterator_t + @param map (C++: const user_iflags_t *) 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 *) + user_iflags_clear(map) + @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_end(map) -> user_iflags_iterator_t + @param map (C++: const user_iflags_t *) 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) + user_iflags_erase(map, p) + @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 &) + user_iflags_find(map, key) -> user_iflags_iterator_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) -> '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) + user_iflags_first(p) -> citem_locator_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 *) + user_iflags_free(map) + @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 &) - @param val (C++: const int32 &) + user_iflags_insert(map, key, val) -> user_iflags_iterator_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: @@ -31703,12 +36258,14 @@ class user_iflags_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: user_iflags_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_iflags_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: user_iflags_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31738,54 +36295,39 @@ class user_iflags_iterator_t(builtins.object) 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) + user_iflags_next(p) -> 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) + user_iflags_prev(p) -> 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) + user_iflags_second(p) -> int32 const & + @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 *) + user_iflags_size(map) -> size_t + @param map (C++: user_iflags_t *) Help on class user_iflags_t in module ida_hexrays: @@ -31796,9 +36338,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 +36358,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 +36394,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 +36409,36 @@ 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 & + | _Keyval: citem_locator_t const & | | begin lambda self, *args | @@ -31937,94 +36524,70 @@ class user_iflags_t(builtins.object) 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_begin(map) -> user_labels_iterator_t + @param map (C++: const user_labels_t *) 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 *) + user_labels_clear(map) + @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_end(map) -> user_labels_iterator_t + @param map (C++: const user_labels_t *) 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) + user_labels_erase(map, p) + @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 &) + user_labels_find(map, key) -> user_labels_iterator_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) -> 'int const &' - user_labels_first(p) -> int const & - - Get reference to the current map key. - - @param p (C++: user_labels_iterator_t) + user_labels_first(p) -> int const & + @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 *) + user_labels_free(map) + @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 &) + user_labels_insert(map, key, val) -> user_labels_iterator_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: @@ -32035,12 +36598,14 @@ class user_labels_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: user_labels_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_labels_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: user_labels_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32070,54 +36635,39 @@ class user_labels_iterator_t(builtins.object) 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) + user_labels_next(p) -> 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) + user_labels_prev(p) -> 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) + user_labels_second(p) -> qstring & + @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 *) + user_labels_size(map) -> size_t + @param map (C++: user_labels_t *) Help on class user_labels_t in module ida_hexrays: @@ -32136,6 +36686,7 @@ class user_labels_t(builtins.object) | | at(self, *args) -> '_qstring< char > &' | at(self, _Keyval) -> _qstring< char > & + | _Keyval: int const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -32163,6 +36714,7 @@ class user_lvar_modifier_t(builtins.object) | | __init__(self, *args) | __init__(self) -> user_lvar_modifier_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -32170,7 +36722,10 @@ class user_lvar_modifier_t(builtins.object) | delete_user_lvar_modifier_t(self) | | modify_lvars(self, *args) -> 'bool' + | Modify lvar settings. Returns: true-modified + | | modify_lvars(self, lvinf) -> bool + | @param lvinf (C++: lvar_uservec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32187,95 +36742,71 @@ class user_lvar_modifier_t(builtins.object) 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_begin(map) -> user_numforms_iterator_t + @param map (C++: const user_numforms_t *) 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 *) + user_numforms_clear(map) + @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_end(map) -> user_numforms_iterator_t + @param map (C++: const user_numforms_t *) 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) + user_numforms_erase(map, p) + @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 &) + user_numforms_find(map, key) -> user_numforms_iterator_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) -> '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) + user_numforms_first(p) -> operand_locator_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 *) + user_numforms_free(map) + @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 &) - @param val (C++: const number_format_t &) + user_numforms_insert(map, key, val) -> user_numforms_iterator_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: @@ -32286,12 +36817,14 @@ class user_numforms_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: user_numforms_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_numforms_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: user_numforms_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32321,54 +36854,39 @@ class user_numforms_iterator_t(builtins.object) 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) + user_numforms_next(p) -> 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) + user_numforms_prev(p) -> 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) + user_numforms_second(p) -> number_format_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 *) + user_numforms_size(map) -> size_t + @param map (C++: user_numforms_t *) Help on class user_numforms_t in module ida_hexrays: @@ -32379,9 +36897,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 +36917,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 +36953,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 +36968,36 @@ 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 + | _Keyval: operand_locator_t const & | | begin lambda self, *args | @@ -32507,94 +37070,70 @@ class user_numforms_t(builtins.object) 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_begin(map) -> user_unions_iterator_t + @param map (C++: const user_unions_t *) 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 *) + user_unions_clear(map) + @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_end(map) -> user_unions_iterator_t + @param map (C++: const user_unions_t *) 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) + user_unions_erase(map, p) + @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 &) + user_unions_find(map, key) -> user_unions_iterator_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) -> 'ea_t const &' - user_unions_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: user_unions_iterator_t) + user_unions_first(p) -> ea_t const & + @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 *) + user_unions_free(map) + @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 &) + user_unions_insert(map, key, val) -> user_unions_iterator_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: @@ -32605,12 +37144,14 @@ class user_unions_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: user_unions_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_unions_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: user_unions_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32640,54 +37181,39 @@ class user_unions_iterator_t(builtins.object) 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) + user_unions_next(p) -> 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) + user_unions_prev(p) -> 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) + user_unions_second(p) -> intvec_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 *) + user_unions_size(map) -> size_t + @param map (C++: user_unions_t *) Help on class user_unions_t in module ida_hexrays: @@ -32698,9 +37224,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 +37244,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 +37280,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 +37295,36 @@ 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 + | _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -32831,13 +37402,15 @@ class uval_ivl_ivlset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, v) -> bool + | v: ivl_t const & | | __init__(self, *args) | __init__(self) -> uval_ivl_ivlset_t - | __init__(self, ivl) -> uval_ivl_ivlset_t + | ivl: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, v) -> bool + | v: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -32863,6 +37436,7 @@ class uval_ivl_ivlset_t(builtins.object) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t + | idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -32877,10 +37451,12 @@ class uval_ivl_ivlset_t(builtins.object) | set_all_values(self) | | single_value(self, *args) -> 'bool' - | single_value(self, v) -> bool + | single_value(self) -> bool + | v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) + | r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32908,6 +37484,8 @@ class uval_ivl_t(builtins.object) | | __init__(self, *args) | __init__(self, _off, _size) -> uval_ivl_t + | _off: unsigned-ea-like-numeric-type↗ + | _size: unsigned-ea-like-numeric-type↗ | | __repr__ = _swig_repr(self) | @@ -32950,25 +37528,35 @@ class valrng_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: valrng_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: valrng_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: valrng_t const & | | __init__(self, *args) | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t + | size_: int + | + | | __init__(self, r) -> valrng_t + | r: valrng_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: valrng_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: valrng_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: valrng_t const & | | __repr__ = _swig_repr(self) | @@ -32989,9 +37577,11 @@ class valrng_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: valrng_t const & | | cvt_to_cmp(self, *args) -> 'bool' | cvt_to_cmp(self, strict) -> bool + | @param strict (C++: bool) | | cvt_to_single_value(self, *args) -> 'bool' | cvt_to_single_value(self) -> bool @@ -33007,9 +37597,11 @@ class valrng_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, v) -> bool + | @param v (C++: uvlr_t) | | intersect_with(self, *args) -> 'bool' | intersect_with(self, r) -> bool + | @param r (C++: const valrng_t &) | | inverse(self, *args) -> 'void' | inverse(self) @@ -33019,27 +37611,31 @@ class valrng_t(builtins.object) | | max_svalue(self, *args) -> 'uvlr_t' | max_svalue(self, size_) -> uvlr_t - | max_svalue(self) -> uvlr_t + | size_: int | | max_value(self, *args) -> 'uvlr_t' | max_value(self, size_) -> uvlr_t - | max_value(self) -> uvlr_t + | size_: int | | min_svalue(self, *args) -> 'uvlr_t' | min_svalue(self, size_) -> uvlr_t - | min_svalue(self) -> uvlr_t + | size_: int | | reduce_size(self, *args) -> 'bool' | reduce_size(self, new_size) -> bool + | @param new_size (C++: int) | | set_all(self, *args) -> 'void' | set_all(self) | | set_cmp(self, *args) -> 'void' | set_cmp(self, cmp, _value) + | @param cmp (C++: cmpop_t) + | @param _value (C++: uvlr_t) | | set_eq(self, *args) -> 'void' | set_eq(self, v) + | @param v (C++: uvlr_t) | | set_none(self, *args) -> 'void' | set_none(self) @@ -33049,9 +37645,11 @@ class valrng_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: valrng_t &) | | unite_with(self, *args) -> 'bool' | unite_with(self, r) -> bool + | @param r (C++: const valrng_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33079,24 +37677,30 @@ class var_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: var_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: var_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: var_ref_t const & | | __init__(self, *args) | __init__(self) -> var_ref_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: var_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: var_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: var_ref_t const & | | __repr__ = _swig_repr(self) | @@ -33105,6 +37709,7 @@ class var_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: var_ref_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33119,7 +37724,7 @@ class var_ref_t(builtins.object) | var_ref_t_idx_get(self) -> int | | mba - | var_ref_t_mba_get(self) -> mbl_array_t + | var_ref_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -33145,6 +37750,7 @@ class vc_printer_t(vd_printer_t) | | __init__(self, *args) | __init__(self, f) -> vc_printer_t + | f: cfunc_t const * | | __repr__ = _swig_repr(self) | @@ -33152,7 +37758,7 @@ class vc_printer_t(vd_printer_t) | delete_vc_printer_t(self) | | oneliner(self, *args) -> 'bool' - | oneliner(self) -> bool + | Are we generating one-line text representation? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33171,6 +37777,8 @@ class vc_printer_t(vd_printer_t) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -33196,9 +37804,19 @@ class vd_failure_t(builtins.object) | | __init__(self, *args) | __init__(self) -> vd_failure_t - | __init__(self, code, ea, buf=None) -> vd_failure_t + | code: enum merror_t + | ea: ea_t + | buf: char const * + | + | | __init__(self, code, ea, buf) -> vd_failure_t + | code: enum merror_t + | ea: ea_t + | buf: qstring const & + | + | | __init__(self, _hf) -> vd_failure_t + | _hf: hexrays_failure_t const & | | __repr__ = _swig_repr(self) | @@ -33237,6 +37855,8 @@ class vd_interr_t(vd_failure_t) | | __init__(self, *args) | __init__(self, ea, buf) -> vd_interr_t + | ea: ea_t + | buf: char const * | | __repr__ = _swig_repr(self) | @@ -33278,6 +37898,7 @@ class vd_printer_t(builtins.object) | | __init__(self, *args) | __init__(self) -> vd_printer_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -33286,6 +37907,8 @@ class vd_printer_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33319,24 +37942,30 @@ class vdloc_t(ida_typeinf.argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: vdloc_t const & | | __init__(self, *args) | __init__(self) -> vdloc_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: vdloc_t const & | | __repr__ = _swig_repr(self) | @@ -33345,18 +37974,23 @@ class vdloc_t(ida_typeinf.argloc_t) | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) + | @param r1 (C++: int) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool + | @param mb (C++: const mba_t *) + | @param size (C++: int) | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) + | @param r1 (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33373,132 +38007,188 @@ class vdloc_t(ida_typeinf.argloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) -> 'bool' + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) -> 'bool' + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) -> 'void' - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) -> 'void' + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) -> 'void' + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) -> 'void' + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg2(self, *args) -> 'void' + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) -> 'void' + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) -> 'bool' + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | 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' + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | 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. | | 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' . | | justify_reg_high(self, *args) -> 'void' + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) -> 'void' + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | 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 static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg2(self, *args) -> 'void' + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) -> 'void' + | Set stack offset location. + | | set_stkoff(self, off) + | @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' + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -33525,139 +38215,321 @@ class vdui_t(builtins.object) | delete_vdui_t(self) | | calc_cmt_type(self, *args) -> 'cmt_type_t' + | Check if the specified line can have a comment. Due to the coordinate + | system for comments (http://www.hexblog.com/?p=60) some function lines + | cannot have comments. This function checks if a comment can be + | attached to the specified line. + | | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t + | @param lnnum: line number (0 based) (C++: size_t) + | @param cmttype: comment types to check (C++: cmt_type_t) + | @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/uncollapse item. This function collapses the current item. + | | collapse_item(self, hide) -> bool + | @param hide (C++: bool) + | @return: false if failed. | | collapse_lvars(self, *args) -> 'bool' + | Collapse/uncollapse local variable declarations. + | | collapse_lvars(self, hide) -> bool + | @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. | | del_orphan_cmts(self, *args) -> 'bool' - | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the + | screen. | | edit_cmt(self, *args) -> 'bool' + | Edit an indented comment. This function displays a dialog box and + | allows the user to edit the comment for the specified ctree location. + | | edit_cmt(self, loc) -> bool + | @param loc: comment location (C++: const treeloc_t &) + | @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. | | get_current_item(self, *args) -> 'bool' + | Get current item. This function refreshes the 'cpos' , 'item' , 'tail' + | fields. 'cfunc_t::get_line_item()' + | | get_current_item(self, idv) -> bool + | @param idv: keyboard or mouse (C++: input_device_t) + | @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. | | 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. | | in_ctree(self, *args) -> 'bool' - | in_ctree(self) -> bool + | Is the current item a statement? | | invert_bits(self, *args) -> 'bool' - | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current + | number. | | invert_sign(self, *args) -> 'bool' - | invert_sign(self) -> bool + | Negate a number. This function negates the current number. | | jump_enter(self, *args) -> '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. + | | jump_enter(self, idv, omflags) -> bool + | @param idv: what cursor must be used, the keyboard or the mouse (C++: + | input_device_t) + | @param omflags: OM_NEWWIN: new pseudocode window will open, 0: reuse + | the existing window (C++: int) + | @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. | | map_lvar(self, *args) -> '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 + | | map_lvar(self, frm, to) -> bool + | @param frm: the variable being mapped (C++: lvar_t *) + | @param to: the variable to map to. if NULL, unmaps the variable (C++: + | lvar_t *) + | @return: false if failed | | refresh_cpos(self, *args) -> 'bool' + | Refresh the current position. This function refreshes the 'cpos' + | field. + | | refresh_cpos(self, idv) -> bool + | @param idv: keyboard or mouse (C++: input_device_t) + | @return: false if failed | | refresh_ctext(self, *args) -> 'void' + | 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. 'refresh_view()' , refresh_func_ctext() + | | refresh_ctext(self, activate=True) + | @param activate (C++: bool) | | refresh_view(self, *args) -> 'void' + | 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. + | 'refresh_ctext()' + | | refresh_view(self, redo_mba) + | @param redo_mba: true means to redecompile the current function + | false means to rebuild ctree without regenerating + | microcode (C++: bool) | | rename_global(self, *args) -> 'bool' + | Rename global item. This function displays a dialog box and allows the + | user to rename a global item (data or function). + | | rename_global(self, ea) -> bool + | @param ea: address of the global item (C++: ea_t) + | @return: false if failed or cancelled | | rename_label(self, *args) -> 'bool' + | Rename a label. This function displays a dialog box and allows the + | user to rename a statement label. + | | rename_label(self, label) -> bool + | @param label: label number (C++: int) + | @return: false if failed or cancelled | | rename_lvar(self, *args) -> 'bool' + | Rename local variable. This function permanently renames a local + | variable. + | | rename_lvar(self, v, name, is_user_name) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param name: new variable name (C++: const char *) + | @param is_user_name: use true to save the new name into the database + | (C++: bool) + | @return: false if failed | | rename_strmem(self, *args) -> 'bool' + | Rename structure field. This function displays a dialog box and allows + | the user to rename a structure field. + | | rename_strmem(self, sptr, mptr) -> bool + | @param sptr: pointer to structure (C++: struc_t *) + | @param mptr: pointer to structure member (C++: member_t *) + | @return: false if failed or cancelled | | set_global_type(self, *args) -> '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). + | | set_global_type(self, ea) -> bool + | @param ea: address of the global item (C++: ea_t) + | @return: false if failed or cancelled | | set_locked(self, *args) -> 'bool' | set_locked(self, v) -> bool + | @param v (C++: bool) | | set_lvar_cmt(self, *args) -> 'bool' + | Set local variable comment. This function permanently sets a variable + | comment. + | | set_lvar_cmt(self, v, cmt) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param cmt: new comment (C++: const char *) + | @return: false if failed | | set_lvar_type(self, *args) -> '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' + | | set_lvar_type(self, v, type) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param type: new variable type (C++: const tinfo_t &) + | @return: false if failed | | set_noptr_lvar(self, *args) -> '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' + | | set_noptr_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @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. | | set_num_radix(self, *args) -> 'bool' + | Change number base. This function changes the current number + | representation. + | | set_num_radix(self, base) -> bool + | @param base: number radix (10 or 16) 0 means a character constant + | (C++: int) + | @return: false if failed | | set_num_stroff(self, *args) -> 'bool' - | set_num_stroff(self) -> bool + | Convert number to structure field offset. Currently not implemented. | | set_strmem_type(self, *args) -> 'bool' + | Set structure field type. This function displays a dialog box and + | allows the user to change the type of a structure field. + | | set_strmem_type(self, sptr, mptr) -> bool + | @param sptr: pointer to structure (C++: struc_t *) + | @param mptr: pointer to structure member (C++: member_t *) + | @return: false if failed or cancelled | | set_valid(self, *args) -> 'void' | set_valid(self, v) + | @param v (C++: bool) | | set_visible(self, *args) -> 'void' | set_visible(self, v) + | @param v (C++: bool) | | split_item(self, *args) -> 'bool' + | Split/unsplit item. This function splits the current assignment + | expression. + | | split_item(self, split) -> bool + | @param split (C++: bool) + | @return: false if failed. | | switch_to(self, *args) -> 'void' + | Display the specified pseudocode. This function replaces the + | pseudocode window contents with the specified 'cfunc_t' . + | | switch_to(self, f, activate) + | @param f: pointer to the function to display. (C++: cfuncptr_t) + | @param activate: should the pseudocode window get focus? (C++: bool) | | ui_edit_lvar_cmt(self, *args) -> 'bool' + | Set local variable comment. This function displays a dialog box and + | allows the user to edit the comment of a local variable. + | | ui_edit_lvar_cmt(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_map_lvar(self, *args) -> 'bool' + | Map a local variable to another. This function displays a variable + | list and allows the user to select mapping. + | | ui_map_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_rename_lvar(self, *args) -> 'bool' + | Rename local variable. This function displays a dialog box and allows + | the user to rename a local variable. + | | ui_rename_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_set_call_type(self, *args) -> '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 + | | ui_set_call_type(self, e) -> bool + | @param e: pointer to call expression (C++: const cexpr_t *) + | @return: false if failed or cancelled | | ui_set_lvar_type(self, *args) -> 'bool' + | Set local variable type. This function displays a dialog box and + | allows the user to change the type of a local variable. + | | ui_set_lvar_type(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_unmap_lvar(self, *args) -> '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. + | | ui_unmap_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @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: @@ -33690,7 +38562,7 @@ class vdui_t(builtins.object) | vdui_t_last_code_get(self) -> merror_t | | mba - | vdui_t_mba_get(self) -> mbl_array_t + | vdui_t_mba_get(self) -> mba_t | | tail | vdui_t_tail_get(self) -> ctree_item_t @@ -33718,27 +38590,45 @@ class vivl_t(voff_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: vivl_t const & + | + | | __eq__(self, mop) -> bool + | mop: mop_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: vivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: vivl_t const & | | __init__(self, *args) | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t + | _type: mopt_t + | _off: sval_t + | _size: int + | + | | __init__(self, ch) -> vivl_t + | ch: chain_t const & + | + | | __init__(self, op) -> vivl_t + | op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: vivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: vivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: vivl_t const & | | __repr__ = _swig_repr(self) | @@ -33750,34 +38640,63 @@ class vivl_t(voff_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: vivl_t const & | | contains(self, *args) -> 'bool' + | Does our value interval contain the specified value offset? + | | contains(self, voff2) -> bool + | @param voff2 (C++: const voff_t &) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | extend_to_cover(self, *args) -> 'bool' + | Extend a value interval using another value interval of the same type + | | extend_to_cover(self, r) -> bool + | @param r (C++: const vivl_t &) + | @return: success | | includes(self, *args) -> 'bool' + | Does our value interval include another? + | | includes(self, r) -> bool + | @param r (C++: const vivl_t &) | | intersect(self, *args) -> 'uval_t' + | Intersect value intervals the same type + | | intersect(self, r) -> uval_t + | @param r (C++: const vivl_t &) + | @return: size of the resulting intersection | | overlap(self, *args) -> 'bool' + | Do two value intervals overlap? + | | overlap(self, r) -> bool + | @param r (C++: const vivl_t &) | | set(self, *args) -> 'void' | set(self, _type, _off, _size=0) + | @param _type (C++: mopt_t) + | @param _off (C++: sval_t) + | @param _size (C++: int) + | + | | set(self, voff, _size) + | voff: voff_t const & + | @param _size (C++: int) | | set_reg(self, *args) -> 'void' | set_reg(self, mreg, sz=0) + | @param mreg (C++: mreg_t) + | @param sz (C++: int) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff, sz=0) + | @param stkoff (C++: sval_t) + | @param sz (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33798,12 +38717,14 @@ class vivl_t(voff_t) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t + | @param width (C++: int) | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t + | @param r (C++: const voff_t &) | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -33813,6 +38734,7 @@ class vivl_t(voff_t) | | inc(self, *args) -> 'void' | inc(self, delta) + | @param delta (C++: sval_t) | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -33847,26 +38769,36 @@ class voff_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: voff_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: voff_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: voff_t const & | | __init__(self, *args) | __init__(self) -> voff_t - | __init__(self, _type, _off) -> voff_t + | _type: mopt_t + | _off: sval_t + | + | | __init__(self, op) -> voff_t + | op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: voff_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: voff_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: voff_t const & | | __repr__ = _swig_repr(self) | @@ -33875,15 +38807,18 @@ class voff_t(builtins.object) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t + | @param width (C++: int) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: voff_t const & | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t + | @param r (C++: const voff_t &) | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -33893,6 +38828,7 @@ class voff_t(builtins.object) | | inc(self, *args) -> 'void' | inc(self, delta) + | @param delta (C++: sval_t) | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -33902,12 +38838,16 @@ class voff_t(builtins.object) | | set(self, *args) -> 'void' | set(self, _type, _off) + | @param _type (C++: mopt_t) + | @param _off (C++: sval_t) | | set_reg(self, *args) -> 'void' | set_reg(self, mreg) + | @param mreg (C++: mreg_t) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff) + | @param stkoff (C++: sval_t) | | undef(self, *args) -> 'void' | undef(self) @@ -33991,11 +38931,21 @@ ida_hexrays.CFL_HELPER created from a decompiler helper function """ +ida_hexrays.CFL_NORET +""" +call does not return +""" + ida_hexrays.CFS_BOUNDS """ 'eamap' and 'boundaries' are ready """ +ida_hexrays.CFS_LOCKED +""" +cfunc is temporarily locked +""" + ida_hexrays.CFS_LVARS_HIDDEN """ local variable definitions are collapsed @@ -34106,11 +39056,21 @@ ida_hexrays.DECOMP_NO_FRAME do not use function frame info (only snippet mode) """ +ida_hexrays.DECOMP_NO_HIDE +""" +do not hide display waitbox. see close_hexrays_waitboxes() +""" + ida_hexrays.DECOMP_NO_WAIT """ do not display waitbox """ +ida_hexrays.DECOMP_NO_XREFS +""" +do not update global xrefs cache +""" + ida_hexrays.DECOMP_WARNINGS """ display warnings in the output window @@ -34128,7 +39088,7 @@ ignore instruction opcodes ida_hexrays.EQ_IGNSIZE """ -ignore operand sizes +ignore source operand sizes """ ida_hexrays.EQ_OPTINSN @@ -34775,9 +39735,32 @@ ida_hexrays.NF_NEGDONE temporary internal bit: negation has been performed """ -ida_hexrays.NF_STROFF +ida_hexrays.NF_VALID """ -internal bit: used as stroff, valid iff 'is_stroff()' +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 +""" + +ida_hexrays.OPF_NEW_WINDOW +""" +open new window +""" + +ida_hexrays.OPF_NO_WAIT +""" +do not display waitbox if decompilation happens +""" + +ida_hexrays.OPF_REUSE +""" +reuse existing window +""" + +ida_hexrays.OPF_REUSE_ACTIVE +""" +currently active widget is a pseudocode view + +reuse existing window, only if the """ ida_hexrays.OPROP_CCFLAGS @@ -34795,6 +39778,11 @@ ida_hexrays.OPROP_IMPDONE imported operand (a pointer) has been dereferenced """ +ida_hexrays.OPROP_LOWADDR +""" +a low address offset +""" + ida_hexrays.OPROP_UDEFVAL """ uses undefined value @@ -34822,7 +39810,8 @@ may update minstkref ida_hexrays.OPTI_NO_LDXOPT """ -do not optimize low/high(ldx) +the function is called after the propagation attempt, we do not +optimize low/high(ldx) in this case """ ida_hexrays.SHINS_LDXEA @@ -34895,11 +39884,6 @@ ida_hexrays.VDRUN_STATS Print statistics into vd_stats.txt. """ -ida_hexrays.VDUI_LOCKED -""" -is locked? -""" - ida_hexrays.VDUI_VALID """ is valid? @@ -34943,12 +39927,13 @@ Help on function __make_idainfo_getter in module ida_ida: __make_idainfo_getter(name) +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: @@ -35098,9 +40083,11 @@ class idainfo(builtins.object) | | set_maxEA(self, *args) -> 'void' | set_maxEA(self, ea) + | ea: ea_t | | set_minEA(self, *args) -> 'void' | set_minEA(self, ea) + | ea: ea_t | | set_pack_mode = __func(self, *args) | @@ -35341,9 +40328,6 @@ inf_gen_tryblks(*args) -> '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: @@ -35445,61 +40429,73 @@ Help on function inf_set_64bit in module ida_ida: inf_set_64bit(*args) -> 'bool' inf_set_64bit(_v=True) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_be in module ida_ida: inf_set_be(*args) -> 'bool' inf_set_be(_v=True) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function in module ida_ida: @@ -35509,6 +40505,7 @@ 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 (C++: bool) Help on function inf_show_auto in module ida_ida: @@ -35688,9 +40685,6 @@ inf_get_af2(*args) -> '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: @@ -35701,9 +40695,6 @@ inf_get_af_high(*args) -> '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_appcall_options in module ida_ida: @@ -35735,6 +40726,7 @@ Help on function inf_get_cc in module ida_ida: inf_get_cc(*args) -> 'bool' inf_get_cc(out) -> bool + @param out (C++: compiler_info_t *) Help on function inf_get_cc_cm in module ida_ida: @@ -35930,7 +40922,7 @@ Help on function inf_get_privrange in module ida_ida: inf_get_privrange(*args) -> 'range_t' inf_get_privrange(out) -> bool - inf_get_privrange() -> range_t + @param out (C++: range_t *) Help on function inf_get_privrange_end_ea in module ida_ida: @@ -36071,6 +41063,7 @@ 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 (C++: int) Help on function inf_is_limiter_empty in module ida_ida: @@ -36126,6 +41119,7 @@ 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 (C++: uval_t) Help on function inf_prefix_show_funcoff in module ida_ida: @@ -36171,796 +41165,951 @@ Help on function inf_set_32bit in module ida_ida: inf_set_32bit(*args) -> 'bool' inf_set_32bit(_v=True) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_abibits in module ida_ida: inf_set_abibits(*args) -> 'bool' inf_set_abibits(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_af in module ida_ida: inf_set_af(*args) -> 'bool' inf_set_af(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_af2 in module ida_ida: inf_set_af2(*args) -> 'bool' inf_set_af2(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) 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 (C++: 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 (C++: bool) Help on function inf_set_apptype in module ida_ida: inf_set_apptype(*args) -> 'bool' inf_set_apptype(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_asmtype in module ida_ida: inf_set_asmtype(*args) -> 'bool' inf_set_asmtype(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_baseaddr in module ida_ida: inf_set_baseaddr(*args) -> 'bool' inf_set_baseaddr(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: short) Help on function inf_set_cc in module ida_ida: inf_set_cc(*args) -> 'bool' inf_set_cc(_v) -> bool + @param _v (C++: const compiler_info_t &) 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_cmtflg in module ida_ida: inf_set_cmtflg(*args) -> 'bool' inf_set_cmtflg(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_comment in module ida_ida: inf_set_comment(*args) -> 'bool' inf_set_comment(_v) -> bool + @param _v (C++: uchar) 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: uint32) Help on function inf_set_datatypes in module ida_ida: inf_set_datatypes(*args) -> 'bool' inf_set_datatypes(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_demnames in module ida_ida: inf_set_demnames(*args) -> 'bool' inf_set_demnames(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_dll in module ida_ida: inf_set_dll(*args) -> 'bool' inf_set_dll(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_filetype in module ida_ida: inf_set_filetype(*args) -> 'bool' inf_set_filetype(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_genflags in module ida_ida: inf_set_genflags(*args) -> 'bool' inf_set_genflags(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_highoff in module ida_ida: inf_set_highoff(*args) -> 'bool' inf_set_highoff(_v) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_indent in module ida_ida: inf_set_indent(*args) -> 'bool' inf_set_indent(_v) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_lenxref in module ida_ida: inf_set_lenxref(*args) -> 'bool' inf_set_lenxref(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_lflags in module ida_ida: inf_set_lflags(*args) -> 'bool' inf_set_lflags(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_limiter in module ida_ida: inf_set_limiter(*args) -> 'bool' inf_set_limiter(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_listnames in module ida_ida: inf_set_listnames(*args) -> 'bool' inf_set_listnames(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: uint32) Help on function inf_set_lowoff in module ida_ida: inf_set_lowoff(*args) -> 'bool' inf_set_lowoff(_v) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_main in module ida_ida: inf_set_main(*args) -> 'bool' inf_set_main(_v) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_margin in module ida_ida: inf_set_margin(*args) -> 'bool' inf_set_margin(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: ea_t) Help on function inf_set_maxref in module ida_ida: inf_set_maxref(*args) -> 'bool' inf_set_maxref(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: ea_t) Help on function inf_set_nametype in module ida_ida: inf_set_nametype(*args) -> 'bool' inf_set_nametype(_v) -> bool + @param _v (C++: char) Help on function inf_set_netdelta in module ida_ida: inf_set_netdelta(*args) -> 'bool' inf_set_netdelta(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_ostype in module ida_ida: inf_set_ostype(*args) -> 'bool' inf_set_ostype(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_outflags in module ida_ida: inf_set_outflags(*args) -> 'bool' inf_set_outflags(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_prefflag in module ida_ida: inf_set_prefflag(*args) -> 'bool' inf_set_prefflag(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_privrange in module ida_ida: inf_set_privrange(*args) -> 'bool' inf_set_privrange(_v) -> bool + @param _v (C++: const range_t &) 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 (C++: 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 (C++: 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 (C++: const char *) + @param len (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_refcmtnum in module ida_ida: inf_set_refcmtnum(*args) -> 'bool' inf_set_refcmtnum(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_snapshot in module ida_ida: inf_set_snapshot(*args) -> 'bool' inf_set_snapshot(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_specsegs in module ida_ida: inf_set_specsegs(*args) -> 'bool' inf_set_specsegs(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: const char *) + @param len (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_version in module ida_ida: inf_set_version(*args) -> 'bool' inf_set_version(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_xrefflag in module ida_ida: inf_set_xrefflag(*args) -> 'bool' inf_set_xrefflag(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_xrefnum in module ida_ida: inf_set_xrefnum(*args) -> 'bool' inf_set_xrefnum(_v) -> bool + @param _v (C++: uchar) Help on function inf_should_create_stkvars in module ida_ida: @@ -37075,13 +42224,10 @@ inf_use_flirt(*args) -> 'bool' 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) + is_filetype_like_binary(ft) -> bool + @param ft (C++: filetype_t) Help on function in module ida_ida: @@ -37090,14 +42236,11 @@ Help on function in module ida_ida: 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) + to_ea(reg_cs, reg_ip) -> ea_t + @param reg_cs (C++: sel_t) + @param reg_ip (C++: uval_t) === ida_ida EPYDOC INJECTIONS === ida_ida.ABI_8ALIGN4 @@ -37785,6 +42928,7 @@ class CustomIDAMemo(View_Hooks) | | __init__(self) | __init__(self, _flags=0) -> View_Hooks + | _flags: uint32 | | _get_cb(self, view, cb_name) | @@ -37793,37 +42937,81 @@ class CustomIDAMemo(View_Hooks) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, view, ve) + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, view, *args) + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, view, *args) + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, view, ve) + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, view) + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, view, key, state) + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, view, now, was) + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, view, ve) + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, view, rt) + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -37850,7 +43038,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -37903,9 +43094,6 @@ 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: @@ -38240,8 +43428,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,8 +43437,6 @@ 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 @@ -38261,18 +43445,18 @@ Help on function enable_python_cli in module ida_idaapi: enable_python_cli(*args) -> 'void' enable_python_cli(enable) + enable: bool Help on function format_basestring in module ida_idaapi: format_basestring(*args) -> 'PyObject *' format_basestring(_in) -> PyObject * + _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: @@ -38288,8 +43472,6 @@ class loader_input_t(builtins.object) | | __init__(self, *args) | __init__(self, pycapsule=None) -> loader_input_t - | - | | Closes the file | | __repr__ = _swig_repr(self) @@ -38302,8 +43484,6 @@ class loader_input_t(builtins.object) | | 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) @@ -38319,8 +43499,6 @@ 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 *' @@ -38328,14 +43506,10 @@ class loader_input_t(builtins.object) | | gets(self, *args) -> 'PyObject *' | gets(self, len) -> PyObject * - | - | | Reads a line from the input file. Returns the read line or None | | 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 @@ -38343,15 +43517,11 @@ class loader_input_t(builtins.object) | | open(self, *args) -> 'bool' | open(self, filename, remote=False) -> bool - | - | | Opens a file (or a remote file) | @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 @@ -38360,33 +43530,23 @@ class loader_input_t(builtins.object) | | opened(self, *args) -> 'bool' | opened(self) -> bool - | - | | Checks if the file is opened or not | | read(self, *args) -> 'PyObject *' | read(self, size) -> PyObject * - | - | | Reads from the file. Returns the buffer or None | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * - | - | | Similar to read() but it respect the endianness | | seek(self, *args) -> 'int64' | seek(self, pos, whence=SEEK_SET) -> int64 - | - | | Set input source position | @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 | | size(self, *args) -> 'int64' @@ -38394,8 +43554,6 @@ class loader_input_t(builtins.object) | | tell(self, *args) -> 'int64' | tell(self) -> int64 - | - | | Returns the current position | | ---------------------------------------------------------------------- @@ -38403,15 +43561,15 @@ class loader_input_t(builtins.object) | | from_capsule(*args) -> 'loader_input_t *' | from_capsule(pycapsule) -> loader_input_t + | pycapsule: PyObject * | | from_fp(*args) -> 'loader_input_t *' | from_fp(fp) -> loader_input_t - | - | | A static method to construct an instance from a FILE* | | from_linput(*args) -> 'loader_input_t *' | from_linput(linput) -> loader_input_t + | linput: linput_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38432,16 +43590,19 @@ 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 + 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 + 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 + linput: linput_t * Help on function notify_when in module ida_idaapi: @@ -38481,6 +43642,7 @@ Help on function parse_command_line3 in module ida_idaapi: parse_command_line3(*args) -> 'PyObject *' parse_command_line3(cmdline) -> PyObject * + cmdline: char const * Help on class plugin_t in module ida_idaapi: @@ -38505,6 +43667,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 +43757,43 @@ Help on function pycim_get_widget in module ida_idaapi: pycim_get_widget(*args) -> 'TWidget *' pycim_get_widget(_self) -> TWidget * + self: PyObject * Help on function pycim_view_close in module ida_idaapi: pycim_view_close(*args) -> 'void' pycim_view_close(_self) + self: PyObject * Help on function pygc_create_groups in module ida_idaapi: pygc_create_groups(*args) -> 'PyObject *' pygc_create_groups(_self, groups_infos) -> PyObject * + self: PyObject * + 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 * + self: PyObject * + groups: PyObject * + new_current: PyObject * Help on function pygc_refresh in module ida_idaapi: pygc_refresh(*args) -> 'void' pygc_refresh(_self) + 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 * + self: PyObject * + groups: PyObject * + expand: PyObject * + new_current: PyObject * Help on class pyidc_cvt_helper__ in module ida_idaapi: @@ -38674,8 +43871,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}. @@ -38694,16 +43889,24 @@ Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * + slot: int32 Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t + slot: int32 Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) + ea: ea_t + lnnum: int + x: short + y: short + slot: int32 + comment: char const * Help on Appcall__ in module ida_idd object: @@ -39062,6 +44265,11 @@ Help on function appcall in module ida_idd: appcall(*args) -> 'PyObject *' appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * + func_ea: ea_t + tid: thid_t + _type_or_none: bytevec_t const & + _fields: bytevec_t const & + arg_list: PyObject * Help on class bptaddr_t in module ida_idd: @@ -39105,12 +44313,14 @@ class call_stack_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: call_stack_info_t const & | | __init__(self, *args) | __init__(self) -> call_stack_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: call_stack_info_t const & | | __repr__ = _swig_repr(self) | @@ -39155,13 +44365,15 @@ class call_stack_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) -> 'call_stack_info_t const &' | __getitem__(self, i) -> call_stack_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> call_stack_t - | __init__(self, x) -> call_stack_t + | 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,23 +44383,29 @@ class call_stack_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< call_stack_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: call_stack_info_t const & | | __swig_destroy__ = delete_call_stack_t(...) | delete_call_stack_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: call_stack_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: call_stack_info_t const & | | at(self, *args) -> 'call_stack_info_t const &' | at(self, _idx) -> call_stack_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39211,52 +44429,74 @@ class call_stack_t(builtins.object) | | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' | erase(self, it) -> call_stack_info_t + | it: qvector< call_stack_info_t >::iterator + | + | | erase(self, first, last) -> call_stack_info_t + | first: qvector< call_stack_info_t >::iterator + | 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 + | x: call_stack_info_t const & + | + | | find(self, x) -> call_stack_info_t + | x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=call_stack_info_t()) + | x: call_stack_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: call_stack_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: call_stack_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' | insert(self, it, x) -> call_stack_info_t + | it: qvector< call_stack_info_t >::iterator + | 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) - | push_back(self) -> call_stack_info_t + | x: call_stack_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: call_stack_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< call_stack_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39282,38 +44522,35 @@ Help on function can_exc_continue in module ida_idd: can_exc_continue(*args) -> 'bool' can_exc_continue(ev) -> bool + 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 + cleanup_appcall(tid) -> error_t + @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) -> '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 + dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t + @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: @@ -39324,8 +44561,6 @@ 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 @@ -39335,8 +44570,6 @@ 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 @@ -39344,8 +44577,6 @@ 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: @@ -39357,8 +44588,6 @@ 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 @@ -39370,8 +44599,6 @@ 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) @@ -39381,8 +44608,6 @@ Help on function dbg_write_memory in module ida_idd: dbg_write_memory(*args) -> 'PyObject *' dbg_write_memory(ea, buf) -> PyObject * - - Writes a buffer to the debugee's memory @return: Boolean @@ -39434,7 +44659,7 @@ class debug_event_t(builtins.object) | | __init__(self, *args) | __init__(self) -> debug_event_t - | __init__(self, r) -> debug_event_t + | r: debug_event_t const & | | __repr__ = _swig_repr(self) | @@ -39442,56 +44667,70 @@ class debug_event_t(builtins.object) | delete_debug_event_t(self) | | bpt(self, *args) -> 'bptaddr_t const &' - | bpt(self) -> bptaddr_t - | bpt(self) -> bptaddr_t + | 'EXCEPTION' | | 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 (C++: const debug_event_t &) | | 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 & + | 'THREAD_STARTED' (thread name) 'LIB_UNLOADED' (unloaded library name) + | 'INFORMATION' (will be displayed in the output window if not empty) | | info(self, *args) -> 'qstring const &' - | info(self) -> qstring - | info(self) -> qstring const & + | 'BREAKPOINT' | | modinfo(self, *args) -> 'modinfo_t const &' - | modinfo(self) -> modinfo_t - | modinfo(self) -> modinfo_t + | Information that depends on the event code: + | + | < 'PROCESS_STARTED' , 'PROCESS_ATTACHED' , 'LIB_LOADED' + | 'PROCESS_EXITED' , 'THREAD_EXITED' | | set_bpt(self, *args) -> 'bptaddr_t &' | set_bpt(self) -> bptaddr_t | | set_eid(self, *args) -> 'void' + | 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. + | | set_eid(self, id) + | @param id (C++: 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 (C++: event_id_t) + | @param code (C++: int) | | set_info(self, *args) -> 'qstring &' | set_info(self, id) -> qstring & + | @param id (C++: event_id_t) | | set_modinfo(self, *args) -> 'modinfo_t &' | set_modinfo(self, id) -> modinfo_t + | @param id (C++: event_id_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39526,7 +44765,10 @@ class exception_info_t(builtins.object) | | __init__(self, *args) | __init__(self) -> exception_info_t - | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | _code: uint + | _flags: uint32 + | _name: char const * + | _desc: char const * | | __repr__ = _swig_repr(self) | @@ -39534,10 +44776,10 @@ class exception_info_t(builtins.object) | 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: @@ -39611,10 +44853,11 @@ class excvec_t(builtins.object) | | __getitem__(self, *args) -> 'exception_info_t const &' | __getitem__(self, i) -> exception_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> excvec_t - | __init__(self, x) -> excvec_t + | 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,12 +44869,15 @@ class excvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39655,7 +44901,12 @@ class excvec_t(builtins.object) | | erase(self, *args) -> 'qvector< exception_info_t >::iterator' | erase(self, it) -> exception_info_t + | it: qvector< exception_info_t >::iterator + | + | | erase(self, first, last) -> exception_info_t + | first: qvector< exception_info_t >::iterator + | last: qvector< exception_info_t >::iterator | | extract(self, *args) -> 'exception_info_t *' | extract(self) -> exception_info_t @@ -39665,35 +44916,47 @@ class excvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=exception_info_t()) + | x: exception_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: exception_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< exception_info_t >::iterator' | insert(self, it, x) -> exception_info_t + | it: qvector< exception_info_t >::iterator + | x: exception_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'exception_info_t &' | push_back(self, x) - | push_back(self) -> exception_info_t + | x: exception_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: exception_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< exception_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39714,41 +44977,49 @@ 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + ev: debug_event_t const * Help on class meminfo_vec_t in module ida_idd: @@ -39759,13 +45030,15 @@ class meminfo_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< memory_info_t > const & | | __getitem__(self, *args) -> 'memory_info_t const &' | __getitem__(self, i) -> memory_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> meminfo_vec_t - | __init__(self, x) -> meminfo_vec_t + | 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. @@ -39775,23 +45048,29 @@ class meminfo_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< memory_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: memory_info_t const & | | __swig_destroy__ = delete_meminfo_vec_t(...) | delete_meminfo_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: memory_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: memory_info_t const & | | at(self, *args) -> 'memory_info_t const &' | at(self, _idx) -> memory_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39815,52 +45094,74 @@ class meminfo_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< memory_info_t >::iterator' | erase(self, it) -> memory_info_t + | it: qvector< memory_info_t >::iterator + | + | | erase(self, first, last) -> memory_info_t + | first: qvector< memory_info_t >::iterator + | 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 + | x: memory_info_t const & + | + | | find(self, x) -> memory_info_t + | x: memory_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=memory_info_t()) + | x: memory_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: memory_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: memory_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< memory_info_t >::iterator' | insert(self, it, x) -> memory_info_t + | it: qvector< memory_info_t >::iterator + | x: memory_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memory_info_t &' | push_back(self, x) - | push_back(self) -> memory_info_t + | x: memory_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: memory_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< memory_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39896,12 +45197,14 @@ class memory_info_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: memory_info_t const & | | __init__(self, *args) | __init__(self) -> memory_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: memory_info_t const & | | __repr__ = _swig_repr(self) | @@ -39939,37 +45242,58 @@ class memory_info_t(ida_range.range_t) | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -40071,10 +45395,11 @@ class procinfo_vec_t(builtins.object) | | __getitem__(self, *args) -> 'process_info_t const &' | __getitem__(self, i) -> process_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> procinfo_vec_t - | __init__(self, x) -> procinfo_vec_t + | 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,12 +45411,15 @@ class procinfo_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -40115,7 +45443,12 @@ class procinfo_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< process_info_t >::iterator' | erase(self, it) -> process_info_t + | it: qvector< process_info_t >::iterator + | + | | erase(self, first, last) -> process_info_t + | first: qvector< process_info_t >::iterator + | last: qvector< process_info_t >::iterator | | extract(self, *args) -> 'process_info_t *' | extract(self) -> process_info_t @@ -40125,35 +45458,47 @@ class procinfo_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=process_info_t()) + | x: process_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: process_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< process_info_t >::iterator' | insert(self, it, x) -> process_info_t + | it: qvector< process_info_t >::iterator + | x: process_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'process_info_t &' | push_back(self, x) - | push_back(self) -> process_info_t + | x: process_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: process_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< process_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -40224,13 +45569,15 @@ class regval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: regval_t const & | | __init__(self, *args) | __init__(self) -> regval_t - | __init__(self, r) -> regval_t + | r: regval_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: regval_t const & | | __repr__ = _swig_repr(self) | @@ -40242,7 +45589,7 @@ class regval_t(builtins.object) | bytes(self) -> bytevec_t const & | | clear(self, *args) -> 'void' - | clear(self) + | Clear register value. | | get_data(self, *args) -> 'void const *' | get_data(self) @@ -40253,20 +45600,29 @@ class regval_t(builtins.object) | | set_bytes(self, *args) -> 'bytevec_t &' | set_bytes(self, data, size) + | data: uchar const * + | size: size_t + | + | | set_bytes(self, v) - | set_bytes(self) -> bytevec_t & + | v: bytevec_t const & | | set_float(self, *args) -> 'void' | set_float(self, x) + | x: ushort const * | | set_int(self, *args) -> 'void' | set_int(self, x) + | x: uint64 | | set_unavailable(self, *args) -> 'void' | set_unavailable(self) | | swap(self, *args) -> 'void' + | Set this = r and r = this. + | | swap(self, r) + | @param r (C++: regval_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40328,43 +45684,66 @@ class scattered_segm_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -40394,6 +45773,8 @@ 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 (C++: debug_event_t *) + @param id (C++: event_id_t) Help on class thread_name_t in module ida_idd: @@ -40537,8 +45918,6 @@ Help on function AssembleLine in module ida_idp: AssembleLine(*args) -> 'PyObject *' 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 @@ -40561,302 +45940,732 @@ class IDB_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDB_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_IDB_Hooks(...) | delete_IDB_Hooks(self) | + | adding_segm(self, *args) -> 'void' + | A segment is being created. + | + | adding_segm(self, s) + | @param s (C++: segment_t *) + | | allsegs_moved(self, *args) -> 'void' + | Program rebasing is complete. This event is generated after series of + | segm_moved events + | | allsegs_moved(self, info) + | @param info (C++: segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' - | auto_empty(self) + | Info: all analysis queues are empty. This callback is called once when + | the initial analysis is finished. If the queue is not empty upon the + | return from this callback, it will be called later again. | | auto_empty_finally(self, *args) -> 'void' - | auto_empty_finally(self) + | Info: all analysis queues are empty definitively. This callback is + | called only once. | | bookmark_changed(self, *args) -> 'void' + | Boomarked position changed. + | | bookmark_changed(self, index, pos, desc) + | @param index (C++: uint32) + | @param pos (C++: const lochist_entry_t *) + | @param desc: if desc==NULL, then the bookmark was deleted. (C++: + | const char *) | | byte_patched(self, *args) -> 'void' + | A byte has been patched. + | | byte_patched(self, ea, old_value) + | @param ea (C++: ea_t) + | @param old_value (C++: uint32) | | callee_addr_changed(self, *args) -> 'void' + | Callee address has been updated by the user. + | | callee_addr_changed(self, ea, callee) + | @param ea (C++: ea_t) + | @param callee (C++: ea_t) | | changing_cmt(self, *args) -> 'void' + | An item comment is to be changed. + | | changing_cmt(self, ea, repeatable_cmt, newcmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) + | @param newcmt (C++: const char *) | | changing_enum_bf(self, *args) -> 'void' + | An enum type 'bitfield' attribute is to be changed. + | | changing_enum_bf(self, id, new_bf) + | @param id (C++: enum_t) + | @param new_bf (C++: bool) | | changing_enum_cmt(self, *args) -> 'void' + | An enum or member type comment is to be changed. + | | changing_enum_cmt(self, id, repeatable, newcmt) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_op_ti(self, *args) -> 'void' + | An operand typestring (c/c++ prototype) is to be changed. + | | changing_op_ti(self, ea, n, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | changing_op_type(self, *args) -> 'void' + | An operand type (offset, hex, etc...) is to be changed. + | | changing_op_type(self, ea, n, opinfo) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param opinfo: additional operand info (C++: const opinfo_t *) | | changing_range_cmt(self, *args) -> 'void' + | Range comment is to be changed. + | | changing_range_cmt(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | changing_segm_class(self, *args) -> 'void' + | Segment class is being changed. + | | changing_segm_class(self, s) + | @param s (C++: segment_t *) | | changing_segm_end(self, *args) -> 'void' + | Segment end address is to be changed. + | | changing_segm_end(self, s, new_end, segmod_flags) + | @param s (C++: segment_t *) + | @param new_end (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_segm_name(self, *args) -> 'void' + | Segment name is being changed. + | | changing_segm_name(self, s, oldname) + | @param s (C++: segment_t *) + | @param oldname (C++: const char *) | | changing_segm_start(self, *args) -> 'void' + | Segment start address is to be changed. + | | changing_segm_start(self, s, new_start, segmod_flags) + | @param s (C++: segment_t *) + | @param new_start (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_struc_align(self, *args) -> 'void' + | A structure type is being changed (the struct alignment). + | | changing_struc_align(self, sptr) + | @param sptr (C++: struc_t *) | | changing_struc_cmt(self, *args) -> 'void' + | A structure type comment is to be changed. + | | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | @param struc_id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_struc_member(self, *args) -> 'void' + | A structure member is to be changed. + | | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param flag (C++: flags_t) + | @param ti (C++: const opinfo_t *) + | @param nbytes (C++: asize_t) | | changing_ti(self, *args) -> 'void' + | An item typestring (c/c++ prototype) is to be changed. + | | changing_ti(self, ea, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | closebase(self, *args) -> 'void' - | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) -> 'void' + | An item comment has been changed. + | | cmt_changed(self, ea, repeatable_cmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) | | compiler_changed(self, *args) -> 'void' - | compiler_changed(self) + | The kernel has changed the compiler information. (\inf{cc} structure; + | 'get_abi_name' ) | | deleting_enum(self, *args) -> 'void' + | An enum type is to be deleted. + | | deleting_enum(self, id) + | @param id (C++: enum_t) | | deleting_enum_member(self, *args) -> 'void' + | An enum member is to be deleted. + | | deleting_enum_member(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | deleting_func(self, *args) -> 'void' + | The kernel is about to delete a function. + | | deleting_func(self, pfn) + | @param pfn (C++: func_t *) | | deleting_func_tail(self, *args) -> 'void' + | A function tail chunk is to be removed. + | | deleting_func_tail(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: const range_t *) | | deleting_segm(self, *args) -> 'void' + | A segment is to be deleted. + | | deleting_segm(self, start_ea) + | @param start_ea (C++: ea_t) | | deleting_struc(self, *args) -> 'void' + | A structure type is to be deleted. + | | deleting_struc(self, sptr) + | @param sptr (C++: struc_t *) | | deleting_struc_member(self, *args) -> 'void' + | A structure member is to be deleted. + | | deleting_struc_member(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | deleting_tryblks(self, *args) -> 'void' + | About to delete tryblk information in given range + | | deleting_tryblks(self, range) + | @param range (C++: const range_t *) | | destroyed_items(self, *args) -> 'void' + | Instructions/data have been destroyed in [ea1,ea2). + | | destroyed_items(self, ea1, ea2, will_disable_range) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) + | @param will_disable_range (C++: bool) | | determined_main(self, *args) -> 'void' + | The main() function has been determined. + | | determined_main(self, main) + | @param main: address of the main() function (C++: ea_t) + | + | dirtree_link(self, *args) -> 'void' + | Dirtree: an item has been linked/unlinked. + | + | dirtree_link(self, dt, path, link) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param link (C++: bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | Dirtree: a directory has been created. + | + | dirtree_mkdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_move(self, *args) -> 'void' + | Dirtree: a directory or item has been moved. + | + | dirtree_move(self, dt, _from, to) + | @param dt (C++: dirtree_t *) + | @param _from (C++: const char *) + | @param to (C++: const char *) + | + | dirtree_rank(self, *args) -> 'void' + | Dirtree: a directory or item rank has been changed. + | + | dirtree_rank(self, dt, path, rank) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param rank (C++: size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | Dirtree: a directory has been deleted. + | + | dirtree_rmdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | Dirtree: an inode became unavailable. + | + | dirtree_rminode(self, dt, inode) + | @param dt (C++: dirtree_t *) + | @param inode (C++: inode_t) | | dump_state(self, *args) -> 'qstring' | dump_state(self) -> qstring | | enum_bf_changed(self, *args) -> 'void' + | An enum type 'bitfield' attribute has been changed. + | | enum_bf_changed(self, id) + | @param id (C++: enum_t) | | enum_cmt_changed(self, *args) -> 'void' + | An enum or member type comment has been changed. + | | enum_cmt_changed(self, id, repeatable) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) | | enum_created(self, *args) -> 'void' + | An enum type has been created. + | | enum_created(self, id) + | @param id (C++: enum_t) | | enum_deleted(self, *args) -> 'void' + | An enum type has been deleted. + | | enum_deleted(self, id) + | @param id (C++: enum_t) | | enum_member_created(self, *args) -> 'void' + | An enum member has been created. + | | enum_member_created(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_member_deleted(self, *args) -> 'void' + | An enum member has been deleted. + | | enum_member_deleted(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_renamed(self, *args) -> 'void' + | An enum or member has been renamed. + | | enum_renamed(self, id) + | @param id (C++: tid_t) | | expanding_struc(self, *args) -> 'void' + | A structure type is to be expanded/shrunk. + | | expanding_struc(self, sptr, offset, delta) + | @param sptr (C++: struc_t *) + | @param offset (C++: ea_t) + | @param delta (C++: adiff_t) | | extlang_changed(self, *args) -> 'void' + | The list of extlangs or the default extlang was changed. + | | extlang_changed(self, kind, el, idx) + | @param kind: 0: extlang installed 1: extlang removed 2: default + | extlang changed (C++: int) + | @param el: pointer to the extlang affected (C++: extlang_t *) + | @param idx: extlang index (C++: int) | | extra_cmt_changed(self, *args) -> 'void' + | An extra comment has been changed. + | | extra_cmt_changed(self, ea, line_idx, cmt) + | @param ea (C++: ea_t) + | @param line_idx (C++: int) + | @param cmt (C++: const char *) | | flow_chart_created(self, *args) -> 'void' + | Gui has retrieved a function flow chart. Plugins may modify the flow + | chart in this callback. + | | flow_chart_created(self, fc) + | @param fc (C++: qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' + | The kernel has deleted a function frame. + | | frame_deleted(self, pfn) + | @param pfn (C++: func_t *) | | func_added(self, *args) -> 'void' + | The kernel has added a function. + | | func_added(self, pfn) + | @param pfn (C++: func_t *) + | + | func_deleted(self, *args) -> 'void' + | A function has been deleted. + | + | func_deleted(self, func_ea) + | @param func_ea (C++: ea_t) | | func_noret_changed(self, *args) -> 'void' + | 'FUNC_NORET' bit has been changed. + | | func_noret_changed(self, pfn) + | @param pfn (C++: func_t *) | | func_tail_appended(self, *args) -> 'void' + | A function tail chunk has been appended. + | | func_tail_appended(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: func_t *) | | func_tail_deleted(self, *args) -> 'void' + | A function tail chunk has been removed. + | | func_tail_deleted(self, pfn, tail_ea) + | @param pfn (C++: func_t *) + | @param tail_ea (C++: ea_t) | | func_updated(self, *args) -> 'void' + | The kernel has updated a function. + | | func_updated(self, pfn) + | @param pfn (C++: func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' + | FLIRT signature has been loaded for normal processing (not for + | recognition of startup sequences). + | | idasgn_loaded(self, short_sig_name) + | @param short_sig_name (C++: const char *) | | item_color_changed(self, *args) -> 'void' + | An item color has been changed. + | | item_color_changed(self, ea, color) + | @param ea (C++: ea_t) + | @param color: if color==DEFCOLOR, the the color is deleted. (C++: + | bgcolor_t) | | kernel_config_loaded(self, *args) -> 'void' - | kernel_config_loaded(self) + | This event is issued when ida.cfg is parsed. + | + | kernel_config_loaded(self, pass_number) + | @param pass_number (C++: int) | | loader_finished(self, *args) -> 'void' + | External file loader finished its work. Use this event to augment the + | existing loader functionality. + | | loader_finished(self, li, neflags, filetypename) + | @param li (C++: linput_t *) + | @param neflags: Load file flags (C++: uint16) + | @param filetypename (C++: const char *) | | local_types_changed(self, *args) -> 'void' - | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) -> 'void' + | An instruction is being created. + | | make_code(self, insn) + | @param insn (C++: const insn_t*) | | make_data(self, *args) -> 'void' + | A data item is being created. + | | make_data(self, ea, flags, tid, len) + | @param ea (C++: ea_t) + | @param flags (C++: flags_t) + | @param tid (C++: tid_t) + | @param len (C++: asize_t) | | op_ti_changed(self, *args) -> 'void' + | An operand typestring (c/c++ prototype) has been changed. + | | op_ti_changed(self, ea, n, type, fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | op_type_changed(self, *args) -> 'void' + | An operand type (offset, hex, etc...) has been set or deleted. + | | op_type_changed(self, ea, n) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) | | range_cmt_changed(self, *args) -> 'void' + | Range comment has been changed. + | | range_cmt_changed(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | renamed(self, *args) -> 'void' + | The kernel has renamed a byte. See also the \idpcode{rename} event + | | renamed(self, ea, new_name, local_name) + | @param ea (C++: ea_t) + | @param new_name (C++: const char *) + | @param local_name (C++: bool) | | renaming_enum(self, *args) -> 'void' + | An enum or enum member is to be renamed. + | | renaming_enum(self, id, is_enum, newname) + | @param id (C++: tid_t) + | @param is_enum (C++: bool) + | @param newname (C++: const char *) | | renaming_struc(self, *args) -> 'void' + | A structure type is to be renamed. + | | renaming_struc(self, id, oldname, newname) + | @param id (C++: tid_t) + | @param oldname (C++: const char *) + | @param newname (C++: const char *) | | renaming_struc_member(self, *args) -> 'void' + | A structure member is to be renamed. + | | renaming_struc_member(self, sptr, mptr, newname) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param newname (C++: const char *) | | savebase(self, *args) -> 'void' - | savebase(self) + | The database is being saved. | | segm_added(self, *args) -> 'void' + | A new segment has been created. + | | segm_added(self, s) + | @param s: See also adding_segm (C++: segment_t *) | | segm_attrs_updated(self, *args) -> 'void' + | Segment attributes has been changed. + | | segm_attrs_updated(self, s) + | @param s: This event is generated for secondary segment attributes + | (examples: color, permissions, etc) (C++: segment_t *) | | segm_class_changed(self, *args) -> 'void' + | Segment class has been changed. + | | segm_class_changed(self, s, sclass) + | @param s (C++: segment_t *) + | @param sclass (C++: const char *) | | segm_deleted(self, *args) -> 'void' + | A segment has been deleted. + | | segm_deleted(self, start_ea, end_ea) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) | | segm_end_changed(self, *args) -> 'void' + | Segment end address has been changed. + | | segm_end_changed(self, s, oldend) + | @param s (C++: segment_t *) + | @param oldend (C++: ea_t) | | segm_moved(self, *args) -> 'void' + | Segment has been moved. + | | segm_moved(self, _from, to, size, changed_netmap) + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param size (C++: asize_t) + | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) | | segm_name_changed(self, *args) -> 'void' + | Segment name has been changed. + | | segm_name_changed(self, s, name) + | @param s (C++: segment_t *) + | @param name (C++: const char *) | | segm_start_changed(self, *args) -> 'void' + | Segment start address has been changed. + | | segm_start_changed(self, s, oldstart) + | @param s (C++: segment_t *) + | @param oldstart (C++: ea_t) | | set_func_end(self, *args) -> 'void' + | Function chunk end address will be changed. + | | set_func_end(self, pfn, new_end) + | @param pfn (C++: func_t *) + | @param new_end (C++: ea_t) | | set_func_start(self, *args) -> 'void' + | Function chunk start address will be changed. + | | set_func_start(self, pfn, new_start) + | @param pfn (C++: func_t *) + | @param new_start (C++: ea_t) | | sgr_changed(self, *args) -> 'void' + | The kernel has changed a segment register value. + | | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) + | @param value (C++: sel_t) + | @param old_value (C++: sel_t) + | @param tag: Segment register range tags (C++: uchar) | | sgr_deleted(self, *args) -> 'void' + | The kernel has deleted a segment register value. + | | sgr_deleted(self, start_ea, end_ea, regnum) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) | | stkpnts_changed(self, *args) -> 'void' + | Stack change points have been modified. + | | stkpnts_changed(self, pfn) + | @param pfn (C++: func_t *) | | struc_align_changed(self, *args) -> 'void' + | A structure type has been changed (the struct alignment). + | | struc_align_changed(self, sptr) + | @param sptr (C++: struc_t *) | | struc_cmt_changed(self, *args) -> 'void' + | A structure type comment has been changed. + | | struc_cmt_changed(self, struc_id, repeatable_cmt) + | @param struc_id (C++: tid_t) + | @param repeatable_cmt (C++: bool) | | struc_created(self, *args) -> 'void' + | A new structure type has been created. + | | struc_created(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_deleted(self, *args) -> 'void' + | A structure type has been deleted. + | | struc_deleted(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_expanded(self, *args) -> 'void' + | A structure type has been expanded/shrank. + | | struc_expanded(self, sptr) + | @param sptr (C++: struc_t *) | | struc_member_changed(self, *args) -> 'void' + | A structure member has been changed. + | | struc_member_changed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_created(self, *args) -> 'void' + | A structure member has been created. + | | struc_member_created(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_deleted(self, *args) -> 'void' + | A structure member has been deleted. + | | struc_member_deleted(self, sptr, member_id, offset) + | @param sptr (C++: struc_t *) + | @param member_id (C++: tid_t) + | @param offset (C++: ea_t) | | struc_member_renamed(self, *args) -> 'void' + | A structure member has been renamed. + | | struc_member_renamed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_renamed(self, *args) -> 'void' + | A structure type has been renamed. + | | struc_renamed(self, sptr) + | @param sptr (C++: struc_t *) | | tail_owner_changed(self, *args) -> 'void' + | A tail chunk owner has been changed. + | | tail_owner_changed(self, tail, owner_func, old_owner) + | @param tail (C++: func_t *) + | @param owner_func (C++: ea_t) + | @param old_owner (C++: ea_t) | | thunk_func_created(self, *args) -> 'void' + | A thunk bit has been set for a function. + | | thunk_func_created(self, pfn) + | @param pfn (C++: func_t *) | | ti_changed(self, *args) -> 'void' + | An item typestring (c/c++ prototype) has been changed. + | | ti_changed(self, ea, type, fnames) + | @param ea (C++: ea_t) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | tryblks_updated(self, *args) -> 'void' + | Updated tryblk information + | | tryblks_updated(self, tbv) + | @param tbv (C++: const tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' + | About to update tryblk information + | | updating_tryblks(self, tbv) + | @param tbv (C++: const tryblks_t *) | | upgraded(self, *args) -> 'void' + | The database has been upgraded and the receiver can upgrade its info + | as well + | | upgraded(self, _from) + | @param _from: - old IDB version (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40881,6 +46690,7 @@ class IDP_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDP_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -40891,473 +46701,1244 @@ class IDP_Hooks(builtins.object) | dump_state(self) -> qstring | | ev_add_cref(self, *args) -> 'int' + | A code reference is being created. + | | ev_add_cref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: cref_t) + | @retval: <0 - cancel cref creation + | @retval: 0 - not implemented or continue | | ev_add_dref(self, *args) -> 'int' + | A data reference is being created. + | | ev_add_dref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: dref_t) + | @retval: <0 - cancel dref creation + | @retval: 0 - not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' + | Adjust argloc according to its type/size and platform endianess + | | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | @param argloc: , inout (C++: argloc_t *) + | optional_type: tinfo_t const * + | @param size: 'size' makes no sense if type != NULL (type->get_size() + | should be used instead) (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_adjust_libfunc_ea(self, *args) -> '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.'ea' initially contains the ea_t of + | the start of the pattern match + | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | @param sig (C++: const idasgn_t *) + | @param libfun (C++: const libfunc_t *) + | @param ea (C++: ea_t *) + | @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' + | 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) + | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | @param ri (C++: refinfo_t *) + | @param ea: instruction address (C++: ea_t) + | @param n: operand number (C++: int) + | @param fd (C++: const fixup_data_t *) + | @retval: <0 - do not create an offset + | @retval: 0 - not implemented or refinfo adjusted | | ev_ana_insn(self, *args) -> '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. + | | 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. + | @param out (C++: insn_t *) + | @retval: 0 - if instruction can't be decoded. | | ev_analyze_prolog(self, *args) -> 'int' + | Analyzes function prolog, epilog, and updates purge, and function + | attributes + | | ev_analyze_prolog(self, ea) -> int + | @param ea: start of function (C++: ea_t) + | @retval: 1 - ok + | @retval: 0 - not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | The loader is done parsing arch-related information, which the + | processor module might want to use to finish its initialization. | | ev_arg_addrs_ready(self, *args) -> 'int' + | Argument address info is ready. + | | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | @param caller (C++: ea_t) + | @param n: number of formal arguments (C++: int) + | @param tif: call prototype (C++: tinfo_t *) + | @param addrs: argument intilization addresses (C++: ea_t *) + | @retval: <0 - do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | After setting a new assembler + | + | ev_asm_installed(self, asmnum) -> int + | @param asmnum: See also ev_newasm (C++: int) | | ev_assemble(self, *args) -> 'PyObject *' + | Assemble an instruction. (display a warning if an error is found). + | | 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 + | @param ea: linear address of instruction (C++: ea_t) + | @param cs: cs of instruction (C++: ea_t) + | @param ip: ip of instruction (C++: ea_t) + | @param use32: is 32bit segment? (C++: bool) + | @param line: line to assemble (C++: const char *) | - | ev_auto_queue_empty(self, *args) -> 'void' - | ev_auto_queue_empty(self, type) + | ev_auto_queue_empty(self, *args) -> 'int' + | One analysis queue is empty. + | + | ev_auto_queue_empty(self, type) -> int + | @param type (C++: atype_t) + | @retval: void - see also idb_event::auto_empty_finally | | ev_calc_arglocs(self, *args) -> 'int' + | Calculate function argument locations. This callback should fill + | retloc, all arglocs, and stkargs. This callback is never called for + | 'CM_CC_SPECIAL' functions. + | | ev_calc_arglocs(self, fti) -> int + | @param fti: points to the func type info (C++: func_type_data_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | Calculate number of purged bytes after call. + | | ev_calc_cdecl_purged_bytes(self, ea) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' + | Calculate list of addresses the instruction in 'insn' may pass control + | to. This callback is required for source level debugging. + | | ev_calc_next_eas(self, res, insn, over) -> int + | @param res: , out: array for the results. (C++: eavec_t *) + | @param insn: the instruction (C++: const insn_t*) + | @param over: calculate for step over (ignore call targets) (C++: + | bool) + | @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' + | Calculate number of purged bytes by the given function type. + | | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | @param p_purged_bytes: ptr to output (C++: int *) + | @param fti: func type details (C++: const func_type_data_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_calc_retloc(self, *args) -> 'int' + | Calculate return value location. + | | ev_calc_retloc(self, retloc, rettype, cc) -> int + | @param retloc (C++: argloc_t *) + | @param rettype (C++: const tinfo_t *) + | @param cc (C++: cm_t) + | @retval: 0 - not implemented + | @retval: 1 - ok, + | @retval: -1 - error | | ev_calc_spdelta(self, *args) -> 'int' + | Calculate amount of change to sp for the given insn. This event is + | required to decompile code snippets. + | | ev_calc_spdelta(self, spdelta, insn) -> int + | @param spdelta (C++: sval_t *) + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_calc_step_over(self, *args) -> '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' . + | | ev_calc_step_over(self, target, ip) -> int + | @param target: pointer to the answer (C++: ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_calc_switch_cases(self, *args) -> 'int' + | Calculate case values and targets for a custom jump table. + | | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | @param casevec: vector of case values (may be NULL) (C++: casevec_t + | *) + | @param targets: corresponding target addresses (my be NULL) (C++: + | eavec_t *) + | @param insn_ea: address of the 'indirect jump' instruction (C++: + | ea_t) + | @param si: switch information (C++: switch_info_t *) + | @retval: 1 - ok + | @retval: <=0 - failed | | ev_calc_varglocs(self, *args) -> 'int' + | Calculate locations of the arguments that correspond to '...'. + | | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | @param ftd: , inout: info about all arguments (including varargs) + | (C++: func_type_data_t *) + | @param aux_regs: buffer for hidden register arguments, may be NULL + | (C++: regobjs_t *) + | @param aux_stkargs: buffer for hidden stack arguments, may be NULL + | (C++: relobj_t *) + | @param nfixed: number of fixed arguments (C++: int) + | @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' + | 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) + | | ev_can_have_type(self, op) -> int + | @param op (C++: const op_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_clean_tbit(self, *args) -> 'int' + | Clear the TF bit after an insn like pushf stored it in memory. + | | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | @param ea: instruction address (C++: ea_t) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 1 - ok + | @retval: 0 - failed | | ev_cmp_operands(self, *args) -> 'int' + | Compare instruction operands + | | ev_cmp_operands(self, op1, op2) -> int + | @param op1 (C++: const op_t*) + | @param op2 (C++: const op_t*) + | @retval: 1 - equal + | @retval: -1 - not equal + | @retval: 0 - not implemented | | ev_coagulate(self, *args) -> '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. + | | ev_coagulate(self, start_ea) -> int + | @param start_ea (C++: ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, *args) -> 'int' + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. + | for thumb mode refs, we clear the last bit) + | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param may_define (C++: bool) + | @param code_ea (C++: ea_t *) + | @retval: <0 - cancel dref analysis + | @retval: 0 - not implemented or continue | | ev_create_flat_group(self, *args) -> 'int' + | Create special segment representing the flat group. + | | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | @param image_base (C++: ea_t) + | @param bitness (C++: int) + | @param dataseg_sel: return value is ignored (C++: sel_t) | | ev_create_func_frame(self, *args) -> 'int' + | Create a function frame for a newly created function Set up frame + | size, its attributes etc + | | ev_create_func_frame(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_create_switch_xrefs(self, *args) -> 'int' + | Create xrefs for a custom jump table. + | | ev_create_switch_xrefs(self, jumpea, si) -> int + | @param jumpea: address of the jump insn (C++: ea_t) + | @param si: switch information (C++: const switch_info_t *) + | @return: must return 1 Must be implemented if module uses custom jump + | tables, | | ev_creating_segm(self, *args) -> 'int' + | A new segment is about to be created. + | | ev_creating_segm(self, seg) -> int + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: <0 - segment should not be created | | ev_decorate_name(self, *args) -> 'PyObject *' + | Decorate/undecorate a C symbol name. + | | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | @param name: name of symbol (C++: const char *) + | @param mangle: true-mangle, false-unmangle (C++: bool) + | @param cc: calling convention (C++: cm_t) + | optional_type: tinfo_t const * + | @retval: 1 - if success + | @retval: 0 - not implemented or failed | | ev_del_cref(self, *args) -> 'int' + | A code reference is being deleted. + | | ev_del_cref(self, _from, to, expand) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param expand (C++: bool) + | @retval: <0 - cancel cref deletion + | @retval: 0 - not implemented or continue | | ev_del_dref(self, *args) -> 'int' + | A data reference is being deleted. + | | ev_del_dref(self, _from, to) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @retval: <0 - cancel dref deletion + | @retval: 0 - not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' + | Get delay slot instructionInput EA may point to the instruction with a + | delay slot or to the delay slot instruction itself. + | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | @param ea: 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) (C++: ea_t *) + | @param bexec: execute slot if jumping, initially set to 'true' (C++: + | bool *) + | @param fexec: execute slot if not jumping, initally set to 'true' + | (C++: bool *) + | @retval: 1 - positive answer + | @retval: <=0 - ordinary insn | | ev_demangle_name(self, *args) -> 'PyObject *' + | Demangle a C++ (or another language) name into a user-readable string. + | This event is called by 'demangle_name()' if you call + | 'demangle_name()' from the handler, protect against recursion! + | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | @param name: mangled name (C++: const char *) + | @param disable_mask: flags to inhibit parts of output or compiler + | info/other (see MNG_) (C++: uint32) + | @param demreq: operation to perform (C++: demreq_type_t) + | @retval: 1 - if success + | @retval: 0 - not implemented | | 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. + | 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_emu_insn(self, insn) -> bool + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: -1 - the kernel will delete the instruction | | ev_endbinary(self, *args) -> 'int' + | IDA has loaded a binary file. + | | ev_endbinary(self, ok) -> int + | @param ok: file loaded successfully? (C++: bool) | | ev_ending_undo(self, *args) -> 'int' + | Ended undoing/redoing an action + | | ev_ending_undo(self, action_name, is_undo) -> int + | @param action_name: action that we finished undoing/redoing. is not + | NULL. (C++: const char *) + | @param is_undo: true if performing undo, false if performing redo + | (C++: bool) | | ev_equal_reglocs(self, *args) -> 'int' + | Are 2 register arglocs the same?. We need this callback for the pc + | module. + | | ev_equal_reglocs(self, a1, a2) -> int + | @param a1 (C++: argloc_t *) + | @param a2 (C++: argloc_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented | | ev_extract_address(self, *args) -> 'int' + | Extract address from a string. + | | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | @param out_ea: , out (C++: ea_t *) + | @param screen_ea (C++: ea_t) + | @param string (C++: const char *) + | @param position (C++: size_t) + | @retval: 1 - ok + | @retval: 0 - kernel should use the standard algorithm + | @retval: -1 - error | | ev_find_op_value(self, *args) -> 'PyObject *' + | Find operand value via a register tracker. The returned value in 'out' + | is valid before executing the instruction. + | | ev_find_op_value(self, pinsn, opn) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param opn: operand index (C++: int) + | @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 *' + | Find register value via a register tracker. The returned value in + | 'out' is valid before executing the instruction. + | | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param reg: register index (C++: int) + | @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' + | 'find_func_bounds()' finished its work. The module may fine tune the + | function bounds + | + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | @param possible_return_code: , in/out (C++: int *) + | @param pfn (C++: func_t *) + | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) + | @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' + | Callback: generating asm or lst file. The kernel calls this callback + | twice, at the beginning and at the end of listing generation. The + | processor module can intercept this event and adjust its output + | + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | @param starting: beginning listing generation (C++: bool) + | @param fp: output file (C++: FILE *) + | @param is_asm: true:assembler, false:listing (C++: bool) + | @param flags: flags passed to gen_file() (C++: int) + | @param outline: 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 (C++: html_line_cb_t + | **) + | @retval: void - | | ev_gen_map_file(self, *args) -> 'int' + | Generate map file. If not implemented the kernel itself will create + | the map file. + | | ev_gen_map_file(self, nlines, fp) -> int + | @param nlines: number of lines in map file (-1 means write error) + | (C++: int *) + | @param fp: output file (C++: FILE *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - write error | | ev_gen_regvar_def(self, *args) -> 'int' + | Generate register variable definition line. + | | ev_gen_regvar_def(self, outctx, v) -> int + | @param outctx (C++: outctx_t *) + | @param v (C++: regvar_t *) + | @retval: >0 - ok, generated the definition text + | @retval: 0 - not implemented | | ev_gen_src_file_lnnum(self, *args) -> 'int' + | Callback: generate analog of: + | + | < #line "file.c" 123 + | < + | + | directive. + | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | @param outctx: output context (C++: outctx_t *) + | @param file: source file (may be NULL) (C++: const char *) + | @param lnnum: line number (C++: size_t) + | @retval: 1 - directive has been generated + | @retval: 0 - not implemented | | ev_gen_stkvar_def(self, *args) -> 'int' + | Generate stack variable definition line Default line is varname = type + | ptr value, where 'type' is one of byte,word,dword,qword,tbyte + | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | @param outctx (C++: outctx_t *) + | @param mptr (C++: const member_t *) + | @param v (C++: sval_t) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_get_abi_info(self, *args) -> 'int' + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and + | underscore + | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | @param abi_names: - all possible ABis each in form abiname- + | opt1-opt2-... (C++: qstrvec_t *) + | @param abi_opts: - array of all possible options in form + | "opt:description" or opt:hint-line#description (C++: + | qstrvec_t *) + | @param comp: - compiler ID (C++: comp_t) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_get_autocmt(self, *args) -> 'PyObject *' + | Callback: get dynamic auto comment. Will be called if the autocomments + | are enabled and the comment retrieved from ida.int starts with '$!'. + | 'insn' contains valid info. + | | ev_get_autocmt(self, insn) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @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' + | Get item background color. Plugins can hook this callback to color + | disassembly lines dynamically + | | ev_get_bg_color(self, ea) -> int or None + | @param color: , out (C++: bgcolor_t *) + | @param ea (C++: ea_t) + | @retval: 0 - not implemented + | @retval: 1 - color set | | ev_get_cc_regs(self, *args) -> 'int' + | Get register allocation convention for given calling convention + | | ev_get_cc_regs(self, regs, cc) -> int + | @param regs: , out (C++: callregs_t *) + | @param cc (C++: cm_t) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_get_code16_mode(self, *args) -> 'int' + | Get ISA 16-bit mode + | | ev_get_code16_mode(self, ea) -> int + | @param ea: address to get the ISA mode (C++: ea_t) + | @retval: 1 - 16-bit mode + | @retval: 0 - not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' + | Get the number of the operand to be displayed in the debugger + | reference view (text mode). + | | ev_get_dbr_opnum(self, opnum, insn) -> int + | @param opnum: operand number (out, -1 means no such operand) (C++: + | int *) + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | ev_get_default_enum_size(self, cm) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is + | used instead | | ev_get_frame_retsize(self, *args) -> 'int' + | Get size of function return address in bytes If this event is not + | implemented, the kernel will assume8 bytes for 64-bit function4 bytes + | for 32-bit function2 bytes otherwise + | | ev_get_frame_retsize(self, frsize, pfn) -> int + | @param frsize: frame size (out) (C++: int *) + | @param pfn: , can't be NULL (C++: const func_t *) | | ev_get_macro_insn_head(self, *args) -> 'int' + | Calculate the start of a macro instruction. This notification is + | called if IP points to the middle of an instruction + | | ev_get_macro_insn_head(self, head, ip) -> int + | @param head: , out: answer, BADADDR means normal instruction (C++: + | ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_operand_string(self, *args) -> 'PyObject *' + | Request text string for operand (cli, java, ...). + | | ev_get_operand_string(self, insn, opnum) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @param opnum: operand number, -1 means any string operand (C++: int) + | @retval: 0 - no string (or empty string) + | @retval: >0 - original string length without terminating zero + | + | ev_get_procmod(self, *args) -> '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' + | Get info about the registers that are used/changed by an instruction. + | + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | @param accvec: out: info about accessed registers (C++: + | reg_accesses_t*) + | @param insn: instruction in question (C++: const insn_t *) + | @param flags: reserved, must be 0 (C++: int) + | @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' + | 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 + | \ph{reg_names} and they all have the same size + | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | @param main_regname: , out (C++: const char **) + | @param bitrange: , out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | (C++: bitrange_t *) + | @param regname (C++: const char *) + | @retval: 1 - ok + | @retval: -1 - failed (not found) + | @retval: 0 - unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' + | Generate text representation of a register. Most processor modules do + | not need to implement this callback. It is useful only if + | \ph{reg_names}[reg] does not provide the correct register name. + | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | @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 not -1 then this function will return the register + | pair (C++: int) + | @retval: -1 - if error + | @retval: strlen(buf) - if success | | ev_get_simd_types(self, *args) -> 'int' + | Get SIMD-related types according to given attributes ant/or argument + | location + | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | @param out (C++: simd_info_vec_t *) + | @param simd_attrs: , may be NULL (C++: const simd_info_t *) + | @param argloc: , may be NULL (C++: const argloc_t *) + | @param create_tifs: return valid tinfo_t objects, create if neccessary + | (C++: bool) + | @retval: number - of found types + | @retval: -1 - error If name==NULL, initialize all SIMD types | | ev_get_stkarg_offset(self, *args) -> 'int' - | ev_get_stkarg_offset(self) -> int + | Get offset from SP to the first stack argument. For example: pc: 0, + | hppa: -0x34, ppc: 0x38 | | 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 + | 'PR_SCALE_STKVARS' should be set to use this callback | | ev_getreg(self, *args) -> 'int' + | IBM PC only internal request, should never be used for other purpose + | Get register value by internal index + | | ev_getreg(self, regval, regnum) -> int + | @param regval: , out (C++: uval_t *) + | @param regnum (C++: int) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' + | The IDP module is just loaded. + | | ev_init(self, idp_modname) -> int + | @param idp_modname: processor module name (C++: const char *) + | @retval: <0 - on failure | | ev_insn_reads_tbit(self, *args) -> 'int' + | Check if insn will read the TF bit. + | | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @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' + | Is the instruction created only for alignment purposes?. Do not + | directly call this function, use 'is_align_insn()' + | | ev_is_align_insn(self, ea) -> int + | @param ea: - instruction address (C++: ea_t) + | @retval: number - of bytes in the instruction | | ev_is_alloca_probe(self, *args) -> 'int' + | Does the function at 'ea' behave as __alloca_probe? + | | ev_is_alloca_probe(self, ea) -> int + | @param ea (C++: ea_t) + | @retval: 1 - yes + | @retval: 0 - no | | ev_is_basic_block_end(self, *args) -> 'int' + | Is the current instruction end of a basic block?. This function should + | be defined for processors with delayed jump slots. + | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param call_insn_stops_block (C++: 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 + | ev_is_call_insn(self, insn) -> int + | @param insn: instruction (C++: const insn_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_cond_insn(self, *args) -> 'int' + | Is conditional instruction? + | | ev_is_cond_insn(self, insn) -> int + | @param insn: instruction address (C++: const insn_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented or not instruction | | ev_is_far_jump(self, *args) -> 'int' + | is indirect far jump or call instruction? meaningful only if the + | processor has 'near' and 'far' reference types + | | ev_is_far_jump(self, icode) -> int + | @param icode (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - yes + | @retval: -1 - no | | ev_is_indirect_jump(self, *args) -> 'int' + | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot + | describe all jump types jumps, please define this callback. + | | ev_is_indirect_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - use CF_JUMP + | @retval: 1 - no + | @retval: 2 - yes | | ev_is_insn_table_jump(self, *args) -> 'int' + | Determine if instruction is a table jump or call. If 'CF_JUMP' bit + | cannot describe all kinds of table jumps, please define this callback. + | It will be called for insns with 'CF_JUMP' bit set. + | | ev_is_insn_table_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - yes + | @retval: <0 - no | | ev_is_jump_func(self, *args) -> 'int' + | Is the function a trivial "jump" function?. + | | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | @param pfn (C++: func_t *) + | @param jump_target (C++: ea_t *) + | @param func_pointer (C++: 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 + | ev_is_ret_insn(self, insn, strict) -> int + | @param insn: instruction (C++: const insn_t *) + | @param strict: 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog (C++: + | bool) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_sane_insn(self, *args) -> 'int' + | Is the instruction sane for the current file type?. + | | 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 + | @param insn: the instruction (C++: const insn_t*) + | @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. + | (C++: int) + | @retval: >=0 - ok + | @retval: <0 - no, the instruction isn't likely to appear in the + | program | | ev_is_sp_based(self, *args) -> '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. + | | ev_is_sp_based(self, mode, insn, op) -> int + | @param mode: out, combination of SP/FP operand flags (C++: int *) + | @param insn (C++: const insn_t *) + | @param op (C++: const op_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_is_switch(self, *args) -> 'int' + | Find 'switch' idiom. It will be called for instructions marked with + | 'CF_JUMP' . + | | ev_is_switch(self, si, insn) -> int + | @param si: , out (C++: switch_info_t *) + | @param insn: instruction possibly belonging to a switch (C++: const + | insn_t *) + | @retval: 1 - switch is found, 'si' is filled + | @retval: 0 - no switch found or 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' + | 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. + | | ev_lower_func_type(self, argnums, fti) -> int + | @param argnums: , out - numbers of arguments to be converted to + | pointers in acsending order (C++: intvec_t *) + | @param fti: , inout func type details (special values -1/-2 for return + | value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) (C++: func_type_data_t *) + | @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. | | 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) + | ev_may_be_func(self, insn, state) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param state: autoanalysis phase 0: creating functions 1: creating + | chunks (C++: int) + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) -> 'int' + | The kernel wants to display the segment registers in the messages + | window. + | | ev_may_show_sreg(self, current_ea) -> int + | @param current_ea (C++: 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' + | May the kernel move the segment? + | | ev_moving_segm(self, seg, to, flags) -> int + | @param seg: segment to move (C++: segment_t *) + | @param to: new segment start address (C++: ea_t) + | @param flags: combination of Move segment flags (C++: int) + | @retval: 0 - yes + | @retval: <0 - the kernel should stop | | ev_newasm(self, *args) -> 'int' + | Before setting a new assembler. + | | ev_newasm(self, asmnum) -> int + | @param asmnum: See also ev_asm_installed (C++: int) | | ev_newbinary(self, *args) -> 'int' + | IDA is about to load a binary file. + | | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | @param filename: binary file name (C++: char *) + | @param fileoff: offset in the file (C++: qoff64_t) + | @param basepara: base loading paragraph (C++: ea_t) + | @param binoff: loader offset (C++: ea_t) + | @param nbytes: number of bytes to load (C++: uint64) | | ev_newfile(self, *args) -> 'int' + | A new file has been loaded. + | | ev_newfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_newprc(self, *args) -> 'int' + | Before changing processor type. + | | ev_newprc(self, pnum, keep_cfg) -> int + | @param pnum: processor number in the array of processor names (C++: + | int) + | @param keep_cfg: true: do not modify kernel configuration (C++: bool) + | @retval: 1 - ok + | @retval: <0 - prohibit | | ev_next_exec_insn(self, *args) -> '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. + | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | @param target: , out: pointer to the answer (C++: ea_t *) + | @param ea: instruction address (C++: ea_t) + | @param tid: current therad id (C++: int) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_oldfile(self, *args) -> 'int' + | An old file has been loaded. + | | ev_oldfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_out_assumes(self, *args) -> 'int' + | Function to produce assume directives when segment register value + | changes. + | | ev_out_assumes(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_data(self, *args) -> 'int' + | Generate text representation of data items This function may change + | the database and create cross-references if analyze_only is set + | | ev_out_data(self, outctx, analyze_only) -> int + | @param outctx (C++: outctx_t *) + | @param analyze_only (C++: 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' + | Function to produce end of disassembled text + | + | ev_out_footer(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | - | ev_out_header(self, *args) -> 'void' - | ev_out_header(self, outctx) + | ev_out_header(self, *args) -> 'int' + | Function to produce start of disassembled text + | + | ev_out_header(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_insn(self, *args) -> '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. + | | ev_out_insn(self, outctx) -> bool - | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_label(self, *args) -> 'int' + | The kernel is going to generate an instruction label line or a + | function header. + | | ev_out_label(self, outctx, colored_name) -> int + | @param outctx (C++: outctx_t *) + | @param colored_name (C++: const char *) + | @retval: <0 - if the kernel should not generate the label + | @retval: 0 - not implemented or continue | | ev_out_mnem(self, *args) -> 'int' + | Generate instruction mnemonics. This callback should append the + | colored mnemonics to ctx.outbuf Optional notification, if absent, + | out_mnem will be called. + | | ev_out_mnem(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - if appended the mnemonics + | @retval: 0 - not implemented | | ev_out_operand(self, *args) -> '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. + | | 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) + | @param outctx (C++: outctx_t *) + | @param op (C++: const op_t *) + | @retval: 1 - ok + | @retval: -1 - operand is hidden | | ev_out_segend(self, *args) -> 'int' + | Function to produce end of segment + | | ev_out_segend(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_segstart(self, *args) -> 'int' + | Function to produce start of segment + | | ev_out_segstart(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_special_item(self, *args) -> 'int' + | Generate text representation of an item in a special segment i.e. + | absolute symbols, externs, communal definitions etc + | | ev_out_special_item(self, outctx, segtype) -> int + | @param outctx (C++: outctx_t *) + | @param segtype (C++: uchar) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - overflow | | ev_realcvt(self, *args) -> 'int' + | Floating point -> IEEE conversion + | | ev_realcvt(self, m, e, swt) -> int + | @param m: pointer to data (C++: void *) + | @param e: internal IEEE format data (C++: uint16 *) + | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) + | @retval: 0 - not implemented + | @retval: 1 - ok | | 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 + | ev_rename(self, ea, new_name) -> int + | @param ea (C++: ea_t) + | @param new_name (C++: 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 + | \idpcode{renamed} the return value is ignored when kernel + | is going to delete name | | ev_replaying_undo(self, *args) -> 'int' + | Replaying an undo/redo buffer + | | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | @param action_name: action that we perform undo/redo for. may be NULL + | for intermediary buffers. (C++: const char *) + | @param vec (C++: const undo_records_t *) + | @param is_undo: true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | (C++: bool) | | ev_set_code16_mode(self, *args) -> 'int' + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, + | MIPS16 Set ISA 16-bit mode + | | ev_set_code16_mode(self, ea, code16) -> int + | @param ea: address to set new ISA mode (C++: ea_t) + | @param code16: true for 16-bit mode, false for 32-bit mode (C++: + | bool) | | ev_set_idp_options(self, *args) -> 'int' - | ev_set_idp_options(self, keyword, value_type, value, errbuf, idb_loaded) -> int + | Set IDP-specific configuration option Also see set_options_t in + | 'config.hpp' + | + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | @param keyword (C++: const char *) + | @param value_type (C++: int) + | @param value (C++: const void *) + | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been + | generated (C++: bool) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - error (and message in errbuf) | | ev_set_proc_options(self, *args) -> '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(). + | | ev_set_proc_options(self, options, confidence) -> int + | @param options (C++: const char *) + | @param confidence: 0: loader's suggestion 1: user's decision (C++: + | int) + | @retval: <0 - if bad option string | - | ev_setup_til(self, *args) -> 'void' - | ev_setup_til(self) + | ev_setup_til(self, *args) -> '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. | | ev_shadow_args_size(self, *args) -> 'int' + | Get size of shadow args in bytes. + | | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | @param shadow_args_size (C++: int *) + | @param pfn: (may be NULL) (C++: func_t *) + | @retval: 1 - if filled *shadow_args_size + | @retval: 0 - not implemented | | ev_str2reg(self, *args) -> 'int' + | Convert a register name to a register number. The register number is + | the register index in the \ph{reg_names} array Most processor modules + | do not need to implement this callback It is useful only if + | \ph{reg_names}[reg] does not provide the correct register names + | | ev_str2reg(self, regname) -> int + | @param regname (C++: 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' + | An item hinders creation of another item. + | | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | @param hindering_item_ea (C++: ea_t) + | @param new_item_flags: (0 for code) (C++: flags_t) + | @param new_item_ea (C++: ea_t) + | @param new_item_length (C++: asize_t) + | @retval: 0 - no reaction + | @retval: !=0 - the kernel may delete the hindering item | | ev_undefine(self, *args) -> 'int' + | An item in the database (insn or data) is being deleted. + | | 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 + | @param ea (C++: ea_t) + | @retval: 1 - do not delete srranges at the item end + | @retval: 0 - srranges can be deleted | | ev_use_arg_types(self, *args) -> 'int' + | Use information about callee arguments. + | | ev_use_arg_types(self, ea, fti, rargs) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @param fti: info about function type (C++: func_type_data_t *) + | @param rargs: array of register arguments (C++: funcargvec_t *) + | @retval: 1 - (and removes handled arguments from fti and rargs) + | @retval: 0 - not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' + | Use information about register argument. + | | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | @param ea: address of the instruction (C++: ea_t) + | @param rargs: vector of register arguments (including regs extracted + | from scattered arguments) (C++: const funcargvec_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_use_stkarg_type(self, *args) -> 'int' + | Use information about a stack argument. + | | ev_use_stkarg_type(self, ea, arg) -> int + | @param ea: address of the push instruction which pushes the function + | argument into the stack (C++: ea_t) + | @param arg: argument info (C++: const funcarg_t *) + | @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' + | 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. + | | ev_validate_flirt_func(self, start_ea, funcname) -> int + | @param start_ea (C++: ea_t) + | @param funcname (C++: const char *) + | @retval: -1 - do not create a function, + | @retval: 0 - function is validated | | ev_verify_noreturn(self, *args) -> 'int' + | The kernel wants to set 'noreturn' flags for a function. + | | ev_verify_noreturn(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 0 - ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, *args) -> 'int' + | All function instructions have been analyzed. Now the processor module + | can analyze the stack pointer for the whole function + | | ev_verify_sp(self, pfn) -> int + | @param pfn (C++: 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 +47997,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) @@ -41464,6 +48058,7 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | | __init__(self, proc) | __init__(self, _flags=0) -> IDB_Hooks + | _flags: uint32 | | _processor_t_Trampoline_IDB_Hooks__dummy = __dummy(self, *args) | @@ -41479,296 +48074,725 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | __swig_destroy__ = delete_IDB_Hooks(...) | delete_IDB_Hooks(self) | + | adding_segm(self, *args) -> 'void' + | A segment is being created. + | + | adding_segm(self, s) + | @param s (C++: segment_t *) + | | allsegs_moved(self, *args) -> 'void' + | Program rebasing is complete. This event is generated after series of + | segm_moved events + | | allsegs_moved(self, info) + | @param info (C++: segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' - | auto_empty(self) + | Info: all analysis queues are empty. This callback is called once when + | the initial analysis is finished. If the queue is not empty upon the + | return from this callback, it will be called later again. | | auto_empty_finally(self, *args) -> 'void' - | auto_empty_finally(self) + | Info: all analysis queues are empty definitively. This callback is + | called only once. | | bookmark_changed(self, *args) -> 'void' + | Boomarked position changed. + | | bookmark_changed(self, index, pos, desc) + | @param index (C++: uint32) + | @param pos (C++: const lochist_entry_t *) + | @param desc: if desc==NULL, then the bookmark was deleted. (C++: + | const char *) | | byte_patched(self, *args) -> 'void' + | A byte has been patched. + | | byte_patched(self, ea, old_value) + | @param ea (C++: ea_t) + | @param old_value (C++: uint32) | | callee_addr_changed(self, *args) -> 'void' + | Callee address has been updated by the user. + | | callee_addr_changed(self, ea, callee) + | @param ea (C++: ea_t) + | @param callee (C++: ea_t) | | changing_cmt(self, *args) -> 'void' + | An item comment is to be changed. + | | changing_cmt(self, ea, repeatable_cmt, newcmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) + | @param newcmt (C++: const char *) | | changing_enum_bf(self, *args) -> 'void' + | An enum type 'bitfield' attribute is to be changed. + | | changing_enum_bf(self, id, new_bf) + | @param id (C++: enum_t) + | @param new_bf (C++: bool) | | changing_enum_cmt(self, *args) -> 'void' + | An enum or member type comment is to be changed. + | | changing_enum_cmt(self, id, repeatable, newcmt) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_op_ti(self, *args) -> 'void' + | An operand typestring (c/c++ prototype) is to be changed. + | | changing_op_ti(self, ea, n, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | changing_op_type(self, *args) -> 'void' + | An operand type (offset, hex, etc...) is to be changed. + | | changing_op_type(self, ea, n, opinfo) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param opinfo: additional operand info (C++: const opinfo_t *) | | changing_range_cmt(self, *args) -> 'void' + | Range comment is to be changed. + | | changing_range_cmt(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | changing_segm_class(self, *args) -> 'void' + | Segment class is being changed. + | | changing_segm_class(self, s) + | @param s (C++: segment_t *) | | changing_segm_end(self, *args) -> 'void' + | Segment end address is to be changed. + | | changing_segm_end(self, s, new_end, segmod_flags) + | @param s (C++: segment_t *) + | @param new_end (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_segm_name(self, *args) -> 'void' + | Segment name is being changed. + | | changing_segm_name(self, s, oldname) + | @param s (C++: segment_t *) + | @param oldname (C++: const char *) | | changing_segm_start(self, *args) -> 'void' + | Segment start address is to be changed. + | | changing_segm_start(self, s, new_start, segmod_flags) + | @param s (C++: segment_t *) + | @param new_start (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_struc_align(self, *args) -> 'void' + | A structure type is being changed (the struct alignment). + | | changing_struc_align(self, sptr) + | @param sptr (C++: struc_t *) | | changing_struc_cmt(self, *args) -> 'void' + | A structure type comment is to be changed. + | | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | @param struc_id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_struc_member(self, *args) -> 'void' + | A structure member is to be changed. + | | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param flag (C++: flags_t) + | @param ti (C++: const opinfo_t *) + | @param nbytes (C++: asize_t) | | changing_ti(self, *args) -> 'void' + | An item typestring (c/c++ prototype) is to be changed. + | | changing_ti(self, ea, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | closebase(self, *args) -> 'void' - | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) -> 'void' + | An item comment has been changed. + | | cmt_changed(self, ea, repeatable_cmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) | | compiler_changed(self, *args) -> 'void' - | compiler_changed(self) + | The kernel has changed the compiler information. (\inf{cc} structure; + | 'get_abi_name' ) | | deleting_enum(self, *args) -> 'void' + | An enum type is to be deleted. + | | deleting_enum(self, id) + | @param id (C++: enum_t) | | deleting_enum_member(self, *args) -> 'void' + | An enum member is to be deleted. + | | deleting_enum_member(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | deleting_func(self, *args) -> 'void' + | The kernel is about to delete a function. + | | deleting_func(self, pfn) + | @param pfn (C++: func_t *) | | deleting_func_tail(self, *args) -> 'void' + | A function tail chunk is to be removed. + | | deleting_func_tail(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: const range_t *) | | deleting_segm(self, *args) -> 'void' + | A segment is to be deleted. + | | deleting_segm(self, start_ea) + | @param start_ea (C++: ea_t) | | deleting_struc(self, *args) -> 'void' + | A structure type is to be deleted. + | | deleting_struc(self, sptr) + | @param sptr (C++: struc_t *) | | deleting_struc_member(self, *args) -> 'void' + | A structure member is to be deleted. + | | deleting_struc_member(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | deleting_tryblks(self, *args) -> 'void' + | About to delete tryblk information in given range + | | deleting_tryblks(self, range) + | @param range (C++: const range_t *) | | destroyed_items(self, *args) -> 'void' + | Instructions/data have been destroyed in [ea1,ea2). + | | destroyed_items(self, ea1, ea2, will_disable_range) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) + | @param will_disable_range (C++: bool) | | determined_main(self, *args) -> 'void' + | The main() function has been determined. + | | determined_main(self, main) + | @param main: address of the main() function (C++: ea_t) + | + | dirtree_link(self, *args) -> 'void' + | Dirtree: an item has been linked/unlinked. + | + | dirtree_link(self, dt, path, link) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param link (C++: bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | Dirtree: a directory has been created. + | + | dirtree_mkdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_move(self, *args) -> 'void' + | Dirtree: a directory or item has been moved. + | + | dirtree_move(self, dt, _from, to) + | @param dt (C++: dirtree_t *) + | @param _from (C++: const char *) + | @param to (C++: const char *) + | + | dirtree_rank(self, *args) -> 'void' + | Dirtree: a directory or item rank has been changed. + | + | dirtree_rank(self, dt, path, rank) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param rank (C++: size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | Dirtree: a directory has been deleted. + | + | dirtree_rmdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | Dirtree: an inode became unavailable. + | + | dirtree_rminode(self, dt, inode) + | @param dt (C++: dirtree_t *) + | @param inode (C++: inode_t) | | dump_state(self, *args) -> 'qstring' | dump_state(self) -> qstring | | enum_bf_changed(self, *args) -> 'void' + | An enum type 'bitfield' attribute has been changed. + | | enum_bf_changed(self, id) + | @param id (C++: enum_t) | | enum_cmt_changed(self, *args) -> 'void' + | An enum or member type comment has been changed. + | | enum_cmt_changed(self, id, repeatable) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) | | enum_created(self, *args) -> 'void' + | An enum type has been created. + | | enum_created(self, id) + | @param id (C++: enum_t) | | enum_deleted(self, *args) -> 'void' + | An enum type has been deleted. + | | enum_deleted(self, id) + | @param id (C++: enum_t) | | enum_member_created(self, *args) -> 'void' + | An enum member has been created. + | | enum_member_created(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_member_deleted(self, *args) -> 'void' + | An enum member has been deleted. + | | enum_member_deleted(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_renamed(self, *args) -> 'void' + | An enum or member has been renamed. + | | enum_renamed(self, id) + | @param id (C++: tid_t) | | expanding_struc(self, *args) -> 'void' + | A structure type is to be expanded/shrunk. + | | expanding_struc(self, sptr, offset, delta) + | @param sptr (C++: struc_t *) + | @param offset (C++: ea_t) + | @param delta (C++: adiff_t) | | extlang_changed(self, *args) -> 'void' + | The list of extlangs or the default extlang was changed. + | | extlang_changed(self, kind, el, idx) + | @param kind: 0: extlang installed 1: extlang removed 2: default + | extlang changed (C++: int) + | @param el: pointer to the extlang affected (C++: extlang_t *) + | @param idx: extlang index (C++: int) | | extra_cmt_changed(self, *args) -> 'void' + | An extra comment has been changed. + | | extra_cmt_changed(self, ea, line_idx, cmt) + | @param ea (C++: ea_t) + | @param line_idx (C++: int) + | @param cmt (C++: const char *) | | flow_chart_created(self, *args) -> 'void' + | Gui has retrieved a function flow chart. Plugins may modify the flow + | chart in this callback. + | | flow_chart_created(self, fc) + | @param fc (C++: qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' + | The kernel has deleted a function frame. + | | frame_deleted(self, pfn) + | @param pfn (C++: func_t *) | | func_added(self, *args) -> 'void' + | The kernel has added a function. + | | func_added(self, pfn) + | @param pfn (C++: func_t *) + | + | func_deleted(self, *args) -> 'void' + | A function has been deleted. + | + | func_deleted(self, func_ea) + | @param func_ea (C++: ea_t) | | func_noret_changed(self, *args) -> 'void' + | 'FUNC_NORET' bit has been changed. + | | func_noret_changed(self, pfn) + | @param pfn (C++: func_t *) | | func_tail_appended(self, *args) -> 'void' + | A function tail chunk has been appended. + | | func_tail_appended(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: func_t *) | | func_tail_deleted(self, *args) -> 'void' + | A function tail chunk has been removed. + | | func_tail_deleted(self, pfn, tail_ea) + | @param pfn (C++: func_t *) + | @param tail_ea (C++: ea_t) | | func_updated(self, *args) -> 'void' + | The kernel has updated a function. + | | func_updated(self, pfn) + | @param pfn (C++: func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' + | FLIRT signature has been loaded for normal processing (not for + | recognition of startup sequences). + | | idasgn_loaded(self, short_sig_name) + | @param short_sig_name (C++: const char *) | | item_color_changed(self, *args) -> 'void' + | An item color has been changed. + | | item_color_changed(self, ea, color) + | @param ea (C++: ea_t) + | @param color: if color==DEFCOLOR, the the color is deleted. (C++: + | bgcolor_t) | | kernel_config_loaded(self, *args) -> 'void' - | kernel_config_loaded(self) + | This event is issued when ida.cfg is parsed. + | + | kernel_config_loaded(self, pass_number) + | @param pass_number (C++: int) | | loader_finished(self, *args) -> 'void' + | External file loader finished its work. Use this event to augment the + | existing loader functionality. + | | loader_finished(self, li, neflags, filetypename) + | @param li (C++: linput_t *) + | @param neflags: Load file flags (C++: uint16) + | @param filetypename (C++: const char *) | | local_types_changed(self, *args) -> 'void' - | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) -> 'void' + | An instruction is being created. + | | make_code(self, insn) + | @param insn (C++: const insn_t*) | | make_data(self, *args) -> 'void' + | A data item is being created. + | | make_data(self, ea, flags, tid, len) + | @param ea (C++: ea_t) + | @param flags (C++: flags_t) + | @param tid (C++: tid_t) + | @param len (C++: asize_t) | | op_ti_changed(self, *args) -> 'void' + | An operand typestring (c/c++ prototype) has been changed. + | | op_ti_changed(self, ea, n, type, fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | op_type_changed(self, *args) -> 'void' + | An operand type (offset, hex, etc...) has been set or deleted. + | | op_type_changed(self, ea, n) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) | | range_cmt_changed(self, *args) -> 'void' + | Range comment has been changed. + | | range_cmt_changed(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | renamed(self, *args) -> 'void' + | The kernel has renamed a byte. See also the \idpcode{rename} event + | | renamed(self, ea, new_name, local_name) + | @param ea (C++: ea_t) + | @param new_name (C++: const char *) + | @param local_name (C++: bool) | | renaming_enum(self, *args) -> 'void' + | An enum or enum member is to be renamed. + | | renaming_enum(self, id, is_enum, newname) + | @param id (C++: tid_t) + | @param is_enum (C++: bool) + | @param newname (C++: const char *) | | renaming_struc(self, *args) -> 'void' + | A structure type is to be renamed. + | | renaming_struc(self, id, oldname, newname) + | @param id (C++: tid_t) + | @param oldname (C++: const char *) + | @param newname (C++: const char *) | | renaming_struc_member(self, *args) -> 'void' + | A structure member is to be renamed. + | | renaming_struc_member(self, sptr, mptr, newname) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param newname (C++: const char *) | | savebase(self, *args) -> 'void' - | savebase(self) + | The database is being saved. | | segm_added(self, *args) -> 'void' + | A new segment has been created. + | | segm_added(self, s) + | @param s: See also adding_segm (C++: segment_t *) | | segm_attrs_updated(self, *args) -> 'void' + | Segment attributes has been changed. + | | segm_attrs_updated(self, s) + | @param s: This event is generated for secondary segment attributes + | (examples: color, permissions, etc) (C++: segment_t *) | | segm_class_changed(self, *args) -> 'void' + | Segment class has been changed. + | | segm_class_changed(self, s, sclass) + | @param s (C++: segment_t *) + | @param sclass (C++: const char *) | | segm_deleted(self, *args) -> 'void' + | A segment has been deleted. + | | segm_deleted(self, start_ea, end_ea) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) | | segm_end_changed(self, *args) -> 'void' + | Segment end address has been changed. + | | segm_end_changed(self, s, oldend) + | @param s (C++: segment_t *) + | @param oldend (C++: ea_t) | | segm_moved(self, *args) -> 'void' + | Segment has been moved. + | | segm_moved(self, _from, to, size, changed_netmap) + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param size (C++: asize_t) + | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) | | segm_name_changed(self, *args) -> 'void' + | Segment name has been changed. + | | segm_name_changed(self, s, name) + | @param s (C++: segment_t *) + | @param name (C++: const char *) | | segm_start_changed(self, *args) -> 'void' + | Segment start address has been changed. + | | segm_start_changed(self, s, oldstart) + | @param s (C++: segment_t *) + | @param oldstart (C++: ea_t) | | set_func_end(self, *args) -> 'void' + | Function chunk end address will be changed. + | | set_func_end(self, pfn, new_end) + | @param pfn (C++: func_t *) + | @param new_end (C++: ea_t) | | set_func_start(self, *args) -> 'void' + | Function chunk start address will be changed. + | | set_func_start(self, pfn, new_start) + | @param pfn (C++: func_t *) + | @param new_start (C++: ea_t) | | sgr_changed(self, *args) -> 'void' + | The kernel has changed a segment register value. + | | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) + | @param value (C++: sel_t) + | @param old_value (C++: sel_t) + | @param tag: Segment register range tags (C++: uchar) | | sgr_deleted(self, *args) -> 'void' + | The kernel has deleted a segment register value. + | | sgr_deleted(self, start_ea, end_ea, regnum) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) | | stkpnts_changed(self, *args) -> 'void' + | Stack change points have been modified. + | | stkpnts_changed(self, pfn) + | @param pfn (C++: func_t *) | | struc_align_changed(self, *args) -> 'void' + | A structure type has been changed (the struct alignment). + | | struc_align_changed(self, sptr) + | @param sptr (C++: struc_t *) | | struc_cmt_changed(self, *args) -> 'void' + | A structure type comment has been changed. + | | struc_cmt_changed(self, struc_id, repeatable_cmt) + | @param struc_id (C++: tid_t) + | @param repeatable_cmt (C++: bool) | | struc_created(self, *args) -> 'void' + | A new structure type has been created. + | | struc_created(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_deleted(self, *args) -> 'void' + | A structure type has been deleted. + | | struc_deleted(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_expanded(self, *args) -> 'void' + | A structure type has been expanded/shrank. + | | struc_expanded(self, sptr) + | @param sptr (C++: struc_t *) | | struc_member_changed(self, *args) -> 'void' + | A structure member has been changed. + | | struc_member_changed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_created(self, *args) -> 'void' + | A structure member has been created. + | | struc_member_created(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_deleted(self, *args) -> 'void' + | A structure member has been deleted. + | | struc_member_deleted(self, sptr, member_id, offset) + | @param sptr (C++: struc_t *) + | @param member_id (C++: tid_t) + | @param offset (C++: ea_t) | | struc_member_renamed(self, *args) -> 'void' + | A structure member has been renamed. + | | struc_member_renamed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_renamed(self, *args) -> 'void' + | A structure type has been renamed. + | | struc_renamed(self, sptr) + | @param sptr (C++: struc_t *) | | tail_owner_changed(self, *args) -> 'void' + | A tail chunk owner has been changed. + | | tail_owner_changed(self, tail, owner_func, old_owner) + | @param tail (C++: func_t *) + | @param owner_func (C++: ea_t) + | @param old_owner (C++: ea_t) | | thunk_func_created(self, *args) -> 'void' + | A thunk bit has been set for a function. + | | thunk_func_created(self, pfn) + | @param pfn (C++: func_t *) | | ti_changed(self, *args) -> 'void' + | An item typestring (c/c++ prototype) has been changed. + | | ti_changed(self, ea, type, fnames) + | @param ea (C++: ea_t) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | tryblks_updated(self, *args) -> 'void' + | Updated tryblk information + | | tryblks_updated(self, tbv) + | @param tbv (C++: const tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' + | About to update tryblk information + | | updating_tryblks(self, tbv) + | @param tbv (C++: const tryblks_t *) | | upgraded(self, *args) -> 'void' + | The database has been upgraded and the receiver can upgrade its info + | as well + | | upgraded(self, _from) + | @param _from: - old IDB version (C++: int) | | ---------------------------------------------------------------------- | Data descriptors inherited from IDB_Hooks: @@ -41966,8 +48990,6 @@ 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 @@ -41981,57 +49003,69 @@ 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 * + 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 * + compid: comp_t + 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 * + compid: comp_t + +Help on function clr_module_data in module ida_idp: + +clr_module_data(*args) -> 'void *' + Unregister pointer to database specific module data. + + clr_module_data(data_id) -> void * + @param data_id: an data_id that was assigned by set_module_data() + (C++: int) + @return: previously registered pointer for the current database. it + can be deallocated now. Multiple calls to this function with + the same id are forbidden. 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 *) + ea: ea_t * + bexec: bool * + 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) + gen_idb_event(code) + @param code (C++: 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 * + 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 * + 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 @@ -42041,147 +49075,132 @@ Help on function get_idp_notifier_addr in module ida_idp: get_idp_notifier_addr(*args) -> 'PyObject *' get_idp_notifier_addr(arg1) -> PyObject * + 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 * + hooks: IDP_Hooks * + +Help on function get_module_data in module ida_idp: + +get_module_data(*args) -> 'void *' + Get pointer to the database specific module data. + + get_module_data(data_id) -> void * + @param data_id: data id that was initialized by set_module_data() + (C++: int) + @return: previously registered pointer for the current database + +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 + regname: char const * + 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 \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 + get_reg_name(reg, width, reghi=-1) -> str + @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) -> '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) + has_cf_chg(feature, opnum) -> bool + @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) + has_cf_use(feature, opnum) -> bool + @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) + has_insn_feature(icode, bit) -> bool + @param icode (C++: int) + @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) + is_align_insn(ea) -> int + @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) + is_basic_block_end(insn, call_insn_stops_block) -> bool + @param insn - 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 &) + is_call_insn(insn) -> bool + @param insn - 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 &) + is_indirect_jump_insn(insn) -> bool + @param insn - 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) + is_ret_insn(insn, strict=True) -> bool + @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param strict (C++: bool) 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 *) - @return: success + parse_reg_name(ri, regname) -> bool + @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: @@ -42230,65 +49249,58 @@ 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) + 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 + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + 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 + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + 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 * - - Returns a list of tuples (instruction_name, instruction_feature) containing the instructions list as defined in he processor module @@ -42296,24 +49308,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 * - - Returns the operand information given an ea and operand number. @param ea: address @@ -42322,70 +49328,69 @@ 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 + accvec: reg_accesses_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + 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 * - - 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) + directive: char const * + priority: int + Help on class processor_t in module ida_idp: class processor_t(IDP_Hooks) @@ -42400,6 +49405,7 @@ class processor_t(IDP_Hooks) | | __init__(self) | __init__(self, _flags=0) -> IDP_Hooks + | _flags: uint32 | | _get_idb_notifier_addr(self) | @@ -42430,272 +49436,581 @@ class processor_t(IDP_Hooks) | determined_main(self, *args) | | ev_ana_insn(self, *args) + | 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. + | | 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. + | @param out (C++: insn_t *) + | @retval: 0 - if instruction can't be decoded. | | ev_assemble(self, *args) + | Assemble an instruction. (display a warning if an error is found). + | | 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 + | @param ea: linear address of instruction (C++: ea_t) + | @param cs: cs of instruction (C++: ea_t) + | @param ip: ip of instruction (C++: ea_t) + | @param use32: is 32bit segment? (C++: bool) + | @param line: line to assemble (C++: const char *) | | ev_auto_queue_empty(self, *args) - | ev_auto_queue_empty(self, type) + | One analysis queue is empty. + | + | ev_auto_queue_empty(self, type) -> int + | @param type (C++: atype_t) + | @retval: void - see also idb_event::auto_empty_finally | | ev_calc_step_over(self, target, ip) + | 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' . + | | ev_calc_step_over(self, target, ip) -> int + | @param target: pointer to the answer (C++: ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_can_have_type(self, *args) + | 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) + | | ev_can_have_type(self, op) -> int + | @param op (C++: const op_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_cmp_operands(self, *args) + | Compare instruction operands + | | ev_cmp_operands(self, op1, op2) -> int + | @param op1 (C++: const op_t*) + | @param op2 (C++: const op_t*) + | @retval: 1 - equal + | @retval: -1 - not equal + | @retval: 0 - not implemented | | ev_coagulate(self, *args) + | 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. + | | ev_coagulate(self, start_ea) -> int + | @param start_ea (C++: ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, from_ea, to_ea, may_define, _code_ea) + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. + | for thumb mode refs, we clear the last bit) + | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param may_define (C++: bool) + | @param code_ea (C++: ea_t *) + | @retval: <0 - cancel dref analysis + | @retval: 0 - not implemented or continue | | ev_create_func_frame(self, pfn) + | Create a function frame for a newly created function Set up frame + | size, its attributes etc + | | ev_create_func_frame(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_create_switch_xrefs(self, *args) + | Create xrefs for a custom jump table. + | | ev_create_switch_xrefs(self, jumpea, si) -> int + | @param jumpea: address of the jump insn (C++: ea_t) + | @param si: switch information (C++: const switch_info_t *) + | @return: must return 1 Must be implemented if module uses custom jump + | tables, | | ev_creating_segm(self, s) + | A new segment is about to be created. + | | ev_creating_segm(self, seg) -> int + | @param seg (C++: 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. + | 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_emu_insn(self, insn) -> bool + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: -1 - the kernel will delete the instruction | | ev_endbinary(self, *args) + | IDA has loaded a binary file. + | | ev_endbinary(self, ok) -> int + | @param ok: file loaded successfully? (C++: bool) | | ev_func_bounds(self, _possible_return_code, pfn, max_func_end_ea) - | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) + | 'find_func_bounds()' finished its work. The module may fine tune the + | function bounds + | + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | @param possible_return_code: , in/out (C++: int *) + | @param pfn (C++: func_t *) + | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) + | @retval: void - | | ev_gen_map_file(self, nlines, fp) + | Generate map file. If not implemented the kernel itself will create + | the map file. + | | ev_gen_map_file(self, nlines, fp) -> int + | @param nlines: number of lines in map file (-1 means write error) + | (C++: int *) + | @param fp: output file (C++: FILE *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - write error | | ev_gen_regvar_def(self, ctx, v) + | Generate register variable definition line. + | | ev_gen_regvar_def(self, outctx, v) -> int + | @param outctx (C++: outctx_t *) + | @param v (C++: regvar_t *) + | @retval: >0 - ok, generated the definition text + | @retval: 0 - not implemented | | ev_gen_src_file_lnnum(self, *args) + | Callback: generate analog of: + | + | < #line "file.c" 123 + | < + | + | directive. + | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | @param outctx: output context (C++: outctx_t *) + | @param file: source file (may be NULL) (C++: const char *) + | @param lnnum: line number (C++: size_t) + | @retval: 1 - directive has been generated + | @retval: 0 - not implemented | | ev_get_autocmt(self, *args) + | Callback: get dynamic auto comment. Will be called if the autocomments + | are enabled and the comment retrieved from ida.int starts with '$!'. + | 'insn' contains valid info. + | | ev_get_autocmt(self, insn) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @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) + | Get size of function return address in bytes If this event is not + | implemented, the kernel will assume8 bytes for 64-bit function4 bytes + | for 32-bit function2 bytes otherwise + | | ev_get_frame_retsize(self, frsize, pfn) -> int + | @param frsize: frame size (out) (C++: int *) + | @param pfn: , can't be NULL (C++: const func_t *) | | ev_get_operand_string(self, buf, insn, opnum) + | Request text string for operand (cli, java, ...). + | | ev_get_operand_string(self, insn, opnum) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @param opnum: operand number, -1 means any string operand (C++: int) + | @retval: 0 - no string (or empty string) + | @retval: >0 - original string length without terminating zero | | ev_is_align_insn(self, *args) + | Is the instruction created only for alignment purposes?. Do not + | directly call this function, use 'is_align_insn()' + | | ev_is_align_insn(self, ea) -> int + | @param ea: - instruction address (C++: ea_t) + | @retval: number - of bytes in the instruction | | ev_is_alloca_probe(self, *args) + | Does the function at 'ea' behave as __alloca_probe? + | | ev_is_alloca_probe(self, ea) -> int + | @param ea (C++: ea_t) + | @retval: 1 - yes + | @retval: 0 - no | | ev_is_basic_block_end(self, *args) + | Is the current instruction end of a basic block?. This function should + | be defined for processors with delayed jump slots. + | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param call_insn_stops_block (C++: 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 + | ev_is_call_insn(self, insn) -> int + | @param insn: instruction (C++: const insn_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_far_jump(self, *args) + | is indirect far jump or call instruction? meaningful only if the + | processor has 'near' and 'far' reference types + | | ev_is_far_jump(self, icode) -> int + | @param icode (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - yes + | @retval: -1 - no | | ev_is_indirect_jump(self, *args) + | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot + | describe all jump types jumps, please define this callback. + | | ev_is_indirect_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - use CF_JUMP + | @retval: 1 - no + | @retval: 2 - yes | | ev_is_insn_table_jump(self, *args) + | Determine if instruction is a table jump or call. If 'CF_JUMP' bit + | cannot describe all kinds of table jumps, please define this callback. + | It will be called for insns with 'CF_JUMP' bit set. + | | ev_is_insn_table_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - yes + | @retval: <0 - no | | 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_ret_insn(self, insn, strict) -> int + | @param insn: instruction (C++: const insn_t *) + | @param strict: 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog (C++: + | bool) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_sane_insn(self, *args) + | Is the instruction sane for the current file type?. + | | 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 + | @param insn: the instruction (C++: const insn_t*) + | @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. + | (C++: int) + | @retval: >=0 - ok + | @retval: <0 - no, the instruction isn't likely to appear in the + | program | | ev_is_sp_based(self, mode, insn, op) + | 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. + | | ev_is_sp_based(self, mode, insn, op) -> int + | @param mode: out, combination of SP/FP operand flags (C++: int *) + | @param insn (C++: const insn_t *) + | @param op (C++: const op_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_is_switch(self, *args) + | Find 'switch' idiom. It will be called for instructions marked with + | 'CF_JUMP' . + | | ev_is_switch(self, si, insn) -> int + | @param si: , out (C++: switch_info_t *) + | @param insn: instruction possibly belonging to a switch (C++: const + | insn_t *) + | @retval: 1 - switch is found, 'si' is filled + | @retval: 0 - no switch found or 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) + | ev_may_be_func(self, insn, state) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param state: autoanalysis phase 0: creating functions 1: creating + | chunks (C++: int) + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) + | The kernel wants to display the segment registers in the messages + | window. + | | ev_may_show_sreg(self, current_ea) -> int + | @param current_ea (C++: 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) + | May the kernel move the segment? + | | ev_moving_segm(self, seg, to, flags) -> int + | @param seg: segment to move (C++: segment_t *) + | @param to: new segment start address (C++: ea_t) + | @param flags: combination of Move segment flags (C++: int) + | @retval: 0 - yes + | @retval: <0 - the kernel should stop | | ev_newbinary(self, *args) + | IDA is about to load a binary file. + | | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | @param filename: binary file name (C++: char *) + | @param fileoff: offset in the file (C++: qoff64_t) + | @param basepara: base loading paragraph (C++: ea_t) + | @param binoff: loader offset (C++: ea_t) + | @param nbytes: number of bytes to load (C++: uint64) | | ev_newfile(self, *args) + | A new file has been loaded. + | | ev_newfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_newprc(self, *args) + | Before changing processor type. + | | ev_newprc(self, pnum, keep_cfg) -> int + | @param pnum: processor number in the array of processor names (C++: + | int) + | @param keep_cfg: true: do not modify kernel configuration (C++: bool) + | @retval: 1 - ok + | @retval: <0 - prohibit | | ev_oldfile(self, *args) + | An old file has been loaded. + | | ev_oldfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_out_assumes(self, *args) + | Function to produce assume directives when segment register value + | changes. + | | ev_out_assumes(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_data(self, *args) + | Generate text representation of data items This function may change + | the database and create cross-references if analyze_only is set + | | ev_out_data(self, outctx, analyze_only) -> int + | @param outctx (C++: outctx_t *) + | @param analyze_only (C++: bool) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_footer(self, *args) - | ev_out_footer(self, outctx) + | Function to produce end of disassembled text + | + | ev_out_footer(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_header(self, *args) - | ev_out_header(self, outctx) + | Function to produce start of disassembled text + | + | ev_out_header(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_insn(self, *args) + | 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. + | | ev_out_insn(self, outctx) -> bool - | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_label(self, *args) + | The kernel is going to generate an instruction label line or a + | function header. + | | ev_out_label(self, outctx, colored_name) -> int + | @param outctx (C++: outctx_t *) + | @param colored_name (C++: const char *) + | @retval: <0 - if the kernel should not generate the label + | @retval: 0 - not implemented or continue | | ev_out_mnem(self, *args) + | Generate instruction mnemonics. This callback should append the + | colored mnemonics to ctx.outbuf Optional notification, if absent, + | out_mnem will be called. + | | ev_out_mnem(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - if appended the mnemonics + | @retval: 0 - not implemented | | ev_out_operand(self, *args) + | 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. + | | 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) + | @param outctx (C++: outctx_t *) + | @param op (C++: const op_t *) + | @retval: 1 - ok + | @retval: -1 - operand is hidden | | ev_out_segend(self, ctx, s) + | Function to produce end of segment + | | ev_out_segend(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_segstart(self, ctx, s) + | Function to produce start of segment + | | ev_out_segstart(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_special_item(self, *args) + | Generate text representation of an item in a special segment i.e. + | absolute symbols, externs, communal definitions etc + | | ev_out_special_item(self, outctx, segtype) -> int + | @param outctx (C++: outctx_t *) + | @param segtype (C++: 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 + | ev_rename(self, ea, new_name) -> int + | @param ea (C++: ea_t) + | @param new_name (C++: 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 + | \idpcode{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) + | Set IDP-specific configuration option Also see set_options_t in + | 'config.hpp' + | + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | @param keyword (C++: const char *) + | @param value_type (C++: int) + | @param value (C++: const void *) + | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been + | generated (C++: bool) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - error (and message in errbuf) | | ev_set_proc_options(self, *args) + | 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(). + | | ev_set_proc_options(self, options, confidence) -> int + | @param options (C++: const char *) + | @param confidence: 0: loader's suggestion 1: user's decision (C++: + | int) + | @retval: <0 - if bad option string | | ev_str2reg(self, *args) + | Convert a register name to a register number. The register number is + | the register index in the \ph{reg_names} array Most processor modules + | do not need to implement this callback It is useful only if + | \ph{reg_names}[reg] does not provide the correct register names + | | ev_str2reg(self, regname) -> int + | @param regname (C++: const char *) + | @retval: register - number + 1 + | @retval: 0 - not implemented or could not be decoded | | ev_treat_hindering_item(self, *args) + | An item hinders creation of another item. + | | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | @param hindering_item_ea (C++: ea_t) + | @param new_item_flags: (0 for code) (C++: flags_t) + | @param new_item_ea (C++: ea_t) + | @param new_item_length (C++: asize_t) + | @retval: 0 - no reaction + | @retval: !=0 - the kernel may delete the hindering item | | ev_undefine(self, *args) + | An item in the database (insn or data) is being deleted. + | | 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 + | @param ea (C++: ea_t) + | @retval: 1 - do not delete srranges at the item end + | @retval: 0 - srranges can be deleted | | ev_validate_flirt_func(self, *args) + | 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. + | | ev_validate_flirt_func(self, start_ea, funcname) -> int + | @param start_ea (C++: ea_t) + | @param funcname (C++: const char *) + | @retval: -1 - do not create a function, + | @retval: 0 - function is validated | | ev_verify_noreturn(self, pfn) + | The kernel wants to set 'noreturn' flags for a function. + | | ev_verify_noreturn(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 0 - ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, pfn) + | All function instructions have been analyzed. Now the processor module + | can analyze the stack pointer for the whole function + | | ev_verify_sp(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 0 - ok + | @retval: <0 - bad stack pointer | | func_added(self, pfn) | @@ -42749,205 +50064,667 @@ class processor_t(IDP_Hooks) | dump_state(self) -> qstring | | ev_add_cref(self, *args) -> 'int' + | A code reference is being created. + | | ev_add_cref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: cref_t) + | @retval: <0 - cancel cref creation + | @retval: 0 - not implemented or continue | | ev_add_dref(self, *args) -> 'int' + | A data reference is being created. + | | ev_add_dref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: dref_t) + | @retval: <0 - cancel dref creation + | @retval: 0 - not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' + | Adjust argloc according to its type/size and platform endianess + | | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | @param argloc: , inout (C++: argloc_t *) + | optional_type: tinfo_t const * + | @param size: 'size' makes no sense if type != NULL (type->get_size() + | should be used instead) (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_adjust_libfunc_ea(self, *args) -> '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.'ea' initially contains the ea_t of + | the start of the pattern match + | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | @param sig (C++: const idasgn_t *) + | @param libfun (C++: const libfunc_t *) + | @param ea (C++: ea_t *) + | @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' + | 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) + | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | @param ri (C++: refinfo_t *) + | @param ea: instruction address (C++: ea_t) + | @param n: operand number (C++: int) + | @param fd (C++: const fixup_data_t *) + | @retval: <0 - do not create an offset + | @retval: 0 - not implemented or refinfo adjusted | | ev_analyze_prolog(self, *args) -> 'int' + | Analyzes function prolog, epilog, and updates purge, and function + | attributes + | | ev_analyze_prolog(self, ea) -> int + | @param ea: start of function (C++: ea_t) + | @retval: 1 - ok + | @retval: 0 - not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | The loader is done parsing arch-related information, which the + | processor module might want to use to finish its initialization. | | ev_arg_addrs_ready(self, *args) -> 'int' + | Argument address info is ready. + | | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | @param caller (C++: ea_t) + | @param n: number of formal arguments (C++: int) + | @param tif: call prototype (C++: tinfo_t *) + | @param addrs: argument intilization addresses (C++: ea_t *) + | @retval: <0 - do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | After setting a new assembler + | + | ev_asm_installed(self, asmnum) -> int + | @param asmnum: See also ev_newasm (C++: int) | | ev_calc_arglocs(self, *args) -> 'int' + | Calculate function argument locations. This callback should fill + | retloc, all arglocs, and stkargs. This callback is never called for + | 'CM_CC_SPECIAL' functions. + | | ev_calc_arglocs(self, fti) -> int + | @param fti: points to the func type info (C++: func_type_data_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | Calculate number of purged bytes after call. + | | ev_calc_cdecl_purged_bytes(self, ea) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' + | Calculate list of addresses the instruction in 'insn' may pass control + | to. This callback is required for source level debugging. + | | ev_calc_next_eas(self, res, insn, over) -> int + | @param res: , out: array for the results. (C++: eavec_t *) + | @param insn: the instruction (C++: const insn_t*) + | @param over: calculate for step over (ignore call targets) (C++: + | bool) + | @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' + | Calculate number of purged bytes by the given function type. + | | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | @param p_purged_bytes: ptr to output (C++: int *) + | @param fti: func type details (C++: const func_type_data_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_calc_retloc(self, *args) -> 'int' + | Calculate return value location. + | | ev_calc_retloc(self, retloc, rettype, cc) -> int + | @param retloc (C++: argloc_t *) + | @param rettype (C++: const tinfo_t *) + | @param cc (C++: cm_t) + | @retval: 0 - not implemented + | @retval: 1 - ok, + | @retval: -1 - error | | ev_calc_spdelta(self, *args) -> 'int' + | Calculate amount of change to sp for the given insn. This event is + | required to decompile code snippets. + | | ev_calc_spdelta(self, spdelta, insn) -> int + | @param spdelta (C++: sval_t *) + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_calc_switch_cases(self, *args) -> 'int' + | Calculate case values and targets for a custom jump table. + | | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | @param casevec: vector of case values (may be NULL) (C++: casevec_t + | *) + | @param targets: corresponding target addresses (my be NULL) (C++: + | eavec_t *) + | @param insn_ea: address of the 'indirect jump' instruction (C++: + | ea_t) + | @param si: switch information (C++: switch_info_t *) + | @retval: 1 - ok + | @retval: <=0 - failed | | ev_calc_varglocs(self, *args) -> 'int' + | Calculate locations of the arguments that correspond to '...'. + | | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | @param ftd: , inout: info about all arguments (including varargs) + | (C++: func_type_data_t *) + | @param aux_regs: buffer for hidden register arguments, may be NULL + | (C++: regobjs_t *) + | @param aux_stkargs: buffer for hidden stack arguments, may be NULL + | (C++: relobj_t *) + | @param nfixed: number of fixed arguments (C++: int) + | @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' + | Clear the TF bit after an insn like pushf stored it in memory. + | | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | @param ea: instruction address (C++: ea_t) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 1 - ok + | @retval: 0 - failed | | ev_create_flat_group(self, *args) -> 'int' + | Create special segment representing the flat group. + | | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | @param image_base (C++: ea_t) + | @param bitness (C++: int) + | @param dataseg_sel: return value is ignored (C++: sel_t) | | ev_decorate_name(self, *args) -> 'PyObject *' + | Decorate/undecorate a C symbol name. + | | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | @param name: name of symbol (C++: const char *) + | @param mangle: true-mangle, false-unmangle (C++: bool) + | @param cc: calling convention (C++: cm_t) + | optional_type: tinfo_t const * + | @retval: 1 - if success + | @retval: 0 - not implemented or failed | | ev_del_cref(self, *args) -> 'int' + | A code reference is being deleted. + | | ev_del_cref(self, _from, to, expand) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param expand (C++: bool) + | @retval: <0 - cancel cref deletion + | @retval: 0 - not implemented or continue | | ev_del_dref(self, *args) -> 'int' + | A data reference is being deleted. + | | ev_del_dref(self, _from, to) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @retval: <0 - cancel dref deletion + | @retval: 0 - not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' + | Get delay slot instructionInput EA may point to the instruction with a + | delay slot or to the delay slot instruction itself. + | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | @param ea: 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) (C++: ea_t *) + | @param bexec: execute slot if jumping, initially set to 'true' (C++: + | bool *) + | @param fexec: execute slot if not jumping, initally set to 'true' + | (C++: bool *) + | @retval: 1 - positive answer + | @retval: <=0 - ordinary insn | | ev_demangle_name(self, *args) -> 'PyObject *' + | Demangle a C++ (or another language) name into a user-readable string. + | This event is called by 'demangle_name()' if you call + | 'demangle_name()' from the handler, protect against recursion! + | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | @param name: mangled name (C++: const char *) + | @param disable_mask: flags to inhibit parts of output or compiler + | info/other (see MNG_) (C++: uint32) + | @param demreq: operation to perform (C++: demreq_type_t) + | @retval: 1 - if success + | @retval: 0 - not implemented | | ev_ending_undo(self, *args) -> 'int' + | Ended undoing/redoing an action + | | ev_ending_undo(self, action_name, is_undo) -> int + | @param action_name: action that we finished undoing/redoing. is not + | NULL. (C++: const char *) + | @param is_undo: true if performing undo, false if performing redo + | (C++: bool) | | ev_equal_reglocs(self, *args) -> 'int' + | Are 2 register arglocs the same?. We need this callback for the pc + | module. + | | ev_equal_reglocs(self, a1, a2) -> int + | @param a1 (C++: argloc_t *) + | @param a2 (C++: argloc_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented | | ev_extract_address(self, *args) -> 'int' + | Extract address from a string. + | | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | @param out_ea: , out (C++: ea_t *) + | @param screen_ea (C++: ea_t) + | @param string (C++: const char *) + | @param position (C++: size_t) + | @retval: 1 - ok + | @retval: 0 - kernel should use the standard algorithm + | @retval: -1 - error | | ev_find_op_value(self, *args) -> 'PyObject *' + | Find operand value via a register tracker. The returned value in 'out' + | is valid before executing the instruction. + | | ev_find_op_value(self, pinsn, opn) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param opn: operand index (C++: int) + | @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 *' + | Find register value via a register tracker. The returned value in + | 'out' is valid before executing the instruction. + | | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param reg: register index (C++: int) + | @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' + | Callback: generating asm or lst file. The kernel calls this callback + | twice, at the beginning and at the end of listing generation. The + | processor module can intercept this event and adjust its output + | + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | @param starting: beginning listing generation (C++: bool) + | @param fp: output file (C++: FILE *) + | @param is_asm: true:assembler, false:listing (C++: bool) + | @param flags: flags passed to gen_file() (C++: int) + | @param outline: 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 (C++: html_line_cb_t + | **) + | @retval: void - | | ev_gen_stkvar_def(self, *args) -> 'int' + | Generate stack variable definition line Default line is varname = type + | ptr value, where 'type' is one of byte,word,dword,qword,tbyte + | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | @param outctx (C++: outctx_t *) + | @param mptr (C++: const member_t *) + | @param v (C++: sval_t) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_get_abi_info(self, *args) -> 'int' + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and + | underscore + | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | @param abi_names: - all possible ABis each in form abiname- + | opt1-opt2-... (C++: qstrvec_t *) + | @param abi_opts: - array of all possible options in form + | "opt:description" or opt:hint-line#description (C++: + | qstrvec_t *) + | @param comp: - compiler ID (C++: comp_t) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_get_bg_color(self, *args) -> 'int' + | Get item background color. Plugins can hook this callback to color + | disassembly lines dynamically + | | ev_get_bg_color(self, ea) -> int or None + | @param color: , out (C++: bgcolor_t *) + | @param ea (C++: ea_t) + | @retval: 0 - not implemented + | @retval: 1 - color set | | ev_get_cc_regs(self, *args) -> 'int' + | Get register allocation convention for given calling convention + | | ev_get_cc_regs(self, regs, cc) -> int + | @param regs: , out (C++: callregs_t *) + | @param cc (C++: cm_t) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_get_code16_mode(self, *args) -> 'int' + | Get ISA 16-bit mode + | | ev_get_code16_mode(self, ea) -> int + | @param ea: address to get the ISA mode (C++: ea_t) + | @retval: 1 - 16-bit mode + | @retval: 0 - not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' + | Get the number of the operand to be displayed in the debugger + | reference view (text mode). + | | ev_get_dbr_opnum(self, opnum, insn) -> int + | @param opnum: operand number (out, -1 means no such operand) (C++: + | int *) + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | ev_get_default_enum_size(self, cm) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is + | used instead | | ev_get_macro_insn_head(self, *args) -> 'int' + | Calculate the start of a macro instruction. This notification is + | called if IP points to the middle of an instruction + | | ev_get_macro_insn_head(self, head, ip) -> int + | @param head: , out: answer, BADADDR means normal instruction (C++: + | ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented + | + | ev_get_procmod(self, *args) -> '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' + | Get info about the registers that are used/changed by an instruction. + | + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | @param accvec: out: info about accessed registers (C++: + | reg_accesses_t*) + | @param insn: instruction in question (C++: const insn_t *) + | @param flags: reserved, must be 0 (C++: int) + | @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' + | 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 + | \ph{reg_names} and they all have the same size + | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | @param main_regname: , out (C++: const char **) + | @param bitrange: , out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | (C++: bitrange_t *) + | @param regname (C++: const char *) + | @retval: 1 - ok + | @retval: -1 - failed (not found) + | @retval: 0 - unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' + | Generate text representation of a register. Most processor modules do + | not need to implement this callback. It is useful only if + | \ph{reg_names}[reg] does not provide the correct register name. + | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | @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 not -1 then this function will return the register + | pair (C++: int) + | @retval: -1 - if error + | @retval: strlen(buf) - if success | | ev_get_simd_types(self, *args) -> 'int' + | Get SIMD-related types according to given attributes ant/or argument + | location + | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | @param out (C++: simd_info_vec_t *) + | @param simd_attrs: , may be NULL (C++: const simd_info_t *) + | @param argloc: , may be NULL (C++: const argloc_t *) + | @param create_tifs: return valid tinfo_t objects, create if neccessary + | (C++: bool) + | @retval: number - of found types + | @retval: -1 - error If name==NULL, initialize all SIMD types | | ev_get_stkarg_offset(self, *args) -> 'int' - | ev_get_stkarg_offset(self) -> int + | Get offset from SP to the first stack argument. For example: pc: 0, + | hppa: -0x34, ppc: 0x38 | | 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 + | 'PR_SCALE_STKVARS' should be set to use this callback | | ev_getreg(self, *args) -> 'int' + | IBM PC only internal request, should never be used for other purpose + | Get register value by internal index + | | ev_getreg(self, regval, regnum) -> int + | @param regval: , out (C++: uval_t *) + | @param regnum (C++: int) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' + | The IDP module is just loaded. + | | ev_init(self, idp_modname) -> int + | @param idp_modname: processor module name (C++: const char *) + | @retval: <0 - on failure | | ev_insn_reads_tbit(self, *args) -> 'int' + | Check if insn will read the TF bit. + | | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @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' + | Is conditional instruction? + | | ev_is_cond_insn(self, insn) -> int + | @param insn: instruction address (C++: const insn_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented or not instruction | | ev_is_jump_func(self, *args) -> 'int' + | Is the function a trivial "jump" function?. + | | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | @param pfn (C++: func_t *) + | @param jump_target (C++: ea_t *) + | @param func_pointer (C++: 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' + | 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. + | | ev_lower_func_type(self, argnums, fti) -> int + | @param argnums: , out - numbers of arguments to be converted to + | pointers in acsending order (C++: intvec_t *) + | @param fti: , inout func type details (special values -1/-2 for return + | value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) (C++: func_type_data_t *) + | @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. | | ev_newasm(self, *args) -> 'int' + | Before setting a new assembler. + | | ev_newasm(self, asmnum) -> int + | @param asmnum: See also ev_asm_installed (C++: int) | | ev_next_exec_insn(self, *args) -> '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. + | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | @param target: , out: pointer to the answer (C++: ea_t *) + | @param ea: instruction address (C++: ea_t) + | @param tid: current therad id (C++: int) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_realcvt(self, *args) -> 'int' + | Floating point -> IEEE conversion + | | ev_realcvt(self, m, e, swt) -> int + | @param m: pointer to data (C++: void *) + | @param e: internal IEEE format data (C++: uint16 *) + | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_replaying_undo(self, *args) -> 'int' + | Replaying an undo/redo buffer + | | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | @param action_name: action that we perform undo/redo for. may be NULL + | for intermediary buffers. (C++: const char *) + | @param vec (C++: const undo_records_t *) + | @param is_undo: true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | (C++: bool) | | ev_set_code16_mode(self, *args) -> 'int' + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, + | MIPS16 Set ISA 16-bit mode + | | ev_set_code16_mode(self, ea, code16) -> int + | @param ea: address to set new ISA mode (C++: ea_t) + | @param code16: true for 16-bit mode, false for 32-bit mode (C++: + | bool) | - | ev_setup_til(self, *args) -> 'void' - | ev_setup_til(self) + | ev_setup_til(self, *args) -> '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. | | ev_shadow_args_size(self, *args) -> 'int' + | Get size of shadow args in bytes. + | | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | @param shadow_args_size (C++: int *) + | @param pfn: (may be NULL) (C++: func_t *) + | @retval: 1 - if filled *shadow_args_size + | @retval: 0 - not implemented | | ev_term(self, *args) -> 'int' - | ev_term(self) -> int + | The IDP module is being unloaded. | | ev_use_arg_types(self, *args) -> 'int' + | Use information about callee arguments. + | | ev_use_arg_types(self, ea, fti, rargs) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @param fti: info about function type (C++: func_type_data_t *) + | @param rargs: array of register arguments (C++: funcargvec_t *) + | @retval: 1 - (and removes handled arguments from fti and rargs) + | @retval: 0 - not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' + | Use information about register argument. + | | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | @param ea: address of the instruction (C++: ea_t) + | @param rargs: vector of register arguments (including regs extracted + | from scattered arguments) (C++: const funcargvec_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_use_stkarg_type(self, *args) -> 'int' + | Use information about a stack argument. + | | ev_use_stkarg_type(self, ea, arg) -> int + | @param ea: address of the push instruction which pushes the function + | argument into the stack (C++: ea_t) + | @param arg: argument info (C++: const funcarg_t *) + | @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 +50738,396 @@ 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 + | r: reg_access_t const & + | + | __init__(self, *args) + | __init__(self) -> reg_access_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | 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 (C++: const reg_access_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | access_type + | reg_access_t_access_type_get(self) -> access_type_t + | + | opnum + | reg_access_t_opnum_get(self) -> uchar + | + | range + | reg_access_t_range_get(self) -> bitrange_t + | + | regnum + | reg_access_t_regnum_get(self) -> int + | + | 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 + | r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> reg_access_vec_t + | 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 + | r: qvector< reg_access_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | 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 + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | 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 + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | + | + | erase(self, first, last) -> reg_access_t + | first: qvector< reg_access_t >::iterator + | 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 + | x: reg_access_t const & + | + | + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: reg_access_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | x: reg_access_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_access_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 + | r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | 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 + | r: qvector< reg_access_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | v: reg_access_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | 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 + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | + | + | erase(self, first, last) -> reg_access_t + | first: qvector< reg_access_t >::iterator + | 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 + | x: reg_access_t const & + | + | + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: reg_access_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | x: reg_access_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_access_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 +51137,30 @@ class reg_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: reg_info_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: reg_info_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: reg_info_t const & | | __init__(self, *args) | __init__(self) -> reg_info_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: reg_info_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: reg_info_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: reg_info_t const & | | __repr__ = _swig_repr(self) | @@ -42996,6 +51169,7 @@ class reg_info_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: reg_info_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -43020,50 +51194,66 @@ 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 + opts: cfgopt_t const [] + nopts: size_t + cb: config_changed_cb_t * + obj: void * + +Help on function set_module_data in module ida_idp: + +set_module_data(*args) -> 'void *' + Starting from IDA v7.5 all modules should use the following 3 + functions to handle idb specific static data because now the kernel + supports opening and working with multiple idbs files simultaneously. + See the source code of the processor modules in the SDK for the usage + examples. Register pointer to database specific module data. + + set_module_data(data_id, data_ptr) -> void * + @param data_id: initially the pointed-to value must be 0, the kernel + will fill it with a unique id. once assigned, the + data_id does not change. (C++: int *) + @param data_ptr: pointer to the data to register (C++: void *) + @return: data_ptr. The registered pointer can later be retrieved using + get_module_data() + 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: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + set_processor_type(procname, level) -> bool + @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) -> 'bool' - set_target_assembler(asmnum) -> bool - - Set target assembler. - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success + set_target_assembler(asmnum) -> bool + @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) -> '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 *) + str2reg(p) -> int + @param p (C++: const char *) === ida_idp EPYDOC INJECTIONS === ida_idp.AS2_BRACE @@ -43445,6 +51635,19 @@ Custom instruction codes defined by processor extension plugins must be greater than or equal to this """ +ida_idp.HKCB_AUTODEL +""" +automatically delete event listener object after uninstalling it +""" + +ida_idp.HKCB_GLOBAL +""" +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. +""" + ida_idp.IDP_INTERFACE_VERSION """ The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' @@ -43980,7 +52183,7 @@ use \\ph{use_arg_types} callback ida_idp.PR_USE_TBYTE """ - 'BTMT_SPECFLT' means _TBYTE type +'BTMT_SPECFLT' means _TBYTE type """ ida_idp.PR_WORD_INS @@ -44087,6 +52290,10 @@ class Choose(builtins.object) | | CHCOL_DEC = 196608 | + | CHCOL_DEFHIDDEN = 1048576 + | + | CHCOL_DRAGHINT = 2097152 + | | CHCOL_EA = 262144 | | CHCOL_FNAME = 327680 @@ -44095,6 +52302,8 @@ class Choose(builtins.object) | | CHCOL_HEX = 131072 | + | CHCOL_INODENAME = 4194304 + | | CHCOL_PATH = 65536 | | CHCOL_PLAIN = 0 @@ -44135,6 +52344,8 @@ class Choose(builtins.object) | | CH_FORCE_DEFAULT = 128 | + | CH_HAS_DIRTREE = 33554432 + | | CH_MODAL = 1 | | CH_MULTI = 4 @@ -44276,6 +52487,7 @@ class CustomIDAMemo(View_Hooks) | | __init__(self) | __init__(self, _flags=0) -> View_Hooks + | _flags: uint32 | | _get_cb(self, view, cb_name) | @@ -44284,37 +52496,81 @@ class CustomIDAMemo(View_Hooks) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, view, ve) + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, view, *args) + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, view, *args) + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, view, ve) + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, view) + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, view, key, state) + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, view, now, was) + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, view, ve) + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, view, rt) + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -44341,7 +52597,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44687,6 +52946,7 @@ class IDAViewWrapper(CustomIDAMemo) | | __init__(self, title) | __init__(self, _flags=0) -> View_Hooks + | _flags: uint32 | | ---------------------------------------------------------------------- | Methods inherited from CustomIDAMemo: @@ -44784,37 +53044,81 @@ class IDAViewWrapper(CustomIDAMemo) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, view, ve) + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, view, *args) + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, view, *args) + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, view, ve) + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, view) + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, view, key, state) + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, view, now, was) + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, view, ve) + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, view, rt) + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from CustomIDAMemo: @@ -44841,7 +53145,10 @@ class IDAViewWrapper(CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44987,6 +53294,7 @@ Help on function TWidget__from_ptrval__ in module ida_kernwin: TWidget__from_ptrval__(*args) -> 'TWidget *' TWidget__from_ptrval__(ptrval) -> TWidget * + ptrval: size_t Help on class UI_Hooks in module ida_kernwin: @@ -44999,6 +53307,13 @@ class UI_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> UI_Hooks + | _flags: uint32 + | + | __real_database_closed = database_closed(self, *args) -> 'void' + | 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) | @@ -45006,174 +53321,242 @@ class UI_Hooks(builtins.object) | delete_UI_Hooks(self) | | create_desktop_widget(self, *args) -> 'PyObject *' + | create a widget, to be placed in the widget tree (at desktop- + | creation time.) + | | create_desktop_widget(self, title, cfg) -> PyObject * + | @param title (C++: const char *) + | @param cfg (C++: const jobj_t *) | | current_widget_changed(self, *args) -> 'void' + | The currently-active TWidget changed. + | | current_widget_changed(self, widget, prev_widget) + | @param widget (C++: TWidget *) + | @param prev_widget (C++: TWidget *) + | + | database_closed = __wrapper(self, *args) + | The database has been closed. See also processor_t::closebase, it + | occurs earlier. See also ui_initing_database. This is not the same as + | IDA exiting. If you need to perform cleanup at the exiting time, use + | 'qatexit()' . | | database_inited(self, *args) -> 'void' + | database initialization has completed. the kernel is about to run + | idc scripts + | | database_inited(self, is_new_database, idc_script) + | @param is_new_database (C++: int) + | @param idc_script: - may be NULL (C++: const char *) | | debugger_menu_change(self, *args) -> 'void' + | debugger menu modification detected + | | debugger_menu_change(self, enable) + | @param enable: true: debugger menu has been added, or a different + | debugger has been selected false: debugger menu will be + | removed (user switched to "No debugger") (C++: bool) + | + | destroying_plugmod(self, *args) -> 'void' + | The plugin object is about to be destroyed + | + | destroying_plugmod(self, plugmod) + | @param plugmod (C++: const plugmod_t *) + | + | destroying_procmod(self, *args) -> 'void' + | The processor module is about to be destroyed + | + | destroying_procmod(self, procmod) + | @param procmod (C++: const procmod_t *) | | dump_state(self, *args) -> 'qstring' | dump_state(self) -> qstring | | finish_populating_widget_popup(self, *args) -> 'void' + | IDA is about to be done populating the context menu for a widget. + | This is your chance to 'attach_action_to_popup()' . + | | finish_populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | 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 (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param ctx (C++: const action_activation_ctx_t *) | | get_chooser_item_attrs(self, *args) -> 'void' + | get item-specific attributes for a chooser. This callback is + | generated only after enable_chooser_attrs() + | | get_chooser_item_attrs(self, chooser, n, attrs) + | @param chooser (C++: const chooser_base_t *) + | @param n (C++: size_t) + | @param attrs (C++: chooser_item_attrs_t *) | | get_custom_viewer_hint(self, *args) -> 'PyObject *' + | ui wants to display a hint for a viewer (idaview or custom). If + | the REG_HINTS_MARKER sequence is found in the returned hints string, + | it will be replaced with the contents of the "regular" hints. If the + | SRCDBG_HINTS_MARKER sequence is found in the returned hints string, it + | will be replaced with the contents of the source-level debugger- + | generated hints. The following keywords might appear at the beginning + | of the returned hints: HIGHLIGHT textwhere text will be highlighted + | CAPTION captioncaption for the hint widget + | | get_custom_viewer_hint(self, viewer, place) -> PyObject * + | @param viewer: viewer (C++: TWidget*) + | @param place: current position in the viewer (C++: place_t *) | | get_ea_hint(self, *args) -> 'PyObject *' + | ui wants to display a simple hint for an address. Use this event + | to generate a custom hint See also more generic 'ui_get_item_hint' + | | get_ea_hint(self, ea) -> PyObject * - | - | - | 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 (C++: ea_t) | | get_item_hint(self, *args) -> 'PyObject *' + | ui wants to display multiline hint for an item. See also more + | generic 'ui_get_custom_viewer_hint' + | | get_item_hint(self, ea, max_lines) -> PyObject * + | @param ea: or item id like a structure or enum member (C++: ea_t) + | @param max_lines: maximal number of lines (C++: int) + | + | get_lines_rendering_info(self, *args) -> 'void' + | get lines rendering information + | + | get_lines_rendering_info(self, out, widget, info) + | @param out (C++: lines_rendering_output_t *) + | @param widget (C++: const TWidget *) + | @param info (C++: const lines_rendering_input_t *) | | get_widget_config(self, *args) -> 'PyObject *' + | retrieve the widget configuration (it will be passed back at + | ui_create_desktop_widget-, and ui_set_widget_config-time) + | | get_widget_config(self, widget, cfg) -> PyObject * + | @param widget (C++: const TWidget *) + | @param cfg (C++: 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' + | database initialization has started. | | plugin_loaded(self, *args) -> 'void' + | The plugin was loaded in memory. + | | plugin_loaded(self, plugin_info) + | @param plugin_info (C++: const plugin_info_t *) | | plugin_unloading(self, *args) -> 'void' + | The plugin is about to be unloaded + | | plugin_unloading(self, plugin_info) + | @param plugin_info (C++: const plugin_info_t *) | | populating_widget_popup(self, *args) -> 'void' + | IDA is populating the context menu for a widget. This is your + | chance to 'attach_action_to_popup()' .Have a look at + | ui_finish_populating_widget_popup, if you want to augment the context + | menu with your own actions after the menu has had a chance to be + | properly populated by the owning component or plugin (which typically + | does it on ui_populating_widget_popup.) + | | populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | 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 (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param ctx (C++: 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' + | 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 + | preprocess_action(self, name) -> int + | @param name: ui action name. these names can be looked up in + | ida[tg]ui.cfg (C++: const char *) + | @retval: 0 - ok + | @retval: nonzero - a plugin has handled the command | | range(self, *args) -> 'void' - | range(self) + | The disassembly range has been changed (\inf{min_ea} ... + | \inf{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) - | - | - | The kernel has saved the database. - | - | @return: Ignored + | The kernel has saved the database. This callback just informs the + | interface. | | 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' + | The "current address" changed + | | screen_ea_changed(self, ea, prev_ea) + | @param ea (C++: ea_t) + | @param prev_ea (C++: ea_t) | | set_widget_config(self, *args) -> 'void' + | set the widget configuration + | | set_widget_config(self, widget, cfg) + | @param widget (C++: const TWidget *) + | @param cfg (C++: 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' + | IDA is about to update all actions. If your plugin needs to + | perform expensive operations more than once (e.g., once per action it + | registers), you should do them only once, right away. + | | updating_actions(self, ctx) - | - | - | The UI is about to batch-update some actions. - | - | @param ctx: The action_update_ctx_t instance - | @return: Ignored + | @param ctx (C++: action_update_ctx_t *) | | widget_closing(self, *args) -> 'void' + | TWidget is about to close. This event precedes ui_widget_invisible. + | Use this to perform some possible actions relevant to the lifecycle of + | this widget + | | widget_closing(self, widget) + | @param widget (C++: TWidget *) | | widget_invisible(self, *args) -> 'void' + | TWidget is being closed. Use this event to destroy the window controls + | | widget_invisible(self, widget) + | @param widget (C++: TWidget *) | | widget_visible(self, *args) -> 'void' + | TWidget is displayed on the screen. Use this event to populate the + | window with controls + | | widget_visible(self, widget) + | @param widget (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45198,6 +53581,7 @@ class View_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> View_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -45214,40 +53598,87 @@ class View_Hooks(builtins.object) | unhook(self) -> bool | | view_activated(self, *args) -> 'void' + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, *args) -> 'void' + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, *args) -> 'void' + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_created(self, *args) -> 'void' + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, *args) -> 'void' + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, *args) -> 'void' + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, *args) -> 'void' + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, *args) -> 'void' + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, *args) -> 'void' + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, *args) -> 'void' + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, *args) -> 'void' + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, *args) -> 'void' + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45261,6 +53692,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 +53727,34 @@ Help on function _ask_addr in module ida_kernwin: _ask_addr(*args) -> 'ea_t *' _ask_addr(addr, format) -> bool + 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 + 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 + 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) + 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) + arg1: dirtree_t const * Help on class action_ctx_base_t in module ida_kernwin: @@ -45336,10 +53781,13 @@ class action_ctx_base_t(builtins.object) | _get_form_type(self) -> twidget_type_t | | has_flag(self, *args) -> 'bool' + | Check if the given flag is set. + | | has_flag(self, flag) -> bool + | @param flag (C++: uint32) | | reset(self, *args) -> 'void' - | reset(self) + | Invalidate all context info. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45362,6 +53810,9 @@ class action_ctx_base_t(builtins.object) | cur_enum | action_ctx_base_t_cur_enum_get(self) -> enum_t | + | cur_enum_member + | action_ctx_base_t_cur_enum_member_get(self) -> const_t + | | cur_extracted_ea | action_ctx_base_t_cur_value_get(self) -> uval_t | @@ -45386,6 +53837,9 @@ class action_ctx_base_t(builtins.object) | cur_value | action_ctx_base_t_cur_value_get(self) -> uval_t | + | dirtree_selection + | action_ctx_base_t_dirtree_selection_get(self) -> dirtree_selection_t * + | | focus | action_ctx_base_t_focus_get(self) -> TWidget * | @@ -45425,6 +53879,13 @@ 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 + | name: char const * + | label: char const * + | handler: PyObject * + | shortcut: char const * + | tooltip: char const * + | icon: int + | flags: int | | __repr__ = _swig_repr(self) | @@ -45456,7 +53917,7 @@ class action_desc_t(builtins.object) | action_desc_t_name_get(self) -> char const * | | owner - | action_desc_t_owner_get(self) -> plugin_t const * + | action_desc_t_owner_get(self) -> void const * | | shortcut | action_desc_t_shortcut_get(self) -> char const * @@ -45493,20 +53954,16 @@ class action_handler_t(builtins.object) 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: existing widget to display (C++: TWidget *) - @param take_focus: give focus to given widget (C++: bool) + activate_widget(widget, take_focus) + @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) -> 'PyObject *' add_hotkey(hotkey, pyfunc) -> PyObject * - - Associates a function call with a hotkey. Callable pyfunc will be called each time the hotkey is pressed @@ -45518,34 +53975,28 @@ add_hotkey(*args) -> 'PyObject *' 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: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes + add_idc_hotkey(hotkey, idcfunc) -> int + @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) -> 'PyObject *' - 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 + add_spaces(s, len) -> PyObject * + s: char const * + @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) -> 'int' - addon_count() -> int - - Get number of installed addons. Help on class addon_info_t in module ida_kernwin: @@ -45605,9 +54056,6 @@ class addon_info_t(builtins.object) 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' ) @@ -45619,38 +54067,41 @@ ask_addr(defval, format) 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' ).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) + ask_buttons(Yes, No, Cancel, deflt, format) -> int + @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) -> 'char *' ask_file(for_saving, defval, format) -> char * + @param for_saving (C++: bool) + @param defval (C++: const char *) + @param format (C++: const char *) 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 tosupport@hex- rays.com. - @param format: the reason why the input file is bad (C++: const char - *) + ask_for_feedback(format) + @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: @@ -45671,8 +54122,6 @@ Help on function ask_str in module ida_kernwin: ask_str(*args) -> 'PyObject *' ask_str(defval, hist, prompt) -> PyObject * - - Asks for a long text @param hist: history id @@ -45684,8 +54133,6 @@ Help on function ask_text in module ida_kernwin: ask_text(*args) -> 'PyObject *' ask_text(max_size, defval, prompt) -> PyObject * - - Asks for a long text @param max_size: Maximum text length, 0 for unlimited @@ -45696,228 +54143,220 @@ ask_text(*args) -> 'PyObject *' 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 . + ask_yn(deflt, format) -> int + @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) -> 'bool' - 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 + attach_action_to_menu(menupath, name, flags) -> bool + @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) -> '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: 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 + attach_action_to_popup(widget, popup_handle, name, popuppath=None, flags=0) -> bool + @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) -> 'bool' - 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 + attach_action_to_toolbar(toolbar_name, name) -> bool + @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) -> 'bool' - 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 + attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=0) -> bool + @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) -> 'bool' - banner(wait) -> bool - - Show a banner dialog box ( 'ui_banner' ). - @param wait: time to wait before closing (C++: int) + banner(wait) -> bool + @param wait: time to wait before closing (C++: int) + @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: beep_t (C++: beep_t) + beep(beep_type=beep_default) + @param beep_type: beep_t (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(). 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: request id (C++: int) + cancel_exec_request(req_id) -> bool + @param req_id: request id (C++: int) + @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' + Try to cancel asynchronous exec requests created by the specified + thread. + + cancel_thread_exec_requests(tid) -> int + @param tid: thread id (C++: qthread_t) + @return: number of the canceled requests. Help on function choose_activate in module ida_kernwin: choose_activate(*args) -> 'void' choose_activate(_self) + self: PyObject * Help on function choose_choose in module ida_kernwin: choose_choose(*args) -> 'PyObject *' choose_choose(_self) -> PyObject * + self: PyObject * Help on function choose_close in module ida_kernwin: choose_close(*args) -> 'void' choose_close(_self) + 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 * + 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: chooser title (C++: const char *) - @return: ea of selected entry point, BADADDR if none selected + choose_entry(title) -> ea_t + @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) -> 'enum_t' - 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 + choose_enum(title, default_id) -> enum_t + @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) -> '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: 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 + choose_enum_by_value(title, default_id, value, nbytes) -> enum_t + @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++: uint64) + @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) -> 'PyObject *' choose_find(title) -> PyObject * + 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: 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 + choose_func(title, default_ea) -> func_t * + @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) -> 'TWidget *' choose_get_widget(_self) -> TWidget * + 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 @@ -45925,85 +54364,71 @@ choose_idasgn(*args) -> 'PyObject *' 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: chooser title (C++: const char *) - @return: ea of selected name, BADADDR if none selected + choose_name(title) -> ea_t + @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) -> 'void' choose_refresh(_self) + 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: 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 + choose_segm(title, default_ea) -> segment_t * + @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) -> 'sreg_range_t *' - 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 + choose_srcp(title) -> sreg_range_t * + @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) -> 'ea_t' - 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 + choose_stkvar_xref(pfn, mptr) -> ea_t + @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) -> 'struc_t *' - 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 + choose_struc(title) -> struc_t * + @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) -> 'qstring *' - choose_til() -> str - - Choose a type library ( 'ui_choose' , 'chtype_idatil' ). 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: referenced address (C++: ea_t) - @return: ea of selected xref, BADADDR if none selected + choose_xref(to) -> ea_t + @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: @@ -46045,6 +54470,7 @@ Help on function clear_refresh_request in module ida_kernwin: clear_refresh_request(*args) -> 'void' clear_refresh_request(mask) + @param mask (C++: uint64) Help on class cli_t in module ida_kernwin: @@ -46060,6 +54486,43 @@ 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) @@ -46095,65 +54558,51 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) 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: window title of chooser to close (C++: const char *) - @return: success + close_chooser(title) -> bool + @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) -> 'void' - 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) + close_widget(widget, options) + @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) -> '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: 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 *) + create_code_viewer(custview, flags=0, parent=None) -> TWidget * + @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) -> '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) + create_empty_widget(title, icon=-1) -> TWidget * + @param title (C++: const char *) + @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, @@ -46175,49 +54624,44 @@ create_menu(*args) -> 'bool' 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 + create_menu(name, label, menupath=None) -> bool + @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) -> '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) - @return: success + create_toolbar(name, label, before=None, flags=0) -> bool + @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) -> '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: (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 + custom_viewer_jump(v, loc, flags=0) -> bool + @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) -> 'bool' del_hotkey(pyctx) -> bool - - Deletes a previously registered function hotkey @param ctx: Hotkey context previously returned by add_hotkey() @@ -46227,73 +54671,81 @@ del_hotkey(*args) -> 'bool' 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 *) + del_idc_hotkey(hotkey) -> bool + @param hotkey: hotkey name (C++: const char *) + @retval: 1 - ok + @retval: 0 - failed 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 *) - @return: success + delete_menu(name) -> bool + @param name: name of menu (C++: const char *) + @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 *) - @return: success + delete_toolbar(name) -> bool + @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) -> 'bool' - 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 + detach_action_from_menu(menupath, name) -> bool + @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) -> '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: target widget (C++: TWidget *) - @param name: action name (C++: const char *) + detach_action_from_popup(widget, name) -> bool + @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) -> 'bool' - 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 + detach_action_from_toolbar(toolbar_name, name) -> bool + @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(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: @@ -46304,7 +54756,7 @@ class disasm_line_t(builtins.object) | | __init__(self, *args) | __init__(self) -> disasm_line_t - | __init__(self, other) -> disasm_line_t + | other: disasm_line_t const & | | __repr__ = _swig_repr(self) | @@ -46347,10 +54799,11 @@ class disasm_text_t(builtins.object) | | __getitem__(self, *args) -> 'disasm_line_t const &' | __getitem__(self, i) -> disasm_line_t + | i: size_t | | __init__(self, *args) | __init__(self) -> disasm_text_t - | __init__(self, x) -> disasm_text_t + | 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,12 +54815,15 @@ class disasm_text_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -46391,7 +54847,12 @@ class disasm_text_t(builtins.object) | | erase(self, *args) -> 'qvector< disasm_line_t >::iterator' | erase(self, it) -> disasm_line_t + | it: qvector< disasm_line_t >::iterator + | + | | erase(self, first, last) -> disasm_line_t + | first: qvector< disasm_line_t >::iterator + | last: qvector< disasm_line_t >::iterator | | extract(self, *args) -> 'disasm_line_t *' | extract(self) -> disasm_line_t @@ -46401,35 +54862,47 @@ class disasm_text_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=disasm_line_t()) + | x: disasm_line_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: disasm_line_t * + | len: size_t | | insert(self, *args) -> 'qvector< disasm_line_t >::iterator' | insert(self, it, x) -> disasm_line_t + | it: qvector< disasm_line_t >::iterator + | x: disasm_line_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'disasm_line_t &' | push_back(self, x) - | push_back(self) -> disasm_line_t + | x: disasm_line_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: disasm_line_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< disasm_line_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -46449,60 +54922,45 @@ class disasm_text_t(builtins.object) 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: 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 *) + display_widget(widget, options, dest_ctrl=None) + @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) -> 'size_t' - ea2str(ea) -> str - - Convert linear address to UTF-8 string. - - @param ea (C++: ea_t) + ea2str(ea) -> str + @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: 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) + ea_viewer_history_push_and_jump(v, ea, x, y, lnnum) -> bool + @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) -> '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 @@ -46511,9 +54969,10 @@ enable_chooser_item_attrs(*args) -> 'bool' 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 + enable_chooser_item_attrs(chooser_caption, enable) -> bool + @param chooser_caption (C++: const char *) + @param enable (C++: bool) + @return: success Help on class enumplace_t in module ida_kernwin: @@ -46558,78 +55017,183 @@ class enumplace_t(place_t) | | _print(self, *args) -> 'void' | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) -> 'void' + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) -> 'bool' + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) -> 'place_t *' - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) -> 'int' + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) -> 'int' + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) -> 'void' + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) -> 'bool' + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) -> 'place_t *' + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @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()' ) | | leave(self, *args) -> 'void' + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) -> 'place_t *' + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @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. | | next(self, *args) -> 'bool' + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) -> 'bool' + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) -> 'bool' + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | 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. | | touval(self, *args) -> 'uval_t' + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -46647,8 +55211,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 @@ -46657,8 +55219,6 @@ 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. @@ -46671,8 +55231,6 @@ 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. @@ -46684,340 +55242,306 @@ execute_ui_requests(*args) -> 'bool' 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: title of tab, or window title if widget is not tabbed - (C++: const char *) - @return: pointer to the TWidget, NULL if none is found + find_widget(caption) -> TWidget * + @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) -> 'void' formchgcbfa_close(p_fa, close_normally) + p_fa: size_t + 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 + p_fa: size_t + fid: int + 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 * + p_fa: size_t + fid: int + ft: int + 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 + 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 + p_fa: size_t + fid: int + x: int + y: int + w: int + h: int Help on function formchgcbfa_refresh_field in module ida_kernwin: formchgcbfa_refresh_field(*args) -> 'void' formchgcbfa_refresh_field(p_fa, fid) + p_fa: size_t + 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 + p_fa: size_t + fid: int + ft: int + 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 + p_fa: size_t + 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 + p_fa: size_t + fid: int + 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() 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) + gen_disasm_text(text, ea1, ea2, truncate_lines) + @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) -> 'bool *' - get_action_checkable(name) -> bool - - Get an action's checkability ( 'ui_get_action_attr' ). - @param name: the action name (C++: const char *) - @return: success + get_action_checkable(name) -> bool + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_checked(name) -> bool + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_icon(name) -> bool + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_label(name) -> str + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_shortcut(name) -> str + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_state(name) -> bool + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_tooltip(name) -> str + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_visibility(name) -> bool + @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) -> '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 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) -> '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 *) - @param info (C++: addon_info_t *) - @return: false if not found + get_addon_info(id, info) -> bool + @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) -> '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 + get_addon_info_idx(index, info) -> bool + @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 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) + get_chooser_data(chooser_caption, n) -> PyObject * + @param chooser_caption (C++: const char *) + @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 is object is chooser-specific. - @param chooser_caption (C++: const char *) - @return: the object that was used to create the chooser + get_chooser_obj(chooser_caption) -> void * + @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) -> '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' ).coordinates are 0-based 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: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) - @return: pointer to contents of current line + get_custom_viewer_curline(custom_viewer, mouse) -> char const * + @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) -> '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) + get_custom_viewer_location(out, custom_viewer, mouse=False) -> 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()' - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) + get_custom_viewer_place(custom_viewer, mouse) -> place_t + @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) -> '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: number of available back steps (C++: int *) - @param nfwd: number of available forward steps (C++: int *) - @param v: ea viewer (C++: TWidget *) + get_ea_viewer_history_info(nback, nfwd, v) -> bool + @param nback: number of available back steps (C++: int *) + @param nfwd: number of available forward steps (C++: int *) + @param v: ea viewer (C++: TWidget *) + @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) + get_hexdump_ea(hexdump_num) -> ea_t + @param hexdump_num: number of hexview window (C++: int) Help on function get_highlight in module ida_kernwin: get_highlight(*args) -> 'PyObject *' get_highlight(v) -> PyObject * - - Returns the currently highlighted identifier and flags @return: a tuple (text, flags), or None if nothing @@ -47026,39 +55550,28 @@ get_highlight(*args) -> 'PyObject *' 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 *) + get_key_code(keyname) -> ushort + @param keyname (C++: const char *) 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) + get_navband_ea(pixel) -> ea_t + @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 @param ea: The address to map @@ -47067,28 +55580,20 @@ get_navband_pixel(*args) -> 'bool *' 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: current for mouse pointer? (C++: bool) - @return: false if output contains no text + get_output_curline(mouse) -> str + @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) -> 'int *, int *' - 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 @@ -47096,159 +55601,129 @@ get_output_cursor(*args) -> 'int *, int *' 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: 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 + get_place_class(out_flags, out_sdk_version, id) -> place_t + @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) -> 'int' - 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 + get_place_class_id(name) -> int + @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) -> 'place_t const *' - get_place_class_template(id) -> place_t - - See 'get_place_class()' - - @param id (C++: int) + get_place_class_template(id) -> place_t + @param id (C++: int) Help on function get_registered_actions in module ida_kernwin: get_registered_actions(*args) -> 'PyObject *' - 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) -> '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 the group of widgets/registers this view is synchronized with + + get_synced_group(w) -> synced_group_t + @param w: the widget (C++: const TWidget *) + @return: the group of widgets/registers, or NULL + 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: the path of the source view for which the tab size is - requested. if NULL, the default size is returned. (C++: - const char *) + get_tab_size(path) -> int + @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) -> 'void' get_user_strlist_options(out) + @param out (C++: 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 *) + get_view_renderer_type(v) -> tcc_renderer_type_t + @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 *) + get_viewer_place_type(viewer) -> tcc_place_type_t + @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 *) + get_viewer_user_data(viewer) -> void * + @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 *) + get_widget_title(widget) -> str + @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 *) + get_widget_type(widget) -> twidget_type_t + @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 *) - @return: the low-level window ID + get_window_id(name=None) -> void * + @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) -> 'void' - hide_wait_box() - - Hide the "Please wait dialog box". Help on class idaplace_t in module ida_kernwin: @@ -47285,78 +55760,183 @@ class idaplace_t(place_t) | | _print(self, *args) -> 'void' | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) -> 'void' + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) -> 'bool' + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) -> 'place_t *' - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) -> 'int' + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) -> 'int' + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) -> 'void' + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) -> 'bool' + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) -> 'place_t *' + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @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()' ) | | leave(self, *args) -> 'void' + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) -> 'place_t *' + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @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. | | next(self, *args) -> 'bool' + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) -> 'bool' + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) -> 'bool' + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | 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. | | touval(self, *args) -> 'uval_t' + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -47374,79 +55954,68 @@ Help on function info in module ida_kernwin: info(*args) -> 'void' info(format) + @param format (C++: const char *) 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_interpreter(py_obj) -> int + 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 (C++: const place_t *) + @param flags (C++: int) + @param owner (C++: const plugin_t *) + @param sdk_version (C++: 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) + is_action_enabled(s) -> bool + @param s (C++: 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) + is_chooser_widget(t) -> bool + @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_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) + is_place_class_ea_capable(id) -> bool + @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) - @return: the state (set or cleared) + is_refresh_requested(mask) -> bool + @param mask: Window refresh flags (C++: uint64) + @return: the state (set or cleared) Help on class jobj_wrapper_t in module ida_kernwin: @@ -47478,16 +56047,345 @@ class jobj_wrapper_t(builtins.object) Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' - 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 + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + @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 + + + jumpto(custom_viewer, place, x, y) -> bool + custom_viewer: TWidget * + place: place_t * + x: int + y: int + @return: success + +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 + | 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 + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> line_rendering_output_entries_refs_t + | 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 + | r: qvector< line_rendering_output_entry_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | 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 + | x: line_rendering_output_entry_t *const & + | + | _internal_push_back(self, *args) -> 'void' + | _internal_push_back(self, e) + | e: line_rendering_output_entry_t * + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: line_rendering_output_entry_t *const & + | + | at(self, *args) -> 'line_rendering_output_entry_t *const &' + | at(self, _idx) -> line_rendering_output_entry_t + | _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 + | it: qvector< line_rendering_output_entry_t * >::iterator + | + | + | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator + | first: qvector< line_rendering_output_entry_t * >::iterator + | last: qvector< line_rendering_output_entry_t * >::iterator + | + | extract(self, *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 + | x: line_rendering_output_entry_t *const & + | + | + | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator + | x: line_rendering_output_entry_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: line_rendering_output_entry_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: line_rendering_output_entry_t ** + | len: size_t + | + | insert(self, *args) -> 'qvector< line_rendering_output_entry_t * >::iterator' + | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator + | it: qvector< line_rendering_output_entry_t * >::iterator + | x: line_rendering_output_entry_t *const & + | + | 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) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: line_rendering_output_entry_t *const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 + | r: line_rendering_output_entry_t const & + | + | __init__(self, *args) + | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t + | _line: twinline_t const * + | _flags: uint32 + | _bg_color: bgcolor_t + | + | + | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t + | _line: twinline_t const * + | _cpx: int + | _nchars: int + | _flags: uint32 + | _bg_color: bgcolor_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | 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 + | line_rendering_output_entry_t_bg_color_get(self) -> bgcolor_t + | + | cpx + | line_rendering_output_entry_t_cpx_get(self) -> int + | + | flags + | line_rendering_output_entry_t_flags_get(self) -> uint32 + | + | line + | line_rendering_output_entry_t_line_get(self) -> twinline_t + | + | nchars + | line_rendering_output_entry_t_nchars_get(self) -> int + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +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 + | lines_rendering_input_t_cb_get(self) -> int + | + | sections_lines + | lines_rendering_input_t_sections_lines_get(self) -> sections_lines_refs_t + | + | sync_group + | lines_rendering_input_t_sync_group_get(self) -> synced_group_t + | + | 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 + | r: lines_rendering_output_t const & + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_output_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | 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 (C++: 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 + | lines_rendering_output_t_entries_get(self) -> line_rendering_output_entries_refs_t + | + | flags + | lines_rendering_output_t_flags_get(self) -> uint32 + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None Help on function load_custom_icon in module ida_kernwin: @@ -47502,44 +56400,32 @@ load_custom_icon(file_name=None, data=None, format=None) @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) -> '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) + load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool + @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) -> 'ushort' - 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) + lookup_key_code(key, shift, is_qt) -> ushort + @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) -> 'PyObject *' msg(o) -> PyObject * - - Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -47552,342 +56438,261 @@ msg(*args) -> 'PyObject *' 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) -> 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) + msg_get_lines(count=-1) -> PyObject * + @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) -> 'bool' - 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 + msg_save(path) -> bool + @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) -> 'void' nomem(format) + @param format (C++: const char *) 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: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + open_bpts_window(ea) -> TWidget * + @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) -> 'TWidget *' - open_calls_window(ea) -> TWidget * - - Open the function calls window ( 'ui_open_builtin' ). - @param ea (C++: ea_t) - @return: pointer to resulting window + open_calls_window(ea) -> TWidget * + @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: 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 + open_disasm_window(window_title, ranges=None) -> TWidget * + @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) -> 'TWidget *' - 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 + open_enums_window(const_id=BADADDR) -> TWidget * + @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) -> 'TWidget *' - 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 + open_exports_window(ea) -> TWidget * + @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) -> 'TWidget *' - 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 + open_frame_window(pfn, offset) -> TWidget * + @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) -> 'TWidget *' - 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 + open_funcs_window(ea) -> TWidget * + @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) -> 'TWidget *' - 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 + open_hexdump_window(window_title) -> TWidget * + @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) -> 'TWidget *' - 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 + open_imports_window(ea) -> TWidget * + @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) -> 'TWidget *' - 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 + open_loctypes_window(ordinal) -> TWidget * + @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) -> '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: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + open_names_window(ea) -> TWidget * + @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) -> 'TWidget *' - 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 + open_navband_window(ea, zoom) -> TWidget * + @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) -> '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: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + open_problems_window(ea) -> TWidget * + @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) -> 'TWidget *' - 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 + open_segments_window(ea) -> TWidget * + @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) -> 'TWidget *' - 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 + open_segregs_window(ea) -> TWidget * + @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) -> '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: 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 + open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * + @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) -> 'TWidget *' - 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 + open_structs_window(id=BADADDR, offset=0) -> TWidget * + @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) -> '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 trace 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 *) + open_url(url) + @param url (C++: const char *) 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: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + open_xrefs_window(ea) -> TWidget * + @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: @@ -47906,78 +56711,183 @@ class place_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) -> 'void' + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) -> 'bool' + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) -> 'place_t *' - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) -> 'int' + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) -> 'int' + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) -> 'void' + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) -> 'bool' + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) -> 'place_t *' + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @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()' ) | | leave(self, *args) -> 'void' + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) -> 'place_t *' + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @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. | | next(self, *args) -> 'bool' + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) -> 'bool' + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) -> 'bool' + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | 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. | | touval(self, *args) -> 'uval_t' + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods defined here: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -47998,31 +56908,38 @@ 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 + 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 + 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 + 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 + p: place_t * Help on function plgform_close in module ida_kernwin: plgform_close(*args) -> 'void' plgform_close(py_link, options) + py_link: PyObject * + options: int Help on function plgform_get_widget in module ida_kernwin: plgform_get_widget(*args) -> 'TWidget *' plgform_get_widget(py_link) -> TWidget * + py_link: PyObject * Help on function plgform_new in module ida_kernwin: @@ -48033,13 +56950,15 @@ 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 + py_link: PyObject * + py_obj: PyObject * + caption: char const * + 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 @@ -48059,148 +56978,192 @@ 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 + data: PyObject * + 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 + 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) + py_form: PyObject * Help on function py_ss_restore_callback in module ida_kernwin: py_ss_restore_callback(*args) -> 'void' py_ss_restore_callback(err_msg, userdata) + err_msg: char const * + userdata: void * Help on function py_unregister_compiled_form in module ida_kernwin: py_unregister_compiled_form(*args) -> 'void' py_unregister_compiled_form(py_form) + py_form: PyObject * Help on function pyidag_bind in module ida_kernwin: pyidag_bind(*args) -> 'bool' pyidag_bind(_self) -> bool + self: PyObject * Help on function pyidag_unbind in module ida_kernwin: pyidag_unbind(*args) -> 'bool' pyidag_unbind(_self) -> bool + 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 + py_this: PyObject * + py_sl: PyObject * Help on function pyscv_clear_lines in module ida_kernwin: pyscv_clear_lines(*args) -> 'PyObject *' pyscv_clear_lines(py_this) -> PyObject * + py_this: PyObject * Help on function pyscv_close in module ida_kernwin: pyscv_close(*args) -> 'void' pyscv_close(py_this) + py_this: PyObject * Help on function pyscv_count in module ida_kernwin: pyscv_count(*args) -> 'size_t' pyscv_count(py_this) -> size_t + 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 + py_this: PyObject * + 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 + py_this: PyObject * + nline: size_t + 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 * + py_this: PyObject * + mouse: bool + 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 * + py_this: PyObject * + mouse: bool Help on function pyscv_get_line in module ida_kernwin: pyscv_get_line(*args) -> 'PyObject *' pyscv_get_line(py_this, nline) -> PyObject * + py_this: PyObject * + 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 * + py_this: PyObject * + mouse: bool Help on function pyscv_get_selection in module ida_kernwin: pyscv_get_selection(*args) -> 'PyObject *' pyscv_get_selection(py_this) -> PyObject * + py_this: PyObject * Help on function pyscv_get_widget in module ida_kernwin: pyscv_get_widget(*args) -> 'TWidget *' pyscv_get_widget(py_this) -> TWidget * + py_this: PyObject * Help on function pyscv_init in module ida_kernwin: pyscv_init(*args) -> 'PyObject *' pyscv_init(py_link, title) -> PyObject * + py_link: PyObject * + 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 + py_this: PyObject * + nline: size_t + py_sl: PyObject * Help on function pyscv_is_focused in module ida_kernwin: pyscv_is_focused(*args) -> 'bool' pyscv_is_focused(py_this) -> bool + py_this: PyObject * Help on function pyscv_jumpto in module ida_kernwin: pyscv_jumpto(*args) -> 'bool' pyscv_jumpto(py_this, ln, x, y) -> bool + py_this: PyObject * + ln: size_t + x: int + 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 + py_this: PyObject * + nline: size_t + offs: size_t + value: int Help on function pyscv_refresh in module ida_kernwin: pyscv_refresh(*args) -> 'bool' pyscv_refresh(py_this) -> bool + py_this: PyObject * Help on function pyscv_show in module ida_kernwin: pyscv_show(*args) -> 'bool' pyscv_show(py_this) -> bool + 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) - @return: length of line + qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str + @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: @@ -48237,21 +57200,19 @@ class quick_widget_commands_t(builtins.object) 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: view, NULL means the last active window containing addresses - (C++: TWidget *) + read_range_selection(v) -> bool + @param v: view, NULL means the last active window containing addresses + (C++: TWidget *) + @retval: 0 - no range is selected + @retval: 1 - ok, start ea and end ea are filled 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: @@ -48285,14 +57246,12 @@ read_selection(*args) -> 'bool' 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: title of chooser (C++: const char *) - @return: success + refresh_chooser(title) -> bool + @param title: title of chooser (C++: const char *) + @return: success Help on function refresh_choosers in module ida_kernwin: @@ -48302,36 +57261,25 @@ refresh_choosers(*args) -> 'void' 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: refresh regardless (C++: bool) + refresh_navband(force) + @param force: refresh regardless (C++: bool) 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 ( @@ -48340,47 +57288,43 @@ register_action(*args) -> 'bool' 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 + register_action(desc) -> bool + @param desc: action to register (C++: const action_desc_t &) + @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 *) + register_addon(info) -> int + @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) -> 'bool' - 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 *) + register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner, action_desc_t_flags) -> bool + @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++: 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 a timer @param interval: Interval in milliseconds @@ -48393,10 +57337,10 @@ register_timer(*args) -> 'PyObject *' 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_interpreter(cli_idx) + cli_idx: int Help on class renderer_pos_info_t in module ida_kernwin: @@ -48407,12 +57351,14 @@ class renderer_pos_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: renderer_pos_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_pos_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: renderer_pos_info_t const & | | __repr__ = _swig_repr(self) | @@ -48451,173 +57397,458 @@ class renderer_pos_info_t(builtins.object) 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 *) + repaint_custom_viewer(custom_viewer) + @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 *) + replace_wait_box(format) + @param format (C++: const char *) 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) + request_refresh(mask, cnd=True) + @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) -> 'PyObject *' - 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. + restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> PyObject * + @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const + snapshot_t *) + pyfunc_or_none: PyObject * + pytuple_or_none: PyObject * + @return: false if restoration could not be started (snapshot file was + not found). If the returned value is True then check if + the operation succeeded from the callback. + +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 + | r: qvector< twinline_t const * > const & + | + | __getitem__(self, *args) -> 'twinline_t const *const &' + | __getitem__(self, i) -> twinline_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> section_lines_refs_t + | 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 + | r: qvector< twinline_t const * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | 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 + | x: twinline_t const *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: twinline_t const *const & + | + | at(self, *args) -> 'twinline_t const *const &' + | at(self, _idx) -> twinline_t + | _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 + | it: qvector< twinline_t const * >::iterator + | + | + | erase(self, first, last) -> qvector< twinline_t const * >::iterator + | first: qvector< twinline_t const * >::iterator + | last: qvector< twinline_t const * >::iterator + | + | extract(self, *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 + | x: twinline_t const *const & + | + | + | find(self, x) -> qvector< twinline_t const * >::const_iterator + | x: twinline_t const *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: twinline_t const *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: twinline_t const ** + | len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t const * >::iterator' + | insert(self, it, x) -> qvector< twinline_t const * >::iterator + | it: qvector< twinline_t const * >::iterator + | x: twinline_t const *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t const *&' + | push_back(self, x) + | x: twinline_t const *const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: twinline_t const *const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 + | r: qvector< section_lines_refs_t > const & + | + | __getitem__(self, *args) -> 'section_lines_refs_t const &' + | __getitem__(self, i) -> section_lines_refs_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> sections_lines_refs_t + | 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 + | r: qvector< section_lines_refs_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | 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 + | x: section_lines_refs_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: section_lines_refs_t const & + | + | at(self, *args) -> 'section_lines_refs_t const &' + | at(self, _idx) -> section_lines_refs_t + | _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 + | it: qvector< section_lines_refs_t >::iterator + | + | + | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator + | first: qvector< section_lines_refs_t >::iterator + | last: qvector< section_lines_refs_t >::iterator + | + | extract(self, *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 + | x: section_lines_refs_t const & + | + | + | find(self, x) -> qvector< section_lines_refs_t >::const_iterator + | x: section_lines_refs_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=section_lines_refs_t()) + | x: section_lines_refs_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: section_lines_refs_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: section_lines_refs_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< section_lines_refs_t >::iterator' + | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator + | it: qvector< section_lines_refs_t >::iterator + | x: section_lines_refs_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'section_lines_refs_t &' + | push_back(self, x) + | x: section_lines_refs_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: section_lines_refs_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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: 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 + set_code_viewer_handler(code_viewer, handler_id, handler_or_data) -> void * + @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) -> '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 *) + set_code_viewer_is_source(code_viewer) -> bool + @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 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 *) + set_code_viewer_line_handlers(code_viewer, click_handler, popup_handler, dblclick_handler, drawicon_handler, linenum_handler) + @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) + set_code_viewer_lines_alignment(code_viewer, align) -> bool + @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) + set_code_viewer_lines_icon_margin(code_viewer, margin) -> bool + @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) + set_code_viewer_lines_radix(code_viewer, radix) -> bool + @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 *) + set_code_viewer_user_data(code_viewer, ud) -> bool + @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 *) + set_custom_viewer_qt_aware(custom_viewer) -> bool + @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 @@ -48632,24 +57863,20 @@ set_dock_pos(*args) -> 'bool' 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: 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 + set_highlight(viewer, str, flags) -> bool + @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) -> 'PyObject *' set_nav_colorizer(new_py_colorizer) -> PyObject * - - Set a new colorizer for the navigation band. The 'callback' is a function of 2 arguments: @@ -48679,21 +57906,15 @@ set_nav_colorizer(*args) -> '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) + set_view_renderer_type(v, rt) + @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) -> 'void' - 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 @@ -48709,6 +57930,9 @@ show_wait_box(*args) -> 'void' currently displayed,alternatively it can call 'replace_wait_box()' , to replace the text of thedialog without pushing the currently- displayed text on the stack. + + show_wait_box(message) + message: char const * Help on class simplecustviewer_t in module ida_kernwin: @@ -48866,78 +58090,183 @@ class simpleline_place_t(place_t) | | _print(self, *args) -> 'void' | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) -> 'void' + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) -> 'bool' + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) -> 'place_t *' - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) -> 'int' + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) -> 'int' + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) -> 'void' + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) -> 'bool' + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) -> 'place_t *' + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @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()' ) | | leave(self, *args) -> 'void' + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) -> 'place_t *' + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @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. | | next(self, *args) -> 'bool' + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) -> 'bool' + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) -> 'bool' + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | 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. | | touval(self, *args) -> 'uval_t' + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -48960,8 +58289,12 @@ class simpleline_t(builtins.object) | | __init__(self, *args) | __init__(self) -> simpleline_t - | __init__(self, c, str) -> simpleline_t + | c: color_t + | str: char const * + | + | | __init__(self, str) -> simpleline_t + | str: char const * | | __repr__ = _swig_repr(self) | @@ -48993,8 +58326,6 @@ 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. @return: BADADDR or address value @@ -49003,8 +58334,6 @@ Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' str2user(str) -> PyObject * - - Insert C-style escape characters to string @return: new string with escape characters inserted @@ -49012,17 +58341,15 @@ str2user(*args) -> 'PyObject *' 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 *) - @param array_size (C++: size_t) - @param code (C++: int) + strarray(array, array_size, code) -> char const * + @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: @@ -49094,78 +58421,183 @@ class structplace_t(place_t) | | _print(self, *args) -> 'void' | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) -> 'void' + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) -> 'bool' + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) -> 'place_t *' - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) -> 'int' + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) -> 'int' + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) -> 'void' + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) -> 'bool' + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) -> 'place_t *' + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @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()' ) | | leave(self, *args) -> 'void' + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) -> 'place_t *' + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @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. | | next(self, *args) -> 'bool' + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) -> 'bool' + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) -> 'bool' + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | 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. | | touval(self, *args) -> 'uval_t' + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -49188,13 +58620,19 @@ class sync_source_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, _o) -> bool + | _o: sync_source_t const & | | __init__(self, *args) | __init__(self, _view) -> sync_source_t + | _view: TWidget const * + | + | | __init__(self, _regname) -> sync_source_t + | _regname: char const * | | __ne__(self, *args) -> 'bool' | __ne__(self, _o) -> bool + | _o: sync_source_t const & | | __repr__ = _swig_repr(self) | @@ -49230,30 +58668,471 @@ 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 + | r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> sync_source_vec_t + | 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 + | r: qvector< sync_source_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | 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 + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | 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 + | end(self) -> sync_source_t + | + | erase(self, *args) -> 'qvector< sync_source_t >::iterator' + | erase(self, it) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | + | + | erase(self, first, last) -> sync_source_t + | first: qvector< sync_source_t >::iterator + | last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: sync_source_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: sync_source_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 + sync_sources(what, _with, sync) -> 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 (C++: const sync_source_t &) + | + | has_register(self, *args) -> 'bool' + | has_register(self, r) -> bool + | @param r (C++: const char *) + | + | has_widget(self, *args) -> 'bool' + | has_widget(self, v) -> bool + | @param v (C++: const TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from sync_source_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | 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 + | r: qvector< sync_source_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | v: sync_source_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | 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 + | end(self) -> sync_source_t + | + | erase(self, *args) -> 'qvector< sync_source_t >::iterator' + | erase(self, it) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | + | + | erase(self, first, last) -> sync_source_t + | first: qvector< sync_source_t >::iterator + | last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: sync_source_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 a database snapshot ( 'ui_take_database_snapshot' ). - @param ss: in/out parameter. in: description, flags out: filename, - id (C++: snapshot_t *) - @return: success + take_database_snapshot(ss) -> PyObject * + @param ss: in/out parameter. in: description, flags out: filename, + id (C++: snapshot_t *) + @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 + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> text_t + | 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) + | i: size_t + | v: twinline_t const & + | + | __swig_destroy__ = delete_text_t(...) + | delete_text_t(self) + | + | at(self, *args) -> 'twinline_t const &' + | at(self, _idx) -> twinline_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< twinline_t >::const_iterator' + | begin(self) -> twinline_t + | 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 + | end(self) -> twinline_t + | + | erase(self, *args) -> 'qvector< twinline_t >::iterator' + | erase(self, it) -> twinline_t + | it: qvector< twinline_t >::iterator + | + | + | erase(self, first, last) -> twinline_t + | first: qvector< twinline_t >::iterator + | last: qvector< twinline_t >::iterator + | + | extract(self, *args) -> 'twinline_t *' + | extract(self) -> twinline_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=twinline_t()) + | x: twinline_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: twinline_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t >::iterator' + | insert(self, it, x) -> twinline_t + | it: qvector< twinline_t >::iterator + | x: twinline_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t &' + | push_back(self, x) + | x: twinline_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: twinline_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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: @@ -49372,6 +59251,8 @@ Help on function textctrl_info_t_assign in module ida_kernwin: textctrl_info_t_assign(*args) -> 'bool' textctrl_info_t_assign(_self, other) -> bool + self: PyObject * + other: PyObject * Help on function textctrl_info_t_create in module ida_kernwin: @@ -49382,46 +59263,103 @@ Help on function textctrl_info_t_destroy in module ida_kernwin: textctrl_info_t_destroy(*args) -> 'bool' textctrl_info_t_destroy(py_obj) -> bool + 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 * + 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 * + 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 + 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 + 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 * + 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 + self: PyObject * + 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 + self: PyObject * + 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 + self: PyObject * + 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 + | t: place_t * + | pc: color_t + | 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 + | twinline_t_at_get(self) -> place_t + | + | bg_color + | twinline_t_bg_color_get(self) -> bgcolor_t + | + | is_default + | twinline_t_is_default_get(self) -> bool + | + | line + | twinline_t_line_get(self) -> qstring * + | + | prefix_color + | twinline_t_prefix_color_get(self) -> color_t + | + | thisown + | The membership flag Help on class twinpos_t in module ida_kernwin: @@ -49430,16 +59368,14 @@ 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 + | t: place_t * + | + | | __init__(self, t, x0) -> twinpos_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, r) -> bool + | t: place_t * + | x0: int | | __repr__ = _swig_repr(self) | @@ -49473,30 +59409,25 @@ class twinpos_t(builtins.object) | | x | twinpos_t_x_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None 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: 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 **) + ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool + @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 **) + @retval: true - file was successfully loaded + @retval: false - otherwise Help on class ui_requests_t in module ida_kernwin: @@ -49528,43 +59459,34 @@ class ui_requests_t(builtins.object) 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: 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 + ui_run_debugger(dbgopts, exename, argc, argv) -> bool + @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) -> '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: name of action (C++: const char *) - @return: success + unregister_action(name) -> bool + @param name: name of action (C++: const char *) + @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() @@ -49574,105 +59496,86 @@ unregister_timer(*args) -> 'bool' 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: action name (C++: const char *) - @param checkable: new checkability (C++: bool) - @return: success + update_action_checkable(name, checkable) -> bool + @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) -> 'bool' - 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 + update_action_checked(name, checked) -> bool + @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) -> 'bool' - 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 + update_action_icon(name, icon) -> bool + @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) -> 'bool' - 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 + update_action_label(name, label) -> bool + @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) -> 'bool' - 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 + update_action_shortcut(name, shortcut) -> bool + @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) -> 'bool' - 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 + update_action_state(name, state) -> bool + @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) -> 'bool' - 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 + update_action_tooltip(name, tooltip) -> bool + @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) -> 'bool' - 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 + update_action_visibility(name, visible) -> bool + @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) -> 'bool' - user_cancelled() -> bool - - Test the ctrl-break flag ( 'ui_test_cancelled' ). Help on class view_mouse_event_location_t in module ida_kernwin: @@ -49760,8 +59663,6 @@ 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) @@ -49771,6 +59672,11 @@ warning(*args) -> 'void' the screen === ida_kernwin EPYDOC INJECTIONS === +ida_kernwin.ACF_HAS_FIELD_DIRTREE_SELECTION +""" +'cur_enum_member' and 'dirtree_selection' fields are present +""" + ida_kernwin.ACF_HAS_SELECTION """ there is currently a valid selection @@ -49781,6 +59687,20 @@ ida_kernwin.ACF_XTRN_EA cur_ea is in 'externs' segment """ +ida_kernwin.ADF_GLOBAL +""" +available even if no IDB is present + +Register the action globally, so that it's +""" + +ida_kernwin.ADF_NO_HIGHLIGHT +""" +according to what's under the cursor (listings only.) + +After activating, do not update the highlight +""" + ida_kernwin.ADF_NO_UNDO """ useful for actions that do not modify the database. @@ -49788,6 +59708,26 @@ useful for actions that do not modify the database. the action does not create an undo point. """ +ida_kernwin.ADF_OT_MASK +""" +Owner type mask. +""" + +ida_kernwin.ADF_OT_PLUGIN +""" +Owner is a 'plugin_t' . +""" + +ida_kernwin.ADF_OT_PLUGMOD +""" +Owner is a 'plugmod_t' . +""" + +ida_kernwin.ADF_OT_PROCMOD +""" +Owner is a 'procmod_t' . +""" + ida_kernwin.ADF_OWN_HANDLER """ handler is owned by the action; it'll be destroyed when the action is @@ -50143,6 +60083,13 @@ ida_kernwin.CHCOL_DEFHIDDEN column should be hidden by default """ +ida_kernwin.CHCOL_DRAGHINT +""" +the column number that will be used to build hints for the dragging +undo label. This should be provided for at most one column for any +given chooser. +""" + ida_kernwin.CHCOL_EA """ address @@ -50163,6 +60110,13 @@ ida_kernwin.CHCOL_HEX hexadecimal number """ +ida_kernwin.CHCOL_INODENAME +""" +if CH_HAS_DIRTREE has been specified, this instructs the chooser that +this column shows the inode name. This should be provided for at most +one column for any given chooser. +""" + ida_kernwin.CHCOL_PATH """ file path @@ -50270,6 +60224,12 @@ if a non-modal chooser was already open, change selection to the default one """ +ida_kernwin.CH_HAS_DIRTREE +""" +The chooser can provide a 'dirtree_t' , meaning a tree-like structure +can be provided to the user (instead of a flat table) +""" + ida_kernwin.CH_KEEP """ The chooser instance's lifecycle is not tied to the lifecycle of the @@ -50346,6 +60306,111 @@ restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) """ +ida_kernwin.CH_TM_FOLDERS_ONLY +""" +chooser will show in folders-only mode +""" + +ida_kernwin.CH_TM_FULL_TREE +""" +chooser will show in no-tree mode +""" + +ida_kernwin.CH_TM_NO_TREE +""" +chooser will show up in no-tree mode +""" + +ida_kernwin.CK_EXTRA1 +""" +extra background overlay #1 +""" + +ida_kernwin.CK_EXTRA10 +""" +extra background overlay #10 +""" + +ida_kernwin.CK_EXTRA11 +""" +extra background overlay #11 +""" + +ida_kernwin.CK_EXTRA12 +""" +extra background overlay #12 +""" + +ida_kernwin.CK_EXTRA13 +""" +extra background overlay #13 +""" + +ida_kernwin.CK_EXTRA14 +""" +extra background overlay #14 +""" + +ida_kernwin.CK_EXTRA15 +""" +extra background overlay #15 +""" + +ida_kernwin.CK_EXTRA16 +""" +extra background overlay #16 +""" + +ida_kernwin.CK_EXTRA2 +""" +extra background overlay #2 +""" + +ida_kernwin.CK_EXTRA3 +""" +extra background overlay #3 +""" + +ida_kernwin.CK_EXTRA4 +""" +extra background overlay #4 +""" + +ida_kernwin.CK_EXTRA5 +""" +extra background overlay #5 +""" + +ida_kernwin.CK_EXTRA6 +""" +extra background overlay #6 +""" + +ida_kernwin.CK_EXTRA7 +""" +extra background overlay #7 +""" + +ida_kernwin.CK_EXTRA8 +""" +extra background overlay #8 +""" + +ida_kernwin.CK_EXTRA9 +""" +extra background overlay #9 +""" + +ida_kernwin.CK_TRACE +""" +traced address +""" + +ida_kernwin.CK_TRACE_OVL +""" +overlay trace address +""" + ida_kernwin.CLNL_FINDCMT """ Search for the comment symbol everywhere in the line, not only at the @@ -50753,6 +60818,16 @@ ida_kernwin.IWID_XREFS xrefs (18) """ +ida_kernwin.LROEF_CPS_RANGE +""" +background for range of chars +""" + +ida_kernwin.LROEF_FULL_LINE +""" +full line background +""" + ida_kernwin.MFF_FAST """ Execute code as soon as possible. this mode is ok for calling ui @@ -50763,10 +60838,10 @@ 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. +not, the request will be ignored. the request must be created using +the 'new' operator to use it with this flag. it can be used in +'cancel_exec_request()' . This flag can be used to delay the code +execution until the next UI loop run even from the main thread. """ ida_kernwin.MFF_READ @@ -50786,6 +60861,19 @@ 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.PCF_EA_CAPABLE +""" +toea() implementation returns meaningful data +""" + +ida_kernwin.PCF_MAKEPLACE_ALLOCATES +""" +makeplace() returns a freshly allocated (i.e., non-static) instance. +All new code should pass that flag to 'register_place_class()' , and +the corresponding makeplace() class implementation should return new +instances. +""" + ida_kernwin.SETMENU_APP """ add menu item after the specified path @@ -50846,158 +60934,114 @@ COLSTR(str, tag) 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 *) - @return: true if success + add_extra_cmt(ea, isprev, format) -> bool + @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) -> '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 *) - @return: true if success + add_extra_line(ea, isprev, format) -> bool + @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) -> '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 *) - @return: true if success + add_pgm_cmt(format) -> 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_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: 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(builtins.object) - | Proxy of C++ bgcolors_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> bgcolors_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_bgcolors_t(...) - | delete_bgcolors_t(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 + add_sourcefile(ea1, ea2, filename) -> bool + @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 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 + calc_bg_color(ea) -> bgcolor_t + @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 + calc_prefix_color(ea) -> color_t + @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 * + encidx: int + 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) + ea: ea_t + 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: linear address (C++: ea_t) - @return: success + del_sourcefile(ea) -> bool + @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) + ea: ea_t + what: int Help on function generate_disasm_line in module ida_lines: generate_disasm_line(*args) -> 'qstring *' generate_disasm_line(ea, flags=0) -> str + ea: ea_t + flags: int 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 @@ -51012,25 +61056,43 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) -> 'int' get_extra_cmt(ea, what) -> ssize_t + ea: ea_t + 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 + ea: ea_t + 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 + get_sourcefile(ea, bounds=None) -> char const * + @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 install_user_defined_prefix in module ida_lines: + +install_user_defined_prefix(*args) -> '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. + + install_user_defined_prefix(prefix_len, udp, owner) -> bool + @param prefix_len: prefixed length. if 0, then uninstall UDP (C++: + size_t) + @param udp: object to generate user-defined prefix (C++: struct + user_defined_prefix_t *) + @param owner: pointer to the plugin_t that owns UDP if non-NULL, + then the object will be uninstalled and destroyed when + the plugin gets unloaded (C++: const void *) Help on function requires_color_esc in module ida_lines: @@ -51038,107 +61100,125 @@ 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 + Deprecated. Please use install_user_defined_prefix() instead 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) + tag_addr(ea) -> PyObject * + @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 + tag_advance(line, cnt) -> int + @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 *' + Remove color escape sequences from a string. + 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 + nonnul_instr: char const * + @return: length of resulting string, -1 if error 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 + tag_skipcode(line) -> int + @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 + tag_skipcodes(line) -> int + @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 + tag_strlen(line) -> ssize_t + @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) + ea: ea_t + what: int + 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 + | prefix_len: size_t + | 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' + | This callback must be overridden by the derived class. + | + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) + | @param ea: the current address (C++: ea_t) + | @param insn: the current instruction. if the current item is not an + | instruction, then insn.itype is zero. - an + | ida_ua.insn_t, or an address (C++: const insn_t &) + | @param lnnum (C++: int) + | @param indent: see explanations for gen_printf() (C++: int) + | @param line: the line to be generated. the line usually contains color + | tags. this argument can be examined to decide whether to + | generate the prefix. (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data 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_lines EPYDOC INJECTIONS === ida_lines.COLOR_ADDR_SIZE @@ -51461,193 +61541,169 @@ Void operand. 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: 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 + base2file(fp, pos, ea1, ea2) -> int + @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) -> 'bool' - 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 + build_snapshot_tree(root) -> bool + @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) -> 'void' clr_database_flag(dbfl) + @param dbfl (C++: 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 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) + extract_module_from_archive(fname, is_remote=False) -> PyObject * + fname: char const * + @param is_remote: is the input file remote? (C++: bool) + @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: 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) + file2base(li, pos, ea1, ea2, patchable) -> int + @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) + @retval: 1 - ok + @retval: 0 - read error, a warning is displayed 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) - @return: pointer to plugin description block + find_plugin(name, load_if_needed=False) -> plugin_t * + @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) -> '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 + gen_exe_file(fp) -> int + @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 + @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. '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 + gen_file(otype, fp, ea1, ea2, flags) -> int + @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 + @retval: 0 - can't generate exe file + @retval: 1 - ok 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 *) + get_basic_file_type(li) -> filetype_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}. - - @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) + get_fileregion_ea(offset) -> ea_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. - @param ea (C++: ea_t) + get_fileregion_offset(ea) -> qoff64_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 + get_path(pt) -> char const * + @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) -> '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 NULL if there we no options specified - @param plugin (C++: const char *) + get_plugin_options(plugin) -> char const * + @param plugin (C++: const char *) Help on class idp_desc_t in module ida_loader: @@ -51733,62 +61789,51 @@ class idp_name_t(builtins.object) 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) - @return: the state of the flag (set or cleared) + is_database_flag(dbfl) -> bool + @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) -> '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) + load_and_run_plugin(name, arg) -> bool + @param name (C++: const char *) + @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: 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) + load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool + @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) + @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, @@ -51796,14 +61841,16 @@ load_ids_module(*args) -> 'int' 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 *) + load_ids_module(fname) -> int + @param fname: name of file to apply (C++: char *) + @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 * - - Loads a plugin @return: - None if plugin could not be loaded @@ -51846,8 +61893,6 @@ 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 ea: start linear addresses @@ -51920,20 +61965,18 @@ class plugin_info_t(builtins.object) 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: - @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 *) + process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str + @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: @@ -51944,13 +61987,15 @@ class qvector_snapshotvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< snapshot_t * > const & | | __getitem__(self, *args) -> 'snapshot_t *const &' | __getitem__(self, i) -> snapshot_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_snapshotvec_t - | __init__(self, x) -> qvector_snapshotvec_t + | 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 +62005,29 @@ class qvector_snapshotvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< snapshot_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: snapshot_t *const & | | __swig_destroy__ = delete_qvector_snapshotvec_t(...) | delete_qvector_snapshotvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: snapshot_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: snapshot_t *const & | | at(self, *args) -> 'snapshot_t *const &' | at(self, _idx) -> snapshot_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52000,49 +62051,70 @@ class qvector_snapshotvec_t(builtins.object) | | erase(self, *args) -> 'qvector< snapshot_t * >::iterator' | erase(self, it) -> qvector< snapshot_t * >::iterator + | it: qvector< snapshot_t * >::iterator + | + | | erase(self, first, last) -> qvector< snapshot_t * >::iterator + | first: qvector< snapshot_t * >::iterator + | 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 + | x: snapshot_t *const & + | + | | find(self, x) -> qvector< snapshot_t * >::const_iterator + | x: snapshot_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: snapshot_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: snapshot_t ** + | len: size_t | | insert(self, *args) -> 'qvector< snapshot_t * >::iterator' | insert(self, it, x) -> qvector< snapshot_t * >::iterator + | it: qvector< snapshot_t * >::iterator + | x: snapshot_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'snapshot_t *&' | push_back(self, x) - | push_back(self) -> snapshot_t *& + | x: snapshot_t *const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: snapshot_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< snapshot_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52067,25 +62139,21 @@ class qvector_snapshotvec_t(builtins.object) 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: 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 + reload_file(file, is_remote) -> bool + @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) -> 'bool' run_plugin(plg, arg) -> bool - - Runs a plugin @param plg: A plugin object (returned by load_plugin()) @return: Boolean @@ -52093,41 +62161,35 @@ run_plugin(*args) -> 'bool' 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.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 + save_database(outfile, flags, root=None, attr=None) -> bool + @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) -> '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) + set_database_flag(dbfl, cnd=True) + @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) -> '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 *) + set_path(pt, 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: @@ -52138,24 +62200,30 @@ class snapshot_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: snapshot_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: snapshot_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: snapshot_t const & | | __init__(self, *args) | __init__(self) -> snapshot_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: snapshot_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: snapshot_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: snapshot_t const & | | __repr__ = _swig_repr(self) | @@ -52251,43 +62319,43 @@ iterated data, etc) ida_loader.GENFLG_ASMINC """ - 'OFILE_ASM' , 'OFILE_LST' : gen information only about types +'OFILE_ASM' , 'OFILE_LST' : gen information only about types """ ida_loader.GENFLG_ASMTYPE """ - 'OFILE_ASM' , 'OFILE_LST' : gen information about types too +'OFILE_ASM' , 'OFILE_LST' : gen information about types too """ ida_loader.GENFLG_GENHTML """ - 'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' +'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' will be used) """ ida_loader.GENFLG_IDCTYPE """ - 'OFILE_IDC' : gen only information about types +'OFILE_IDC' : gen only information about types """ ida_loader.GENFLG_MAPDMNG """ - 'OFILE_MAP' : demangle names +'OFILE_MAP' : demangle names """ ida_loader.GENFLG_MAPLOC """ - 'OFILE_MAP' : include local names +'OFILE_MAP' : include local names """ ida_loader.GENFLG_MAPNAME """ - 'OFILE_MAP' : include dummy names +'OFILE_MAP' : include dummy names """ ida_loader.GENFLG_MAPSEG """ - 'OFILE_MAP' : generate map of segments +'OFILE_MAP' : generate map of segments """ ida_loader.LDRF_RELOAD @@ -52407,16 +62475,23 @@ Help on function apply_metadata in module ida_lumina: apply_metadata(*args) -> 'void' apply_metadata(ea, fi, flags=0) + @param ea (C++: ea_t) + @param fi (C++: const func_info_t &) + @param flags (C++: uint32) Help on function backup_metadata in module ida_lumina: backup_metadata(*args) -> 'bool' backup_metadata(ea) -> bool + @param ea (C++: 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 (C++: func_info_t *) + @param pfn (C++: const func_t *) + @param append_metadata (C++: metadata_appender_t *) Help on function create_simple_diff_handler in module ida_lumina: @@ -52427,16 +62502,22 @@ 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 (C++: const func_t *) Help on function diff_metadata in module ida_lumina: diff_metadata(*args) -> 'bool' diff_metadata(handler, left, right, flags=0) -> bool + @param handler (C++: func_md_diff_handler_t &) + @param left (C++: const func_info_t &) + @param right (C++: const func_info_t &) + @param flags (C++: uint32) Help on function ea_to_ea64 in module ida_lumina: ea_to_ea64(*args) -> 'ea64_t' ea_to_ea64(ea) -> ea64_t + @param ea (C++: ea_t) Help on class extra_cmt_t in module ida_lumina: @@ -52475,6 +62556,7 @@ class extra_cmt_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t + | @param pfn (C++: const func_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -52500,10 +62582,11 @@ class extra_cmts_t(builtins.object) | | __getitem__(self, *args) -> 'extra_cmt_t const &' | __getitem__(self, i) -> extra_cmt_t + | i: size_t | | __init__(self, *args) | __init__(self) -> extra_cmts_t - | __init__(self, x) -> extra_cmts_t + | 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,12 +62598,15 @@ class extra_cmts_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52544,7 +62630,12 @@ class extra_cmts_t(builtins.object) | | erase(self, *args) -> 'qvector< extra_cmt_t >::iterator' | erase(self, it) -> extra_cmt_t + | it: qvector< extra_cmt_t >::iterator + | + | | erase(self, first, last) -> extra_cmt_t + | first: qvector< extra_cmt_t >::iterator + | last: qvector< extra_cmt_t >::iterator | | extract(self, *args) -> 'extra_cmt_t *' | extract(self) -> extra_cmt_t @@ -52554,35 +62645,47 @@ class extra_cmts_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=extra_cmt_t()) + | x: extra_cmt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: extra_cmt_t * + | len: size_t | | insert(self, *args) -> 'qvector< extra_cmt_t >::iterator' | insert(self, it, x) -> extra_cmt_t + | it: qvector< extra_cmt_t >::iterator + | x: extra_cmt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'extra_cmt_t &' | push_back(self, x) - | push_back(self) -> extra_cmt_t + | x: extra_cmt_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: extra_cmt_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< extra_cmt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52603,31 +62706,43 @@ 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 (C++: extra_cmts_t *) + @param ptr (C++: const uchar *) 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 (C++: frame_desc_t *) + @param ptr (C++: const uchar *) 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 (C++: insn_cmts_t *) + @param ptr (C++: const uchar *) 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 (C++: insn_ops_reprs_t *) + @param ptr (C++: const uchar *) 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 (C++: md_type_parts_t *) + 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 (C++: user_stkpnts_t *) + @param ptr (C++: const uchar *) Help on class frame_desc_t in module ida_lumina: @@ -52725,10 +62840,11 @@ class frame_mems_t(builtins.object) | | __getitem__(self, *args) -> 'frame_mem_t const &' | __getitem__(self, i) -> frame_mem_t + | i: size_t | | __init__(self, *args) | __init__(self) -> frame_mems_t - | __init__(self, x) -> frame_mems_t + | 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,12 +62856,15 @@ class frame_mems_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52769,7 +62888,12 @@ class frame_mems_t(builtins.object) | | erase(self, *args) -> 'qvector< frame_mem_t >::iterator' | erase(self, it) -> frame_mem_t + | it: qvector< frame_mem_t >::iterator + | + | | erase(self, first, last) -> frame_mem_t + | first: qvector< frame_mem_t >::iterator + | last: qvector< frame_mem_t >::iterator | | extract(self, *args) -> 'frame_mem_t *' | extract(self) -> frame_mem_t @@ -52779,35 +62903,47 @@ class frame_mems_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=frame_mem_t()) + | x: frame_mem_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: frame_mem_t * + | len: size_t | | insert(self, *args) -> 'qvector< frame_mem_t >::iterator' | insert(self, it, x) -> frame_mem_t + | it: qvector< frame_mem_t >::iterator + | x: frame_mem_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'frame_mem_t &' | push_back(self, x) - | push_back(self) -> frame_mem_t + | x: frame_mem_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: frame_mem_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< frame_mem_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52880,10 +63016,11 @@ 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 + | i: size_t | | __init__(self, *args) | __init__(self) -> func_info_and_frequency_vec_t - | __init__(self, x) -> func_info_and_frequency_vec_t + | 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,12 +63032,15 @@ class func_info_and_frequency_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52924,7 +63064,12 @@ class func_info_and_frequency_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< func_info_and_frequency_t >::iterator' | erase(self, it) -> func_info_and_frequency_t + | it: qvector< func_info_and_frequency_t >::iterator + | + | | erase(self, first, last) -> func_info_and_frequency_t + | first: qvector< func_info_and_frequency_t >::iterator + | last: qvector< func_info_and_frequency_t >::iterator | | extract(self, *args) -> 'func_info_and_frequency_t *' | extract(self) -> func_info_and_frequency_t @@ -52934,35 +63079,47 @@ class func_info_and_frequency_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_and_frequency_t()) + | x: func_info_and_frequency_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: func_info_and_frequency_t * + | len: size_t | | insert(self, *args) -> 'qvector< func_info_and_frequency_t >::iterator' | insert(self, it, x) -> func_info_and_frequency_t + | it: qvector< func_info_and_frequency_t >::iterator + | 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) - | push_back(self) -> func_info_and_frequency_t + | x: func_info_and_frequency_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: func_info_and_frequency_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< func_info_and_frequency_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53035,10 +63192,11 @@ 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 + | i: size_t | | __init__(self, *args) | __init__(self) -> func_info_and_pattern_vec_t - | __init__(self, x) -> func_info_and_pattern_vec_t + | 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,12 +63208,15 @@ class func_info_and_pattern_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -53079,7 +63240,12 @@ class func_info_and_pattern_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< func_info_and_pattern_t >::iterator' | erase(self, it) -> func_info_and_pattern_t + | it: qvector< func_info_and_pattern_t >::iterator + | + | | erase(self, first, last) -> func_info_and_pattern_t + | first: qvector< func_info_and_pattern_t >::iterator + | last: qvector< func_info_and_pattern_t >::iterator | | extract(self, *args) -> 'func_info_and_pattern_t *' | extract(self) -> func_info_and_pattern_t @@ -53089,35 +63255,47 @@ class func_info_and_pattern_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_and_pattern_t()) + | x: func_info_and_pattern_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: func_info_and_pattern_t * + | len: size_t | | insert(self, *args) -> 'qvector< func_info_and_pattern_t >::iterator' | insert(self, it, x) -> func_info_and_pattern_t + | it: qvector< func_info_and_pattern_t >::iterator + | 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) - | push_back(self) -> func_info_and_pattern_t + | x: func_info_and_pattern_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: func_info_and_pattern_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< func_info_and_pattern_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53230,10 +63408,11 @@ 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 + | 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 + | 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,12 +63424,15 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -53274,7 +63456,12 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::iterator' | erase(self, it) -> func_info_pattern_and_frequency_t + | it: qvector< func_info_pattern_and_frequency_t >::iterator + | + | | erase(self, first, last) -> func_info_pattern_and_frequency_t + | first: qvector< func_info_pattern_and_frequency_t >::iterator + | 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,35 +63471,47 @@ class func_info_pattern_and_frequency_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_pattern_and_frequency_t()) + | x: func_info_pattern_and_frequency_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: func_info_pattern_and_frequency_t * + | len: size_t | | insert(self, *args) -> 'qvector< func_info_pattern_and_frequency_t >::iterator' | insert(self, it, x) -> func_info_pattern_and_frequency_t + | it: qvector< func_info_pattern_and_frequency_t >::iterator + | 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) - | push_back(self) -> func_info_pattern_and_frequency_t + | x: func_info_pattern_and_frequency_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: func_info_pattern_and_frequency_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< func_info_pattern_and_frequency_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53374,10 +63573,11 @@ class func_info_vec_t(builtins.object) | | __getitem__(self, *args) -> 'func_info_t const &' | __getitem__(self, i) -> func_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> func_info_vec_t - | __init__(self, x) -> func_info_vec_t + | 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,12 +63589,15 @@ class func_info_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -53418,7 +63621,12 @@ class func_info_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< func_info_t >::iterator' | erase(self, it) -> func_info_t + | it: qvector< func_info_t >::iterator + | + | | erase(self, first, last) -> func_info_t + | first: qvector< func_info_t >::iterator + | last: qvector< func_info_t >::iterator | | extract(self, *args) -> 'func_info_t *' | extract(self) -> func_info_t @@ -53428,35 +63636,47 @@ class func_info_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=func_info_t()) + | x: func_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: func_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< func_info_t >::iterator' | insert(self, it, x) -> func_info_t + | it: qvector< func_info_t >::iterator + | x: func_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'func_info_t &' | push_back(self, x) - | push_back(self) -> func_info_t + | x: func_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: func_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< func_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53484,6 +63704,7 @@ class func_md_diff_handler_t(builtins.object) | | __init__(self, *args) | __init__(self) -> func_md_diff_handler_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -53492,30 +63713,60 @@ 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 (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_extra_comment_changed(self, *args) -> 'void' | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param is_prev (C++: bool) | | on_frame_member_changed(self, *args) -> 'void' | on_frame_member_changed(self, offset, l, r) + | @param offset (C++: uint32) + | @param l (C++: const frame_mem_t *) + | @param r (C++: const frame_mem_t *) | | on_function_comment_changed(self, *args) -> 'void' | on_function_comment_changed(self, l, r, rep) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_insn_ops_repr_changed(self, *args) -> 'void' | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const insn_ops_repr_t *) + | @param r (C++: const insn_ops_repr_t *) | | on_name_changed(self, *args) -> 'void' | on_name_changed(self, l, r) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) | | on_proto_changed(self, *args) -> 'void' | on_proto_changed(self, l, r) + | @param l (C++: const md_type_parts_t &) + | @param r (C++: const md_type_parts_t &) | | on_score_changed(self, *args) -> 'void' | on_score_changed(self, l, r) + | @param l (C++: uint32) + | @param r (C++: uint32) | | on_user_stkpnt_changed(self, *args) -> 'void' | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const int64 *) + | @param r (C++: const int64 *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53533,6 +63784,7 @@ 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 (C++: lumina_rpc_packet_t) Help on function get_server_connection in module ida_lumina: @@ -53543,42 +63795,7 @@ 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 (C++: ea_t) Help on class input_file_t in module ida_lumina: @@ -53647,6 +63864,7 @@ class insn_cmt_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t + | @param pfn (C++: const func_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -53672,10 +63890,11 @@ class insn_cmts_t(builtins.object) | | __getitem__(self, *args) -> 'insn_cmt_t const &' | __getitem__(self, i) -> insn_cmt_t + | i: size_t | | __init__(self, *args) | __init__(self) -> insn_cmts_t - | __init__(self, x) -> insn_cmts_t + | 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,12 +63906,15 @@ class insn_cmts_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -53716,7 +63938,12 @@ class insn_cmts_t(builtins.object) | | erase(self, *args) -> 'qvector< insn_cmt_t >::iterator' | erase(self, it) -> insn_cmt_t + | it: qvector< insn_cmt_t >::iterator + | + | | erase(self, first, last) -> insn_cmt_t + | first: qvector< insn_cmt_t >::iterator + | last: qvector< insn_cmt_t >::iterator | | extract(self, *args) -> 'insn_cmt_t *' | extract(self) -> insn_cmt_t @@ -53726,35 +63953,47 @@ class insn_cmts_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=insn_cmt_t()) + | x: insn_cmt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: insn_cmt_t * + | len: size_t | | insert(self, *args) -> 'qvector< insn_cmt_t >::iterator' | insert(self, it, x) -> insn_cmt_t + | it: qvector< insn_cmt_t >::iterator + | x: insn_cmt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'insn_cmt_t &' | push_back(self, x) - | push_back(self) -> insn_cmt_t + | x: insn_cmt_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: insn_cmt_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< insn_cmt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53811,6 +64050,7 @@ class insn_ops_repr_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t + | @param pfn (C++: const func_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -53836,10 +64076,11 @@ class insn_ops_reprs_t(builtins.object) | | __getitem__(self, *args) -> 'insn_ops_repr_t const &' | __getitem__(self, i) -> insn_ops_repr_t + | i: size_t | | __init__(self, *args) | __init__(self) -> insn_ops_reprs_t - | __init__(self, x) -> insn_ops_reprs_t + | 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,12 +64092,15 @@ class insn_ops_reprs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -53880,7 +64124,12 @@ class insn_ops_reprs_t(builtins.object) | | erase(self, *args) -> 'qvector< insn_ops_repr_t >::iterator' | erase(self, it) -> insn_ops_repr_t + | it: qvector< insn_ops_repr_t >::iterator + | + | | erase(self, first, last) -> insn_ops_repr_t + | first: qvector< insn_ops_repr_t >::iterator + | last: qvector< insn_ops_repr_t >::iterator | | extract(self, *args) -> 'insn_ops_repr_t *' | extract(self) -> insn_ops_repr_t @@ -53890,35 +64139,47 @@ class insn_ops_reprs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=insn_ops_repr_t()) + | x: insn_ops_repr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: insn_ops_repr_t * + | len: size_t | | insert(self, *args) -> 'qvector< insn_ops_repr_t >::iterator' | insert(self, it, x) -> insn_ops_repr_t + | it: qvector< insn_ops_repr_t >::iterator + | 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) - | push_back(self) -> insn_ops_repr_t + | x: insn_ops_repr_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: insn_ops_repr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< insn_ops_repr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53952,6 +64213,7 @@ class insn_site_t(builtins.object) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t + | @param pfn (C++: const func_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53988,19 +64250,34 @@ class lumina_client_t(builtins.object) | | get_pop(self, *args) -> 'pkt_get_pop_result_t *' | get_pop(self, nresults=10) -> pkt_get_pop_result_t + | @param nresults (C++: uint32) | | is_pattern_id(self, *args) -> 'bool' | is_pattern_id(self, pid, md5) -> bool + | @param pid (C++: const pattern_id_t &) + | @param md5 (C++: const md5_t &) | | 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 (C++: pattern_ids_t &) + | @param pull_md_flags (C++: uint32) + | + | | pull_md(self, funcs, pull_md_flags=0) -> pkt_pull_md_result_t + | funcs: eavec_t * + | @param pull_md_flags (C++: uint32) | | push_md(self, *args) -> 'bool' | push_md(self, result, opts, append_metadata=None, flags=0) -> bool + | @param result (C++: push_md_result_t *) + | @param opts (C++: const push_md_opts_t &) + | @param append_metadata (C++: metadata_appender_t *) + | @param flags (C++: uint32) | | set_pattern_id_md5(self, *args) -> 'void' | set_pattern_id_md5(self, out, md5) + | @param out (C++: pattern_id_t *) + | @param md5 (C++: const md5_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -54023,13 +64300,15 @@ class lumina_op_res_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< lumina_op_res_t > const & | | __getitem__(self, *args) -> 'lumina_op_res_t const &' | __getitem__(self, i) -> lumina_op_res_t const & + | i: size_t | | __init__(self, *args) | __init__(self) -> lumina_op_res_vec_t - | __init__(self, x) -> lumina_op_res_vec_t + | 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 +64318,29 @@ class lumina_op_res_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< lumina_op_res_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: lumina_op_res_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: lumina_op_res_t const & | | at(self, *args) -> 'lumina_op_res_t const &' | at(self, _idx) -> lumina_op_res_t const & + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -54079,52 +64364,74 @@ 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 + | it: qvector< lumina_op_res_t >::iterator + | + | | erase(self, first, last) -> qvector< lumina_op_res_t >::iterator + | first: qvector< lumina_op_res_t >::iterator + | 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 + | x: lumina_op_res_t const & + | + | | find(self, x) -> qvector< lumina_op_res_t >::const_iterator + | x: lumina_op_res_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lumina_op_res_t()) + | x: lumina_op_res_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: lumina_op_res_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: lumina_op_res_t * + | len: size_t | | insert(self, *args) -> 'qvector< lumina_op_res_t >::iterator' | insert(self, it, x) -> qvector< lumina_op_res_t >::iterator + | it: qvector< lumina_op_res_t >::iterator + | 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) - | push_back(self) -> lumina_op_res_t & + | x: lumina_op_res_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: lumina_op_res_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< lumina_op_res_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -54155,12 +64462,14 @@ class md_type_parts_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: md_type_parts_t const & | | __init__(self, *args) | __init__(self) -> md_type_parts_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: md_type_parts_t const & | | __repr__ = _swig_repr(self) | @@ -54202,6 +64511,7 @@ class metadata_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self, _md) -> metadata_iterator_t + | _md: metadata_t const & | | __repr__ = _swig_repr(self) | @@ -54239,6 +64549,10 @@ 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 (C++: uchar) + @param ptr (C++: const uchar *) + @param len (C++: size_t) + @param version (C++: int) Help on class oprepr_t in module ida_lumina: @@ -54835,6 +65149,7 @@ class push_md_opts_t(builtins.object) | | __init__(self, *args) | __init__(self, mfs=size_t(-1)) -> push_md_opts_t + | mfs: size_t | | __repr__ = _swig_repr(self) | @@ -54899,11 +65214,13 @@ Help on function revert_metadata in module ida_lumina: revert_metadata(*args) -> 'bool' revert_metadata(ea) -> bool + @param ea (C++: ea_t) Help on function score_metadata in module ida_lumina: score_metadata(*args) -> 'uint32' score_metadata(fi) -> uint32 + @param fi (C++: const func_info_t &) Help on class serialized_tinfo in module ida_lumina: @@ -54952,6 +65269,7 @@ class simple_diff_handler_t(func_md_diff_handler_t) | | __init__(self, *args, **kwargs) | __init__(self) -> func_md_diff_handler_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -54960,30 +65278,60 @@ 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 (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_extra_comment_changed(self, *args) -> 'void' | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param is_prev (C++: bool) | | on_frame_member_changed(self, *args) -> 'void' | on_frame_member_changed(self, offset, l, r) + | @param offset (C++: uint32) + | @param l (C++: const frame_mem_t *) + | @param r (C++: const frame_mem_t *) | | on_function_comment_changed(self, *args) -> 'void' | on_function_comment_changed(self, l, r, rep) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_insn_ops_repr_changed(self, *args) -> 'void' | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const insn_ops_repr_t *) + | @param r (C++: const insn_ops_repr_t *) | | on_name_changed(self, *args) -> 'void' | on_name_changed(self, l, r) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) | | on_proto_changed(self, *args) -> 'void' | on_proto_changed(self, l, r) + | @param l (C++: const md_type_parts_t &) + | @param r (C++: const md_type_parts_t &) | | on_score_changed(self, *args) -> 'void' | on_score_changed(self, l, r) + | @param l (C++: uint32) + | @param r (C++: uint32) | | on_user_stkpnt_changed(self, *args) -> 'void' | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const int64 *) + | @param r (C++: const int64 *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55026,6 +65374,7 @@ class simple_idb_diff_handler_t(simple_diff_handler_t) | | __init__(self, *args, **kwargs) | __init__(self) -> func_md_diff_handler_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -55049,30 +65398,60 @@ 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 (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_extra_comment_changed(self, *args) -> 'void' | on_extra_comment_changed(self, fchunk_nr, fchunk_off, l, r, is_prev) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param is_prev (C++: bool) | | on_frame_member_changed(self, *args) -> 'void' | on_frame_member_changed(self, offset, l, r) + | @param offset (C++: uint32) + | @param l (C++: const frame_mem_t *) + | @param r (C++: const frame_mem_t *) | | on_function_comment_changed(self, *args) -> 'void' | on_function_comment_changed(self, l, r, rep) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) + | @param rep (C++: bool) | | on_insn_ops_repr_changed(self, *args) -> 'void' | on_insn_ops_repr_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const insn_ops_repr_t *) + | @param r (C++: const insn_ops_repr_t *) | | on_name_changed(self, *args) -> 'void' | on_name_changed(self, l, r) + | @param l (C++: const qstring *) + | @param r (C++: const qstring *) | | on_proto_changed(self, *args) -> 'void' | on_proto_changed(self, l, r) + | @param l (C++: const md_type_parts_t &) + | @param r (C++: const md_type_parts_t &) | | on_score_changed(self, *args) -> 'void' | on_score_changed(self, l, r) + | @param l (C++: uint32) + | @param r (C++: uint32) | | on_user_stkpnt_changed(self, *args) -> 'void' | on_user_stkpnt_changed(self, fchunk_nr, fchunk_off, l, r) + | @param fchunk_nr (C++: uint32) + | @param fchunk_off (C++: uint32) + | @param l (C++: const int64 *) + | @param r (C++: const int64 *) | | ---------------------------------------------------------------------- | Data descriptors inherited from simple_diff_handler_t: @@ -55139,10 +65518,11 @@ class skipped_funcs_t(builtins.object) | | __getitem__(self, *args) -> 'skipped_func_t const &' | __getitem__(self, i) -> skipped_func_t + | i: size_t | | __init__(self, *args) | __init__(self) -> skipped_funcs_t - | __init__(self, x) -> skipped_funcs_t + | 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,12 +65534,15 @@ class skipped_funcs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -55183,7 +65566,12 @@ class skipped_funcs_t(builtins.object) | | erase(self, *args) -> 'qvector< skipped_func_t >::iterator' | erase(self, it) -> skipped_func_t + | it: qvector< skipped_func_t >::iterator + | + | | erase(self, first, last) -> skipped_func_t + | first: qvector< skipped_func_t >::iterator + | last: qvector< skipped_func_t >::iterator | | extract(self, *args) -> 'skipped_func_t *' | extract(self) -> skipped_func_t @@ -55193,35 +65581,47 @@ class skipped_funcs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=skipped_func_t()) + | x: skipped_func_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: skipped_func_t * + | len: size_t | | insert(self, *args) -> 'qvector< skipped_func_t >::iterator' | insert(self, it, x) -> skipped_func_t + | it: qvector< skipped_func_t >::iterator + | x: skipped_func_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'skipped_func_t &' | push_back(self, x) - | push_back(self) -> skipped_func_t + | x: skipped_func_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: skipped_func_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< skipped_func_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -55242,6 +65642,7 @@ Help on function split_metadata in module ida_lumina: split_metadata(*args) -> 'PyObject *' split_metadata(md) -> PyObject * + md: metadata_t const & Help on class user_identification_t in module ida_lumina: @@ -55313,6 +65714,7 @@ class user_stkpnt_t(insn_site_t) | | toea(self, *args) -> 'ea_t' | toea(self, pfn) -> ea_t + | @param pfn (C++: const func_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from insn_site_t: @@ -55338,10 +65740,11 @@ class user_stkpnts_t(builtins.object) | | __getitem__(self, *args) -> 'user_stkpnt_t const &' | __getitem__(self, i) -> user_stkpnt_t + | i: size_t | | __init__(self, *args) | __init__(self) -> user_stkpnts_t - | __init__(self, x) -> user_stkpnts_t + | 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,12 +65756,15 @@ class user_stkpnts_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -55382,7 +65788,12 @@ class user_stkpnts_t(builtins.object) | | erase(self, *args) -> 'qvector< user_stkpnt_t >::iterator' | erase(self, it) -> user_stkpnt_t + | it: qvector< user_stkpnt_t >::iterator + | + | | erase(self, first, last) -> user_stkpnt_t + | first: qvector< user_stkpnt_t >::iterator + | last: qvector< user_stkpnt_t >::iterator | | extract(self, *args) -> 'user_stkpnt_t *' | extract(self) -> user_stkpnt_t @@ -55392,35 +65803,47 @@ class user_stkpnts_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=user_stkpnt_t()) + | x: user_stkpnt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: user_stkpnt_t * + | len: size_t | | insert(self, *args) -> 'qvector< user_stkpnt_t >::iterator' | insert(self, it, x) -> user_stkpnt_t + | it: qvector< user_stkpnt_t >::iterator + | x: user_stkpnt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'user_stkpnt_t &' | push_back(self, x) - | push_back(self) -> user_stkpnt_t + | x: user_stkpnt_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: user_stkpnt_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< user_stkpnt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -55474,21 +65897,40 @@ class bookmarks_t(builtins.object) | | erase(*args) -> 'bool' | erase(e, index, ud) -> bool + | e: lochist_entry_t const & + | index: uint32 + | ud: void * | | find_index(*args) -> 'uint32' | find_index(e, ud) -> uint32 + | e: lochist_entry_t const & + | ud: void * | | get(*args) -> 'bool' | get(out_entry, out_desc, index, ud) -> bool + | out_entry: lochist_entry_t * + | out_desc: qstring * + | index: uint32 * + | ud: void * | | get_desc(*args) -> 'qstring *' | get_desc(e, index, ud) -> bool + | e: lochist_entry_t const & + | index: uint32 + | ud: void * | | mark(*args) -> 'uint32' | mark(e, index, title, desc, ud) -> uint32 + | e: lochist_entry_t const & + | index: uint32 + | title: char const * + | desc: char const * + | ud: void * | | size(*args) -> 'uint32' | size(e, ud) -> uint32 + | e: lochist_entry_t const & + | ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55506,31 +65948,50 @@ Help on function bookmarks_t_erase in module ida_moves: bookmarks_t_erase(*args) -> 'bool' bookmarks_t_erase(e, index, ud) -> bool + e: lochist_entry_t const & + index: uint32 + 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 + e: lochist_entry_t const & + 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 + out_entry: lochist_entry_t * + out_desc: qstring * + index: uint32 * + 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 + e: lochist_entry_t const & + index: uint32 + 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 + e: lochist_entry_t const & + index: uint32 + title: char const * + desc: char const * + ud: void * Help on function bookmarks_t_size in module ida_moves: bookmarks_t_size(*args) -> 'uint32' bookmarks_t_size(e, ud) -> uint32 + e: lochist_entry_t const & + ud: void * Help on class graph_location_info_t in module ida_moves: @@ -55541,12 +66002,14 @@ class graph_location_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: graph_location_info_t const & | | __init__(self, *args) | __init__(self) -> graph_location_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: graph_location_info_t const & | | __repr__ = _swig_repr(self) | @@ -55586,16 +66049,14 @@ 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 + | p: place_t const * + | r: renderer_info_t const & + | + | | __init__(self, other) -> lochist_entry_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, r) -> bool + | other: lochist_entry_t const & | | __repr__ = _swig_repr(self) | @@ -55604,6 +66065,7 @@ class lochist_entry_t(builtins.object) | | acquire_place(self, *args) -> 'void' | acquire_place(self, in_p) + | @param in_p (C++: place_t *) | | is_valid(self, *args) -> 'bool' | is_valid(self) -> bool @@ -55618,6 +66080,7 @@ class lochist_entry_t(builtins.object) | | set_place(self, *args) -> 'void' | set_place(self, p) + | @param p (C++: const place_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -55636,11 +66099,6 @@ class lochist_entry_t(builtins.object) | | thisown | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None Help on class lochist_t in module ida_moves: @@ -55659,6 +66117,8 @@ class lochist_t(builtins.object) | | back(self, *args) -> 'bool' | back(self, cnt, try_to_unhide) -> bool + | @param cnt (C++: uint32) + | @param try_to_unhide (C++: bool) | | clear(self, *args) -> 'void' | clear(self) @@ -55668,9 +66128,13 @@ class lochist_t(builtins.object) | | fwd(self, *args) -> 'bool' | fwd(self, cnt, try_to_unhide) -> bool + | @param cnt (C++: uint32) + | @param try_to_unhide (C++: bool) | | get(self, *args) -> 'bool' | get(self, out, index) -> bool + | @param out (C++: lochist_entry_t *) + | @param index (C++: uint32) | | get_current(self, *args) -> 'lochist_entry_t const &' | get_current(self) -> lochist_entry_t @@ -55683,12 +66147,18 @@ class lochist_t(builtins.object) | | init(self, *args) -> 'bool' | init(self, stream_name, _defpos, _ud, _flags) -> bool + | @param stream_name (C++: const char *) + | @param _defpos (C++: const place_t *) + | @param _ud (C++: void *) + | @param _flags (C++: 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 (C++: bool) + | @param e (C++: const lochist_entry_t &) | | netcode(self, *args) -> 'nodeidx_t' | netcode(self) -> nodeidx_t @@ -55698,12 +66168,17 @@ class lochist_t(builtins.object) | | seek(self, *args) -> 'bool' | seek(self, index, try_to_unhide) -> bool + | @param index (C++: uint32) + | @param try_to_unhide (C++: bool) | | set(self, *args) -> 'void' | set(self, index, e) + | @param index (C++: uint32) + | @param e (C++: const lochist_entry_t &) | | set_current(self, *args) -> 'void' | set_current(self, e) + | @param e (C++: const lochist_entry_t &) | | size(self, *args) -> 'uint32' | size(self) -> uint32 @@ -55729,12 +66204,14 @@ class renderer_info_pos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: renderer_info_pos_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_pos_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: renderer_info_pos_t const & | | __repr__ = _swig_repr(self) | @@ -55776,12 +66253,14 @@ class renderer_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: renderer_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: renderer_info_t const & | | __repr__ = _swig_repr(self) | @@ -55826,12 +66305,17 @@ class segm_move_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: segm_move_info_t const & | | __init__(self, *args) | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t + | _from: ea_t + | _to: ea_t + | _sz: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: segm_move_info_t const & | | __repr__ = _swig_repr(self) | @@ -55873,13 +66357,15 @@ class segm_move_info_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> segm_move_info_vec_t - | __init__(self, x) -> segm_move_info_vec_t + | 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,23 +66375,29 @@ class segm_move_info_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -55929,52 +66421,74 @@ class segm_move_info_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | + | | erase(self, first, last) -> segm_move_info_t + | first: qvector< segm_move_info_t >::iterator + | 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 + | x: segm_move_info_t const & + | + | | find(self, x) -> segm_move_info_t + | x: segm_move_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) + | x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: segm_move_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | 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) - | push_back(self) -> segm_move_info_t + | x: segm_move_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: segm_move_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -56018,6 +66532,7 @@ 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 (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -56030,9 +66545,11 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -56042,18 +66559,24 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: segm_move_info_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -56077,7 +66600,12 @@ class segm_move_infos_t(segm_move_info_vec_t) | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | + | | erase(self, first, last) -> segm_move_info_t + | first: qvector< segm_move_info_t >::iterator + | last: qvector< segm_move_info_t >::iterator | | extract(self, *args) -> 'segm_move_info_t *' | extract(self) -> segm_move_info_t @@ -56087,38 +66615,51 @@ class segm_move_infos_t(segm_move_info_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) + | x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: segm_move_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | 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) - | push_back(self) -> segm_move_info_t + | x: segm_move_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: segm_move_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -56141,18 +66682,18 @@ 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 (C++: switch_info_t *) + @param ea (C++: ea_t) Help on function add_encoding in module ida_nalt: add_encoding(*args) -> 'int' - 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 + add_encoding(encoding) -> int + @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: @@ -56194,132 +66735,154 @@ Help on function clr__bnot0 in module ida_nalt: clr__bnot0(*args) -> 'void' clr__bnot0(ea) + @param ea (C++: ea_t) Help on function clr__bnot1 in module ida_nalt: clr__bnot1(*args) -> 'void' clr__bnot1(ea) + @param ea (C++: ea_t) Help on function clr__invsign0 in module ida_nalt: clr__invsign0(*args) -> 'void' clr__invsign0(ea) + @param ea (C++: ea_t) Help on function clr__invsign1 in module ida_nalt: clr__invsign1(*args) -> 'void' clr__invsign1(ea) + @param ea (C++: ea_t) Help on function clr_abits in module ida_nalt: clr_abits(*args) -> 'void' clr_abits(ea, bits) + @param ea (C++: ea_t) + @param bits (C++: uint32) Help on function clr_align_flow in module ida_nalt: clr_align_flow(*args) -> 'void' clr_align_flow(ea) + @param ea (C++: ea_t) Help on function clr_colored_item in module ida_nalt: clr_colored_item(*args) -> 'void' clr_colored_item(ea) + @param ea (C++: ea_t) Help on function clr_fixed_spd in module ida_nalt: clr_fixed_spd(*args) -> 'void' clr_fixed_spd(ea) + @param ea (C++: ea_t) Help on function clr_has_lname in module ida_nalt: clr_has_lname(*args) -> 'void' clr_has_lname(ea) + @param ea (C++: ea_t) Help on function clr_has_ti in module ida_nalt: clr_has_ti(*args) -> 'void' clr_has_ti(ea) + @param ea (C++: ea_t) Help on function clr_has_ti0 in module ida_nalt: clr_has_ti0(*args) -> 'void' clr_has_ti0(ea) + @param ea (C++: ea_t) Help on function clr_has_ti1 in module ida_nalt: clr_has_ti1(*args) -> 'void' clr_has_ti1(ea) + @param ea (C++: ea_t) Help on function clr_libitem in module ida_nalt: clr_libitem(*args) -> 'void' clr_libitem(ea) + @param ea (C++: ea_t) Help on function clr_lzero0 in module ida_nalt: clr_lzero0(*args) -> 'void' clr_lzero0(ea) + @param ea (C++: ea_t) Help on function clr_lzero1 in module ida_nalt: clr_lzero1(*args) -> 'void' clr_lzero1(ea) + @param ea (C++: ea_t) Help on function clr_noret in module ida_nalt: clr_noret(*args) -> 'void' clr_noret(ea) + @param ea (C++: 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) + clr_notcode(ea) + @param ea (C++: ea_t) Help on function clr_notproc in module ida_nalt: clr_notproc(*args) -> 'void' clr_notproc(ea) + @param ea (C++: ea_t) Help on function clr_retfp in module ida_nalt: clr_retfp(*args) -> 'void' clr_retfp(ea) + @param ea (C++: ea_t) Help on function clr_terse_struc in module ida_nalt: clr_terse_struc(*args) -> 'void' clr_terse_struc(ea) + @param ea (C++: ea_t) Help on function clr_tilcmt in module ida_nalt: clr_tilcmt(*args) -> 'void' clr_tilcmt(ea) + @param ea (C++: ea_t) Help on function clr_usemodsp in module ida_nalt: clr_usemodsp(*args) -> 'void' clr_usemodsp(ea) + @param ea (C++: ea_t) Help on function clr_usersp in module ida_nalt: clr_usersp(*args) -> 'void' clr_usersp(ea) + @param ea (C++: ea_t) Help on function clr_userti in module ida_nalt: clr_userti(*args) -> 'void' clr_userti(ea) + @param ea (C++: ea_t) Help on function clr_zstroff in module ida_nalt: clr_zstroff(*args) -> 'void' clr_zstroff(ea) + @param ea (C++: ea_t) Help on class custom_data_type_ids_fids_array in module ida_nalt: @@ -56330,9 +66893,11 @@ class custom_data_type_ids_fids_array(builtins.object) | | __getitem__(self, *args) -> 'short const &' | __getitem__(self, i) -> short const & + | i: size_t | | __init__(self, *args) | __init__(self, data) -> custom_data_type_ids_fids_array + | data: short (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -56344,6 +66909,8 @@ class custom_data_type_ids_fids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: short const & | | __swig_destroy__ = delete_custom_data_type_ids_fids_array(...) | delete_custom_data_type_ids_fids_array(self) @@ -56381,6 +66948,10 @@ 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 | + | set(self, *args) -> 'void' + | set(self, tid) + | @param tid (C++: tid_t) + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -56402,121 +66973,122 @@ class custom_data_type_ids_t(builtins.object) 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 (C++: ea_t) Help on function del_aflags in module ida_nalt: del_aflags(*args) -> 'void' del_aflags(ea) + @param ea (C++: ea_t) Help on function del_alignment in module ida_nalt: del_alignment(*args) -> 'void' del_alignment(ea) + @param ea (C++: ea_t) Help on function del_array_parameters in module ida_nalt: del_array_parameters(*args) -> 'void' del_array_parameters(ea) + @param ea (C++: 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 (C++: ea_t) Help on function del_encoding in module ida_nalt: del_encoding(*args) -> 'bool' - del_encoding(idx) -> bool - - Delete an encoding (1-based) - - @param idx (C++: int) + del_encoding(idx) -> bool + @param idx (C++: int) Help on function del_ind_purged in module ida_nalt: del_ind_purged(*args) -> 'void' del_ind_purged(ea) + @param ea (C++: ea_t) Help on function del_item_color in module ida_nalt: del_item_color(*args) -> 'bool' del_item_color(ea) -> bool + @param ea (C++: ea_t) Help on function del_op_tinfo in module ida_nalt: del_op_tinfo(*args) -> 'void' del_op_tinfo(ea, n) + @param ea (C++: ea_t) + @param n (C++: int) Help on function del_refinfo in module ida_nalt: del_refinfo(*args) -> 'bool' del_refinfo(ea, n) -> bool + @param ea (C++: ea_t) + @param n (C++: int) Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) -> 'void' del_source_linnum(ea) + @param ea (C++: ea_t) Help on function del_str_type in module ida_nalt: del_str_type(*args) -> 'void' del_str_type(ea) + @param ea (C++: ea_t) Help on function del_switch_info in module ida_nalt: del_switch_info(*args) -> 'void' del_switch_info(ea) + @param ea (C++: ea_t) Help on function del_switch_parent in module ida_nalt: del_switch_parent(*args) -> 'void' del_switch_parent(ea) + @param ea (C++: ea_t) Help on function del_tinfo in module ida_nalt: del_tinfo(*args) -> 'void' del_tinfo(ea) + @param ea (C++: 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) + ea2node(ea) -> nodeidx_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. - - @param strtype (C++: int32) + encoding_from_strtype(strtype) -> char const * + @param strtype (C++: int32) Help on class enum_const_t in module ida_nalt: @@ -56555,8 +67127,6 @@ 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. @@ -56567,13 +67137,10 @@ enum_import_names(*args) -> 'int' 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 *) + find_custom_refinfo(name) -> int + @param name (C++: const char *) Help on function get_abi_name in module ida_nalt: @@ -56583,96 +67150,85 @@ Help on function get_absbase in module ida_nalt: get_absbase(*args) -> 'ea_t' get_absbase(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_aflags in module ida_nalt: get_aflags(*args) -> 'uint32' get_aflags(ea) -> uint32 + @param ea (C++: ea_t) Help on function get_alignment in module ida_nalt: get_alignment(*args) -> 'uint32' get_alignment(ea) -> uint32 + @param ea (C++: 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 (C++: array_parameters_t *) + @param ea (C++: 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 (C++: custom_data_type_ids_t *) + @param ea (C++: 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) + get_custom_refinfo(crid) -> custom_refinfo_handler_t const * + @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) + get_default_encoding_idx(bpu) -> int + @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) -> '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: the encoding index (C++: int) - @return: the number of bytes per units (1/2/4); -1 means error + get_encoding_bpu(idx) -> int + @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) -> '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 + get_encoding_name(idx) -> char const * + @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) -> 'int' - get_encoding_qty() -> int - - Get total number of encodings (counted from 0) Help on function get_gotea in module ida_nalt: @@ -56683,65 +67239,53 @@ get_gotea(*args) -> 'ea_t' 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 * - - 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) -> '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 (C++: ea_t) 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 (C++: ea_t) Help on function get_op_tinfo in module ida_nalt: get_op_tinfo(*args) -> 'bool' get_op_tinfo(tif, ea, n) -> bool + @param tif (C++: tinfo_t *) + @param ea (C++: ea_t) + @param n (C++: 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 @@ -56749,66 +67293,73 @@ Help on function get_refinfo in module ida_nalt: get_refinfo(*args) -> 'bool' get_refinfo(ri, ea, n) -> bool + @param ri (C++: refinfo_t *) + @param ea (C++: ea_t) + @param n (C++: 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) + get_reftype_by_size(size) -> reftype_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 (C++: ea_t) 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) + get_str_encoding_idx(strtype) -> uchar + @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 (C++: int32) Help on function get_str_term2 in module ida_nalt: get_str_term2(*args) -> 'char' get_str_term2(strtype) -> char + @param strtype (C++: int32) Help on function get_str_type in module ida_nalt: get_str_type(*args) -> 'uint32' get_str_type(ea) -> uint32 + @param ea (C++: 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 (C++: 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 (C++: int32) Help on function get_strtype_bpu in module ida_nalt: get_strtype_bpu(*args) -> 'int' get_strtype_bpu(strtype) -> int + @param strtype (C++: int32) Help on function get_switch_info in module ida_nalt: @@ -56818,200 +67369,220 @@ Help on function get_switch_parent in module ida_nalt: get_switch_parent(*args) -> 'ea_t' get_switch_parent(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_tinfo in module ida_nalt: get_tinfo(*args) -> 'bool' get_tinfo(tif, ea) -> bool + @param tif (C++: tinfo_t *) + @param ea (C++: ea_t) Help on function getnode in module ida_nalt: getnode(*args) -> 'netnode' getnode(ea) -> netnode + @param ea (C++: ea_t) Help on function has_lname in module ida_nalt: has_lname(*args) -> 'bool' has_lname(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti in module ida_nalt: has_ti(*args) -> 'bool' has_ti(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti0 in module ida_nalt: has_ti0(*args) -> 'bool' has_ti0(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti1 in module ida_nalt: has_ti1(*args) -> 'bool' has_ti1(ea) -> bool + @param ea (C++: ea_t) Help on function hide_border in module ida_nalt: hide_border(*args) -> 'void' hide_border(ea) + @param ea (C++: ea_t) Help on function hide_item in module ida_nalt: hide_item(*args) -> 'void' hide_item(ea) + @param ea (C++: ea_t) Help on function is__bnot0 in module ida_nalt: is__bnot0(*args) -> 'bool' is__bnot0(ea) -> bool + @param ea (C++: ea_t) Help on function is__bnot1 in module ida_nalt: is__bnot1(*args) -> 'bool' is__bnot1(ea) -> bool + @param ea (C++: ea_t) Help on function is__invsign0 in module ida_nalt: is__invsign0(*args) -> 'bool' is__invsign0(ea) -> bool + @param ea (C++: ea_t) Help on function is__invsign1 in module ida_nalt: is__invsign1(*args) -> 'bool' is__invsign1(ea) -> bool + @param ea (C++: ea_t) Help on function is_align_flow in module ida_nalt: is_align_flow(*args) -> 'bool' is_align_flow(ea) -> bool + @param ea (C++: ea_t) Help on function is_colored_item in module ida_nalt: is_colored_item(*args) -> 'bool' is_colored_item(ea) -> bool + @param ea (C++: 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) + is_finally_visible_item(ea) -> bool + @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 (C++: ea_t) Help on function is_hidden_border in module ida_nalt: is_hidden_border(*args) -> 'bool' is_hidden_border(ea) -> bool + @param ea (C++: ea_t) Help on function is_hidden_item in module ida_nalt: is_hidden_item(*args) -> 'bool' is_hidden_item(ea) -> bool + @param ea (C++: ea_t) Help on function is_libitem in module ida_nalt: is_libitem(*args) -> 'bool' is_libitem(ea) -> bool + @param ea (C++: ea_t) Help on function is_lzero0 in module ida_nalt: is_lzero0(*args) -> 'bool' is_lzero0(ea) -> bool + @param ea (C++: ea_t) Help on function is_lzero1 in module ida_nalt: is_lzero1(*args) -> 'bool' is_lzero1(ea) -> bool + @param ea (C++: ea_t) Help on function is_noret in module ida_nalt: is_noret(*args) -> 'bool' is_noret(ea) -> bool + @param ea (C++: 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) + is_notcode(ea) -> bool + @param ea (C++: ea_t) Help on function is_notproc in module ida_nalt: is_notproc(*args) -> 'bool' is_notproc(ea) -> bool + @param ea (C++: ea_t) Help on function is_pascal in module ida_nalt: is_pascal(*args) -> 'bool' is_pascal(strtype) -> bool + @param strtype (C++: 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) + is_reftype_target_optional(type) -> bool + @param type (C++: reftype_t) Help on function is_retfp in module ida_nalt: is_retfp(*args) -> 'bool' is_retfp(ea) -> bool + @param ea (C++: ea_t) Help on function is_terse_struc in module ida_nalt: is_terse_struc(*args) -> 'bool' is_terse_struc(ea) -> bool + @param ea (C++: ea_t) Help on function is_tilcmt in module ida_nalt: is_tilcmt(*args) -> 'bool' is_tilcmt(ea) -> bool + @param ea (C++: ea_t) Help on function is_usersp in module ida_nalt: is_usersp(*args) -> 'bool' is_usersp(ea) -> bool + @param ea (C++: ea_t) Help on function is_userti in module ida_nalt: is_userti(*args) -> 'bool' is_userti(ea) -> bool + @param ea (C++: 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) + is_visible_item(ea) -> bool + @param ea (C++: ea_t) Help on function is_zstroff in module ida_nalt: is_zstroff(*args) -> 'bool' is_zstroff(ea) -> bool + @param ea (C++: ea_t) Help on function node2ea in module ida_nalt: node2ea(*args) -> 'ea_t' node2ea(ndx) -> ea_t + @param ndx (C++: nodeidx_t) Help on class opinfo_t in module ida_nalt: @@ -57084,9 +67655,11 @@ class printop_t(builtins.object) | | set_aflags_initialized(self, *args) -> 'void' | set_aflags_initialized(self, v=True) + | @param v (C++: bool) | | set_ti_initialized(self, *args) -> 'void' | set_ti_initialized(self, v=True) + | @param v (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57135,6 +67708,10 @@ class refinfo_t(builtins.object) | | init(self, *args) -> 'void' | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) + | @param reft_and_flags (C++: uint32) + | @param _base (C++: ea_t) + | @param _target (C++: ea_t) + | @param _tdelta (C++: adiff_t) | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool @@ -57152,13 +67729,14 @@ class refinfo_t(builtins.object) | 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, t) + | set_type(self, rt) + | @param rt (C++: reftype_t) | | type(self, *args) -> 'reftype_t' | type(self) -> reftype_t @@ -57190,343 +67768,363 @@ class refinfo_t(builtins.object) Help on function rename_encoding in module ida_nalt: rename_encoding(*args) -> 'bool' - rename_encoding(idx, encoding) -> bool - - Change name for an encoding (1-based) - - @param idx (C++: int) - @param encoding (C++: const char *) + rename_encoding(idx, encoding) -> bool + @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) -> '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() -> str - - 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 - - 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 - - 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 (C++: ea_t) Help on function set__bnot1 in module ida_nalt: set__bnot1(*args) -> 'void' set__bnot1(ea) + @param ea (C++: ea_t) Help on function set__invsign0 in module ida_nalt: set__invsign0(*args) -> 'void' set__invsign0(ea) + @param ea (C++: ea_t) Help on function set__invsign1 in module ida_nalt: set__invsign1(*args) -> 'void' set__invsign1(ea) + @param ea (C++: ea_t) Help on function set_abits in module ida_nalt: set_abits(*args) -> 'void' set_abits(ea, bits) + @param ea (C++: ea_t) + @param bits (C++: uint32) Help on function set_absbase in module ida_nalt: set_absbase(*args) -> 'void' set_absbase(ea, x) + @param ea (C++: ea_t) + @param x (C++: ea_t) Help on function set_aflags in module ida_nalt: set_aflags(*args) -> 'void' set_aflags(ea, flags) + @param ea (C++: ea_t) + @param flags (C++: uint32) Help on function set_align_flow in module ida_nalt: set_align_flow(*args) -> 'void' set_align_flow(ea) + @param ea (C++: ea_t) Help on function set_alignment in module ida_nalt: set_alignment(*args) -> 'void' set_alignment(ea, x) + @param ea (C++: ea_t) + @param x (C++: 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 *) + set_archive_path(file) -> bool + @param file (C++: const char *) Help on function set_array_parameters in module ida_nalt: set_array_parameters(*args) -> 'void' set_array_parameters(ea, _in) + @param ea (C++: ea_t) + 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 *) + set_asm_inc_file(file) -> bool + @param file (C++: const char *) Help on function set_colored_item in module ida_nalt: set_colored_item(*args) -> 'void' set_colored_item(ea) + @param ea (C++: 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 (C++: ea_t) + @param cdis (C++: const custom_data_type_ids_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: the amount of bytes per unit (C++: int) - @param idx: the encoding index idx can be 0 to disable encoding - conversion (C++: int) + set_default_encoding_idx(bpu, idx) -> bool + @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) -> 'void' set_fixed_spd(ea) + @param ea (C++: ea_t) Help on function set_gotea in module ida_nalt: set_gotea(*args) -> 'void' set_gotea(gotea) + @param gotea (C++: ea_t) Help on function set_has_lname in module ida_nalt: set_has_lname(*args) -> 'void' set_has_lname(ea) + @param ea (C++: ea_t) Help on function set_has_ti in module ida_nalt: set_has_ti(*args) -> 'void' set_has_ti(ea) + @param ea (C++: ea_t) Help on function set_has_ti0 in module ida_nalt: set_has_ti0(*args) -> 'void' set_has_ti0(ea) + @param ea (C++: ea_t) Help on function set_has_ti1 in module ida_nalt: set_has_ti1(*args) -> 'void' set_has_ti1(ea) + @param ea (C++: ea_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) + set_ids_modnode(id) + @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) + set_imagebase(base) + @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 (C++: ea_t) + @param color (C++: bgcolor_t) Help on function set_libitem in module ida_nalt: set_libitem(*args) -> 'void' set_libitem(ea) + @param ea (C++: ea_t) Help on function set_lzero0 in module ida_nalt: set_lzero0(*args) -> 'void' set_lzero0(ea) + @param ea (C++: ea_t) Help on function set_lzero1 in module ida_nalt: set_lzero1(*args) -> 'void' set_lzero1(ea) + @param ea (C++: ea_t) Help on function set_noret in module ida_nalt: set_noret(*args) -> 'void' set_noret(ea) + @param ea (C++: 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) + set_notcode(ea) + @param ea (C++: ea_t) Help on function set_notproc in module ida_nalt: set_notproc(*args) -> 'void' set_notproc(ea) + @param ea (C++: 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 (C++: ea_t) + @param n (C++: int) + @param tif (C++: const tinfo_t *) 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) + set_outfile_encoding_idx(idx) -> bool + @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) -> 'bool' set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + @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 set_refinfo_ex in module ida_nalt: set_refinfo_ex(*args) -> 'bool' set_refinfo_ex(ea, n, ri) -> bool + @param ea (C++: ea_t) + @param n (C++: int) + @param ri (C++: const refinfo_t *) Help on function set_retfp in module ida_nalt: set_retfp(*args) -> 'void' set_retfp(ea) + @param ea (C++: 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 *) + set_root_filename(file) + @param file (C++: const char *) Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) -> 'void' set_source_linnum(ea, lnnum) + @param ea (C++: ea_t) + @param lnnum (C++: uval_t) Help on function set_str_type in module ida_nalt: set_str_type(*args) -> 'void' set_str_type(ea, x) + @param ea (C++: ea_t) + @param x (C++: uint32) Help on function set_switch_info in module ida_nalt: set_switch_info(*args) -> 'void' set_switch_info(ea, _in) + @param ea (C++: ea_t) + 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 (C++: ea_t) + @param x (C++: ea_t) Help on function set_terse_struc in module ida_nalt: set_terse_struc(*args) -> 'void' set_terse_struc(ea) + @param ea (C++: ea_t) Help on function set_tilcmt in module ida_nalt: set_tilcmt(*args) -> 'void' set_tilcmt(ea) + @param ea (C++: ea_t) Help on function set_tinfo in module ida_nalt: set_tinfo(*args) -> 'bool' set_tinfo(ea, tif) -> bool + @param ea (C++: ea_t) + @param tif (C++: const tinfo_t *) Help on function set_usemodsp in module ida_nalt: set_usemodsp(*args) -> 'void' set_usemodsp(ea) + @param ea (C++: ea_t) Help on function set_usersp in module ida_nalt: set_usersp(*args) -> 'void' set_usersp(ea) + @param ea (C++: ea_t) Help on function set_userti in module ida_nalt: set_userti(*args) -> 'void' set_userti(ea) + @param ea (C++: 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) + set_visible_item(ea, visible) + @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 (C++: ea_t) Help on class strpath_ids_array in module ida_nalt: @@ -57537,9 +68135,11 @@ class strpath_ids_array(builtins.object) | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t | | __init__(self, *args) | __init__(self, data) -> strpath_ids_array + | 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,6 +68151,8 @@ class strpath_ids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: unsigned-ea-like-numeric-type const &↗ | | __swig_destroy__ = delete_strpath_ids_array(...) | delete_strpath_ids_array(self) @@ -57629,15 +68231,21 @@ class switch_info_t(builtins.object) | | _set_values_lowcase(self, *args) -> 'void' | _set_values_lowcase(self, values) + | values: ea_t | | assign(self, *args) -> 'void' | assign(self, other) + | other: switch_info_t const & | | clear(self, *args) -> 'void' | clear(self) | | get_jrange_vrange(self, *args) -> 'bool' + | get separate parts of the switch + | | get_jrange_vrange(self, jrange=None, vrange=None) -> bool + | @param jrange (C++: range_t *) + | @param vrange (C++: range_t *) | | get_jtable_element_size(self, *args) -> 'int' | get_jtable_element_size(self) -> int @@ -57649,7 +68257,7 @@ class switch_info_t(builtins.object) | 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 @@ -57680,21 +68288,30 @@ class switch_info_t(builtins.object) | | set_elbase(self, *args) -> 'void' | set_elbase(self, base) + | @param base (C++: ea_t) | | set_expr(self, *args) -> 'void' | set_expr(self, r, dt) + | @param r (C++: int) + | @param dt (C++: op_dtype_t) | | set_jtable_element_size(self, *args) -> 'void' | set_jtable_element_size(self, size) + | @param size (C++: int) | | set_jtable_size(self, *args) -> 'void' | set_jtable_size(self, size) + | @param size (C++: int) | | set_shift(self, *args) -> 'void' + | See 'SWI_SHIFT_MASK' . + | | set_shift(self, shift) + | @param shift (C++: int) | | set_vtable_element_size(self, *args) -> 'void' | set_vtable_element_size(self, size) + | @param size (C++: int) | | use_std_table(self, *args) -> 'bool' | use_std_table(self) -> bool @@ -57765,26 +68382,31 @@ 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 + ptrval: size_t Help on function unhide_border in module ida_nalt: unhide_border(*args) -> 'void' unhide_border(ea) + @param ea (C++: ea_t) Help on function unhide_item in module ida_nalt: unhide_item(*args) -> 'void' unhide_item(ea) + @param ea (C++: ea_t) Help on function uses_modsp in module ida_nalt: uses_modsp(*args) -> 'bool' uses_modsp(ea) -> bool + @param ea (C++: ea_t) Help on function validate_idb_names in module ida_nalt: validate_idb_names(*args) -> 'int' validate_idb_names(do_repair) -> int + do_repair: bool === ida_nalt EPYDOC INJECTIONS === ida_nalt.AFL_ALIGNFLOW @@ -58718,24 +69340,22 @@ class NearestName(builtins.object) 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) - @return: flags of the innermost struct member or the input flags + append_struct_fields(disp, n, path, flags, delta, appzero) -> str + @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: @@ -58751,36 +69371,41 @@ Help on function cleanup_name in module ida_name: cleanup_name(*args) -> 'qstring *' cleanup_name(ea, name, flags=0) -> str + @param ea (C++: ea_t) + @param name (C++: const char *) + @param flags (C++: uint32) Help on function del_debug_names in module ida_name: del_debug_names(*args) -> 'void' del_debug_names(ea1, ea2) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) Help on function del_global_name in module ida_name: del_global_name(*args) -> 'bool' del_global_name(ea) -> bool + @param ea (C++: ea_t) Help on function del_local_name in module ida_name: del_local_name(*args) -> 'bool' del_local_name(ea) -> bool + @param ea (C++: 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 + demangle_name(name, disable_mask, demreq=DQT_FULL) -> str + @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: @@ -58791,7 +69416,8 @@ class ea_name_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ea_name_t - | __init__(self, _ea, _name) -> ea_name_t + | _ea: ea_t + | _name: qstring const & | | __repr__ = _swig_repr(self) | @@ -58825,10 +69451,11 @@ class ea_name_vec_t(builtins.object) | | __getitem__(self, *args) -> 'ea_name_t const &' | __getitem__(self, i) -> ea_name_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ea_name_vec_t - | __init__(self, x) -> ea_name_vec_t + | 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,12 +69467,15 @@ class ea_name_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -58869,7 +69499,12 @@ class ea_name_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< ea_name_t >::iterator' | erase(self, it) -> ea_name_t + | it: qvector< ea_name_t >::iterator + | + | | erase(self, first, last) -> ea_name_t + | first: qvector< ea_name_t >::iterator + | last: qvector< ea_name_t >::iterator | | extract(self, *args) -> 'ea_name_t *' | extract(self) -> ea_name_t @@ -58879,35 +69514,47 @@ class ea_name_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=ea_name_t()) + | x: ea_name_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: ea_name_t * + | len: size_t | | insert(self, *args) -> 'qvector< ea_name_t >::iterator' | insert(self, it, x) -> ea_name_t + | it: qvector< ea_name_t >::iterator + | x: ea_name_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ea_name_t &' | push_back(self, x) - | push_back(self) -> ea_name_t + | x: ea_name_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: ea_name_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< ea_name_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -58927,506 +69574,488 @@ class ea_name_vec_t(builtins.object) 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) - @return: -1 if cannot extract. otherwise length of the name + extract_name(line, x) -> str + @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) -> 'bool' force_name(ea, name, flags=0) -> bool + @param ea (C++: ea_t) + @param name (C++: const char *) + @param flags (C++: 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 (C++: ea_t) + @param inhibitor (C++: int32) + @param demform (C++: int) + @param gtn_flags (C++: 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 (C++: ea_t) + @param gtn_flags (C++: int) Help on function get_colored_name in module ida_name: get_colored_name(*args) -> 'qstring' get_colored_name(ea) -> qstring + @param ea (C++: 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 (C++: ea_t) + @param gtn_flags (C++: 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) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) + get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool + @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) -> 'qstring *' get_debug_name(ea_ptr, how) -> str + @param ea_ptr (C++: ea_t *) + @param how (C++: 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 (C++: const char *) Help on function get_debug_names in module ida_name: get_debug_names(*args) -> 'PyObject *' get_debug_names(names, ea1, ea2) + @param names (C++: ea_name_vec_t *) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + + get_debug_names(ea1, ea2, return_list=False) -> PyObject * + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + 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 (C++: ea_t) + @param inhibitor (C++: int32) + @param demform (C++: int) + @param gtn_flags (C++: 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) - @return: success + get_ea_name(ea, gtn_flags=0) -> qstring + @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) -> 'qstring' get_long_name(ea, gtn_flags=0) -> qstring + @param ea (C++: ea_t) + @param gtn_flags (C++: int) Help on function get_name in module ida_name: get_name(*args) -> 'qstring' get_name(ea) -> qstring + @param ea (C++: 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) - @return: address of the name used to represent the operand + get_name_base_ea(_from, to) -> ea_t + @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) -> 'color_t' - 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) + get_name_color(_from, ea) -> color_t + @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) -> 'ea_t' - 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 + get_name_ea(_from, name) -> ea_t + @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) -> '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 +/- ). 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. + get_name_expr(_from, n, ea, off, flags=0x0001) -> str + @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) -> '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: 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 + get_name_value(_from, name) -> int + @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) -> 'qstring *' - 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. + get_nice_colored_name(ea, flags=0) -> str + @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) -> 'ea_t' - get_nlist_ea(idx) -> ea_t - - Get address from the list at 'idx'. - - @param idx (C++: size_t) + get_nlist_ea(idx) -> ea_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 listreturns the closest match. may return idx >= size. - @param ea (C++: ea_t) + get_nlist_idx(ea) -> size_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) + get_nlist_name(idx) -> char const * + @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 (C++: ea_t) + @param gtn_flags (C++: 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 (C++: ea_t) + @param gtn_flags (C++: 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) + hide_name(ea) + @param ea: address of the name (C++: ea_t) 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 *) + is_ident(name) -> bool + @param name (C++: const char *) 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) + is_ident_cp(cp) -> bool + @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 name included into names list? - - @param ea (C++: ea_t) + is_in_nlist(ea) -> bool + @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) - @return: true if the name has been defined + is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool + @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) -> 'bool' is_public_name(ea) -> bool + @param ea (C++: 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 *) + is_strlit_cp(cp, specific_ranges=None) -> bool + @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) -> '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 *) + is_uname(name) -> bool + @param name: name to test. may be NULL. (C++: const char *) + @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 *) + is_valid_cp(cp, kind, data=None) -> bool + @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) -> 'bool' - is_valid_typename(name) -> bool - - Is valid type name? - @param name: name to test. may be NULL. (C++: const char *) + is_valid_typename(name) -> bool + @param name: name to test. may be NULL. (C++: const char *) + @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) + is_visible_cp(cp) -> bool + @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 (C++: ea_t) Help on function make_name_auto in module ida_name: make_name_auto(*args) -> 'bool' make_name_auto(ea) -> bool + @param ea (C++: 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 (C++: 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 (C++: ea_t) Help on function make_name_public in module ida_name: make_name_public(*args) -> 'void' make_name_public(ea) + @param ea (C++: ea_t) Help on function make_name_user in module ida_name: make_name_user(*args) -> 'bool' make_name_user(ea) -> bool + @param ea (C++: ea_t) Help on function make_name_weak in module ida_name: make_name_weak(*args) -> 'void' make_name_weak(ea) + @param ea (C++: ea_t) Help on function rebuild_nlist in module ida_name: rebuild_nlist(*args) -> 'void' - rebuild_nlist() - - Rebuild names 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) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - @param valid (C++: bool) + set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) + @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) -> 'bool' set_debug_name(ea, name) -> bool + @param ea (C++: ea_t) + @param name (C++: const char *) 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: linear address of the operand which references to the - address (C++: ea_t) - @param ea: linear address (C++: ea_t) + set_dummy_name(_from, ea) -> bool + @param _from: linear address of the operand which references to the + address (C++: ea_t) + @param ea: linear address (C++: ea_t) + @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: 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) + set_name(ea, name, flags=0) -> bool + @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) + @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) + show_name(ea) + @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: 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 + validate_name(name, type, flags=0) -> PyObject * + @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 @@ -59692,6 +70321,7 @@ Help on function exist in module ida_netnode: exist(*args) -> 'bool' exist(n) -> bool + n: netnode const & Help on class netnode in module ida_netnode: @@ -59702,16 +70332,29 @@ class netnode(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool + | n: netnode & + | + | | __eq__(self, x) -> bool + | x: nodeidx_t | | __init__(self, *args) - | __init__(self) -> netnode - | __init__(self, num) -> netnode + | __init__(self, num=nodeidx_t(-1)) -> netnode + | num: nodeidx_t + | + | | __init__(self, _name, namlen=0, do_create=False) -> netnode + | _name: char const * + | namlen: size_t + | do_create: bool | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool + | n: netnode & + | + | | __ne__(self, x) -> bool + | x: nodeidx_t | | __repr__ = _swig_repr(self) | @@ -59720,161 +70363,265 @@ class netnode(builtins.object) | | altdel(self, *args) -> 'bool' | altdel(self, alt, tag=atag) -> bool - | altdel(self) -> bool + | alt: nodeidx_t + | tag: uchar | | altdel_all(self, *args) -> 'bool' - | altdel_all(self, tag) -> bool + | altdel_all(self, tag=atag) -> bool + | tag: uchar | | altdel_ea(self, *args) -> 'bool' | altdel_ea(self, ea, tag=atag) -> bool + | ea: ea_t + | tag: uchar | | altdel_idx8(self, *args) -> 'bool' | altdel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | altfirst(self, *args) -> 'nodeidx_t' | altfirst(self, tag=atag) -> nodeidx_t + | tag: uchar | | altfirst_idx8(self, *args) -> 'nodeidx_t' | altfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | altlast(self, *args) -> 'nodeidx_t' | altlast(self, tag=atag) -> nodeidx_t + | tag: uchar | | altlast_idx8(self, *args) -> 'nodeidx_t' | altlast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | altnext(self, *args) -> 'nodeidx_t' | altnext(self, cur, tag=atag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | altnext_idx8(self, *args) -> 'nodeidx_t' | altnext_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | altprev(self, *args) -> 'nodeidx_t' | altprev(self, cur, tag=atag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | altprev_idx8(self, *args) -> 'nodeidx_t' | altprev_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | altset(self, *args) -> 'bool' | altset(self, alt, value, tag=atag) -> bool + | alt: nodeidx_t + | value: nodeidx_t + | tag: uchar | | altset_ea(self, *args) -> 'bool' | altset_ea(self, ea, value, tag=atag) -> bool + | ea: ea_t + | value: nodeidx_t + | tag: uchar | | altset_idx8(self, *args) -> 'bool' | altset_idx8(self, alt, val, tag) -> bool + | alt: uchar + | val: nodeidx_t + | tag: uchar | | altshift(self, *args) -> 'size_t' | altshift(self, _from, to, size, tag=atag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | altval(self, *args) -> 'nodeidx_t' | altval(self, alt, tag=atag) -> nodeidx_t + | alt: nodeidx_t + | tag: uchar | | altval_ea(self, *args) -> 'nodeidx_t' | altval_ea(self, ea, tag=atag) -> nodeidx_t + | ea: ea_t + | tag: uchar | | altval_idx8(self, *args) -> 'nodeidx_t' | altval_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | blobsize(self, *args) -> 'size_t' | blobsize(self, _start, tag) -> size_t + | _start: nodeidx_t + | tag: uchar | | blobsize_ea(self, *args) -> 'size_t' | blobsize_ea(self, ea, tag) -> size_t + | ea: ea_t + | tag: uchar | | chardel(self, *args) -> 'bool' | chardel(self, alt, tag) -> bool + | alt: nodeidx_t + | tag: uchar | | chardel_ea(self, *args) -> 'bool' | chardel_ea(self, ea, tag) -> bool + | ea: ea_t + | tag: uchar | | chardel_idx8(self, *args) -> 'bool' | chardel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | charfirst(self, *args) -> 'nodeidx_t' | charfirst(self, tag) -> nodeidx_t + | tag: uchar | | charfirst_idx8(self, *args) -> 'nodeidx_t' | charfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | charlast(self, *args) -> 'nodeidx_t' | charlast(self, tag) -> nodeidx_t + | tag: uchar | | charlast_idx8(self, *args) -> 'nodeidx_t' | charlast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | charnext(self, *args) -> 'nodeidx_t' | charnext(self, cur, tag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | charnext_idx8(self, *args) -> 'nodeidx_t' | charnext_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | charprev(self, *args) -> 'nodeidx_t' | charprev(self, cur, tag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | charprev_idx8(self, *args) -> 'nodeidx_t' | charprev_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | charset(self, *args) -> 'bool' | charset(self, alt, val, tag) -> bool + | alt: nodeidx_t + | val: uchar + | tag: uchar | | charset_ea(self, *args) -> 'bool' | charset_ea(self, ea, val, tag) -> bool + | ea: ea_t + | val: uchar + | tag: uchar | | charset_idx8(self, *args) -> 'bool' | charset_idx8(self, alt, val, tag) -> bool + | alt: uchar + | val: uchar + | tag: uchar | | charshift(self, *args) -> 'size_t' | charshift(self, _from, to, size, tag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | charval(self, *args) -> 'uchar' | charval(self, alt, tag) -> uchar + | alt: nodeidx_t + | tag: uchar | | charval_ea(self, *args) -> 'uchar' | charval_ea(self, ea, tag) -> uchar + | ea: ea_t + | tag: uchar | | charval_idx8(self, *args) -> 'uchar' | charval_idx8(self, alt, tag) -> uchar + | alt: uchar + | tag: uchar | | copyto(self, *args) -> 'size_t' | copyto(self, target, count=1) -> size_t + | target: netnode + | count: nodeidx_t | | create(self, *args) -> 'bool' | create(self, _name, namlen=0) -> bool - | create(self) -> bool + | _name: char const * + | namlen: size_t | | delblob(self, *args) -> 'int' | delblob(self, _start, tag) -> int + | _start: nodeidx_t + | tag: uchar | | delblob_ea(self, *args) -> 'int' | delblob_ea(self, ea, tag) -> int + | ea: ea_t + | tag: uchar | | delvalue(self, *args) -> 'bool' | delvalue(self) -> bool | | eadel(self, *args) -> 'bool' | eadel(self, ea, tag) -> bool + | ea: ea_t + | tag: uchar | | eadel_idx8(self, *args) -> 'bool' | eadel_idx8(self, idx, tag) -> bool + | idx: uchar + | tag: uchar | | eaget(self, *args) -> 'ea_t' | eaget(self, ea, tag) -> ea_t + | ea: ea_t + | tag: uchar | | eaget_idx(self, *args) -> 'ea_t' | eaget_idx(self, idx, tag) -> ea_t + | idx: nodeidx_t + | tag: uchar | | eaget_idx8(self, *args) -> 'ea_t' | eaget_idx8(self, idx, tag) -> ea_t + | idx: uchar + | tag: uchar | | easet(self, *args) -> 'bool' | easet(self, ea, addr, tag) -> bool + | ea: ea_t + | addr: ea_t + | tag: uchar | | easet_idx(self, *args) -> 'bool' | easet_idx(self, idx, addr, tag) -> bool + | idx: nodeidx_t + | addr: ea_t + | tag: uchar | | easet_idx8(self, *args) -> 'bool' | easet_idx8(self, idx, addr, tag) -> bool + | idx: uchar + | addr: ea_t + | tag: uchar | | end(self, *args) -> 'bool' | end(self) -> bool @@ -59884,51 +70631,83 @@ class netnode(builtins.object) | | getblob(self, *args) -> 'PyObject *' | getblob(self, start, tag) -> PyObject * + | start: nodeidx_t + | tag: char | | getblob_ea(self, *args) -> 'PyObject *' | getblob_ea(self, ea, tag) -> PyObject * + | ea: ea_t + | tag: char | | getclob(self, *args) -> 'PyObject *' | getclob(self, start, tag) -> PyObject * + | start: nodeidx_t + | tag: char | | hashdel(self, *args) -> 'bool' | hashdel(self, idx, tag=htag) -> bool + | idx: char const * + | tag: uchar | | hashdel_all(self, *args) -> 'bool' | hashdel_all(self, tag=htag) -> bool + | tag: uchar | | hashfirst(self, *args) -> 'ssize_t' | hashfirst(self, tag=htag) -> ssize_t + | tag: uchar | | hashlast(self, *args) -> 'ssize_t' | hashlast(self, tag=htag) -> ssize_t + | tag: uchar | | hashnext(self, *args) -> 'ssize_t' | hashnext(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashprev(self, *args) -> 'ssize_t' | hashprev(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashset(self, *args) -> 'bool' | hashset(self, idx, value, tag=htag) -> bool + | idx: char const * + | value: void const * + | tag: uchar | | hashset_buf(self, *args) -> 'bool' | hashset_buf(self, idx, py_str, tag=htag) -> bool + | idx: char const * + | py_str: PyObject * + | tag: char | | hashset_idx(self, *args) -> 'bool' | hashset_idx(self, idx, value, tag=htag) -> bool + | idx: char const * + | value: nodeidx_t + | tag: uchar | | hashstr(self, *args) -> 'ssize_t' | hashstr(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashstr_buf(self, *args) -> 'PyObject *' | hashstr_buf(self, idx, tag=htag) -> PyObject * + | idx: char const * + | tag: char | | hashval(self, *args) -> 'ssize_t' | hashval(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashval_long(self, *args) -> 'nodeidx_t' | hashval_long(self, idx, tag=htag) -> nodeidx_t + | idx: char const * + | tag: uchar | | index(self, *args) -> 'nodeidx_t' | index(self) -> nodeidx_t @@ -59941,15 +70720,23 @@ class netnode(builtins.object) | | lower_bound(self, *args) -> 'nodeidx_t' | lower_bound(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | lower_bound_ea(self, *args) -> 'nodeidx_t' | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t + | ea: ea_t + | tag: uchar | | lower_bound_idx8(self, *args) -> 'nodeidx_t' | lower_bound_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | moveto(self, *args) -> 'size_t' | moveto(self, target, count=1) -> size_t + | target: netnode + | count: nodeidx_t | | next(self, *args) -> 'bool' | next(self) -> bool @@ -59959,96 +70746,165 @@ class netnode(builtins.object) | | rename(self, *args) -> 'bool' | rename(self, newname, namlen=0) -> bool + | newname: char const * + | namlen: size_t | | set(self, *args) -> 'bool' | set(self, value) -> bool + | value: void const * | | set_long(self, *args) -> 'bool' | set_long(self, x) -> bool + | x: nodeidx_t | | setblob(self, *args) -> 'bool' | setblob(self, buf, _start, tag) -> bool + | buf: void const * + | _start: nodeidx_t + | tag: uchar | | setblob_ea(self, *args) -> 'bool' | setblob_ea(self, buf, ea, tag) -> bool + | buf: void const * + | ea: ea_t + | tag: uchar | | start(self, *args) -> 'bool' | start(self) -> bool | | supdel(self, *args) -> 'bool' | supdel(self, alt, tag=stag) -> bool - | supdel(self) -> bool + | alt: nodeidx_t + | tag: uchar | | supdel_all(self, *args) -> 'bool' | supdel_all(self, tag) -> bool + | tag: uchar | | supdel_ea(self, *args) -> 'bool' | supdel_ea(self, ea, tag=stag) -> bool + | ea: ea_t + | tag: uchar | | supdel_idx8(self, *args) -> 'bool' | supdel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | supdel_range(self, *args) -> 'int' | supdel_range(self, idx1, idx2, tag) -> int + | idx1: nodeidx_t + | idx2: nodeidx_t + | tag: uchar | | supdel_range_idx8(self, *args) -> 'int' | supdel_range_idx8(self, idx1, idx2, tag) -> int + | idx1: uchar + | idx2: uchar + | tag: uchar | | supfirst(self, *args) -> 'nodeidx_t' | supfirst(self, tag=stag) -> nodeidx_t + | tag: uchar | | supfirst_idx8(self, *args) -> 'nodeidx_t' | supfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | suplast(self, *args) -> 'nodeidx_t' | suplast(self, tag=stag) -> nodeidx_t + | tag: uchar | | suplast_idx8(self, *args) -> 'nodeidx_t' | suplast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | supnext(self, *args) -> 'nodeidx_t' | supnext(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | supnext_idx8(self, *args) -> 'nodeidx_t' | supnext_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | supprev(self, *args) -> 'nodeidx_t' | supprev(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | supprev_idx8(self, *args) -> 'nodeidx_t' | supprev_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | supset(self, *args) -> 'bool' | supset(self, alt, value, tag=stag) -> bool + | alt: nodeidx_t + | value: void const * + | tag: uchar + | + | | supset(self, alt, value, tag=stag) -> bool + | alt: nodeidx_t + | value: char const * + | tag: uchar | | supset_ea(self, *args) -> 'bool' | supset_ea(self, ea, value, tag=stag) -> bool + | ea: ea_t + | value: void const * + | tag: uchar + | + | | supset_ea(self, ea, value, tag=stag) -> bool + | ea: ea_t + | value: char const * + | tag: uchar | | supset_idx8(self, *args) -> 'bool' | supset_idx8(self, alt, value, tag) -> bool + | alt: uchar + | value: void const * + | tag: uchar | | supshift(self, *args) -> 'size_t' | supshift(self, _from, to, size, tag=stag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | supstr(self, *args) -> 'ssize_t' | supstr(self, alt, tag=stag) -> ssize_t + | alt: nodeidx_t + | tag: uchar | | supstr_ea(self, *args) -> 'ssize_t' | supstr_ea(self, ea, tag=stag) -> ssize_t + | ea: ea_t + | tag: uchar | | supstr_idx8(self, *args) -> 'ssize_t' | supstr_idx8(self, alt, tag) -> ssize_t + | alt: uchar + | tag: uchar | | supval(self, *args) -> 'ssize_t' | supval(self, alt, tag=stag) -> ssize_t + | alt: nodeidx_t + | tag: uchar | | supval_ea(self, *args) -> 'ssize_t' | supval_ea(self, ea, tag=stag) -> ssize_t + | ea: ea_t + | tag: uchar | | supval_idx8(self, *args) -> 'ssize_t' | supval_idx8(self, alt, tag) -> ssize_t + | alt: uchar + | tag: uchar | | valobj(self, *args) -> 'ssize_t' | valobj(self) -> ssize_t @@ -60085,69 +70941,58 @@ A number to represent a bad netnode reference. 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: 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 + add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t + @param insn: the referencing instruction - an ida_ua.insn_t, or an + address (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) -> '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) + calc_basevalue(target, base) -> 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. - @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 + calc_offset_base(ea, n) -> ea_t + @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) -> '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) + calc_probable_base_by_value(ea, off) -> ea_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 @@ -60157,87 +71002,79 @@ calc_reference_data(*args) -> 'bool' 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 + calc_reference_data(target, base, _from, ri, opval) -> bool + @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) -> 'ea_t' - calc_target(_from, opval, ri) -> ea_t - calc_target(_from, ea, n, opval) -> ea_t - - Calculates the target, using the provided 'refinfo_t' . + calc_target(_from, opval, ri) -> ea_t + @param _from (C++: ea_t) + @param opval (C++: adiff_t) + @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) + + calc_target(_from, ea, n, opval) -> ea_t + @param _from (C++: ea_t) + ea: ea_t + n: int + @param opval (C++: 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) + can_be_off32(ea) -> 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 + get_default_reftype(ea) -> reftype_t + @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 + get_offbase(ea, n) -> ea_t + @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) -> '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 &) - @param _from (C++: ea_t) - @param offset (C++: adiff_t) - @param getn_flags (C++: int) + get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str + @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) -> '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 (\ph{translate}) if your IDP module has such a function. Translation function is used to map linear @@ -60251,70 +71088,66 @@ get_offset_expression(*args) -> 'qstring *' 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) + get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str + @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) + @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' 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) + op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + @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) -> 'int' - op_offset_ex(ea, n, ri) -> int - - +op_offset_ex(*args) -> 'bool' 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 + op_offset_ex(ea, n, ri) -> bool + @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) -> '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) + op_plain_offset(ea, n, base) -> bool + @param ea (C++: ea_t) + @param n (C++: int) + @param base (C++: ea_t) Help on class __qmutex_t in module ida_pro: @@ -60512,13 +71345,15 @@ class boolvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< bool > const & | | __getitem__(self, *args) -> 'bool const &' | __getitem__(self, i) -> bool const & + | i: size_t | | __init__(self, *args) | __init__(self) -> boolvec_t - | __init__(self, x) -> boolvec_t + | 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 +71362,25 @@ class boolvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< bool > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: bool const & | | __swig_destroy__ = delete_boolvec_t(...) | delete_boolvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: bool const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: bool const & | | append = push_back(self, *args) -> 'bool &' | @@ -60568,52 +71408,74 @@ class boolvec_t(builtins.object) | | erase(self, *args) -> 'qvector< bool >::iterator' | erase(self, it) -> qvector< bool >::iterator + | it: qvector< bool >::iterator + | + | | erase(self, first, last) -> qvector< bool >::iterator + | first: qvector< bool >::iterator + | last: qvector< bool >::iterator | | extract(self, *args) -> 'bool *' | extract(self) -> bool * | | find(self, *args) -> 'qvector< bool >::const_iterator' | find(self, x) -> qvector< bool >::iterator + | x: bool const & + | + | | find(self, x) -> qvector< bool >::const_iterator + | x: bool const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bool()) + | x: bool const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: bool const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: bool * + | len: size_t | | insert(self, *args) -> 'qvector< bool >::iterator' | insert(self, it, x) -> qvector< bool >::iterator + | it: qvector< bool >::iterator + | x: bool const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bool &' | push_back(self, x) - | push_back(self) -> bool & + | x: bool const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: bool const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< bool > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -60692,26 +71554,28 @@ class channel_redir_t(builtins.object) 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 *) + check_process_exit(handle, exit_code, msecs=-1) -> int + @param handle: process handle to wait for (C++: void *) + @param exit_code: pointer to the buffer for the exit code (C++: int *) + msecs: int + @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 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) + clear_bits(bitmap, low, high) + @param bitmap (C++: uchar *) + @param low (C++: size_t) + @param high (C++: size_t) Help on class ea_array in module ida_pro: @@ -60722,14 +71586,18 @@ class ea_array(builtins.object) | | __getitem__(self, *args) -> 'ea_t' | __getitem__(self, index) -> ea_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> ea_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | index: size_t + | value: ea_t | | __swig_destroy__ = delete_ea_array(...) | delete_ea_array(self) @@ -60742,6 +71610,7 @@ class ea_array(builtins.object) | | frompointer(*args) -> 'ea_array *' | frompointer(t) -> ea_array + | t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -60759,6 +71628,7 @@ Help on function ea_array_frompointer in module ida_pro: ea_array_frompointer(*args) -> 'ea_array *' ea_array_frompointer(t) -> ea_array + t: ea_t * Help on class ea_pointer in module ida_pro: @@ -60777,6 +71647,7 @@ class ea_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | value: ea_t | | cast(self, *args) -> 'ea_t *' | cast(self) -> ea_t * @@ -60789,6 +71660,7 @@ class ea_pointer(builtins.object) | | frompointer(*args) -> 'ea_pointer *' | frompointer(t) -> ea_pointer + | t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -60806,19 +71678,18 @@ Help on function ea_pointer_frompointer in module ida_pro: ea_pointer_frompointer(*args) -> 'ea_pointer *' ea_pointer_frompointer(t) -> ea_pointer + 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) + extend_sign(v, nbytes, sign_extend) -> uint64 + @param v (C++: uint64) + @param nbytes (C++: int) + @param sign_extend (C++: bool) Help on class instant_dbgopts_t in module ida_pro: @@ -60880,13 +71751,15 @@ class longlongvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< long long > const & | | __getitem__(self, *args) -> 'long long const &' | __getitem__(self, i) -> long long const & + | i: size_t | | __init__(self, *args) | __init__(self) -> longlongvec_t - | __init__(self, x) -> longlongvec_t + | 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 +71768,25 @@ class longlongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: long long const & | | __swig_destroy__ = delete_longlongvec_t(...) | delete_longlongvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: long long const & | | append = push_back(self, *args) -> 'long long &' | @@ -60936,49 +71814,70 @@ class longlongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< long long >::iterator' | erase(self, it) -> qvector< long long >::iterator + | it: qvector< long long >::iterator + | + | | erase(self, first, last) -> qvector< long long >::iterator + | first: qvector< long long >::iterator + | 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 + | x: long long const & + | + | | find(self, x) -> qvector< long long >::const_iterator + | x: long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: long long * + | len: size_t | | insert(self, *args) -> 'qvector< long long >::iterator' | insert(self, it, x) -> qvector< long long >::iterator + | it: qvector< long long >::iterator + | x: long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'long long &' | push_back(self, x) - | push_back(self) -> long long & + | x: long long const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: long long const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61017,6 +71916,7 @@ class int_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | value: int | | cast(self, *args) -> 'int *' | cast(self) -> int * @@ -61029,6 +71929,7 @@ class int_pointer(builtins.object) | | frompointer(*args) -> 'int_pointer *' | frompointer(t) -> int_pointer + | t: int * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61046,6 +71947,7 @@ Help on function int_pointer_frompointer in module ida_pro: int_pointer_frompointer(*args) -> 'int_pointer *' int_pointer_frompointer(t) -> int_pointer + t: int * Help on class intvec_t in module ida_pro: @@ -61056,13 +71958,15 @@ class intvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | i: size_t | | __init__(self, *args) | __init__(self) -> intvec_t - | __init__(self, x) -> intvec_t + | 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 +71975,25 @@ class intvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: int const & | | __swig_destroy__ = delete_intvec_t(...) | delete_intvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: int const & | | append = push_back(self, *args) -> 'int &' | @@ -61112,49 +72021,70 @@ class intvec_t(builtins.object) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator + | it: qvector< int >::iterator + | + | | erase(self, first, last) -> qvector< int >::iterator + | first: qvector< int >::iterator + | last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator + | x: int const & + | + | | find(self, x) -> qvector< int >::const_iterator + | x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: int * + | len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator + | it: qvector< int >::iterator + | x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61179,71 +72109,58 @@ class intvec_t(builtins.object) 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) + is_control_tty(fd) -> enum tty_control_t + @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) + log2ceil(d64) -> int + @param d64 (C++: uint64) Help on function log2floor in module ida_pro: log2floor(*args) -> 'int' log2floor(d64) -> int + @param d64 (C++: 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 *) - @param r_switch (C++: const char *) - @return: true-ok, false-parse error + parse_dbgopts(ido, r_switch) -> bool + @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) -> 'int64' qatoll(nptr) -> int64 + @param nptr (C++: const char *) 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 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 @@ -61251,12 +72168,10 @@ qdetach_tty(*args) -> 'void' 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) + qexit(code) + @param code: exit code (C++: int) Help on class qmutex_locker_t in module ida_pro: @@ -61267,6 +72182,7 @@ class qmutex_locker_t(builtins.object) | | __init__(self, *args) | __init__(self, _lock) -> qmutex_locker_t + | _lock: qmutex_t | | __repr__ = _swig_repr(self) | @@ -61301,7 +72217,9 @@ class qrefcnt_obj_t(builtins.object) | 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: @@ -61322,21 +72240,29 @@ Help on function qstrvec_t_add in module ida_pro: qstrvec_t_add(*args) -> 'bool' qstrvec_t_add(_self, s) -> bool + self: PyObject * + s: char const * Help on function qstrvec_t_addressof in module ida_pro: qstrvec_t_addressof(*args) -> 'PyObject *' qstrvec_t_addressof(_self, idx) -> PyObject * + self: PyObject * + idx: size_t Help on function qstrvec_t_assign in module ida_pro: qstrvec_t_assign(*args) -> 'bool' qstrvec_t_assign(_self, other) -> bool + self: PyObject * + other: PyObject * Help on function qstrvec_t_clear in module ida_pro: qstrvec_t_clear(*args) -> 'bool' qstrvec_t_clear(_self, qclear) -> bool + self: PyObject * + qclear: bool Help on function qstrvec_t_create in module ida_pro: @@ -61347,97 +72273,123 @@ Help on function qstrvec_t_destroy in module ida_pro: qstrvec_t_destroy(*args) -> 'bool' qstrvec_t_destroy(py_obj) -> bool + 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 + self: PyObject * + py_list: PyObject * Help on function qstrvec_t_get in module ida_pro: qstrvec_t_get(*args) -> 'PyObject *' qstrvec_t_get(_self, idx) -> PyObject * + self: PyObject * + 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 * + 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 * + self: PyObject * Help on function qstrvec_t_insert in module ida_pro: qstrvec_t_insert(*args) -> 'bool' qstrvec_t_insert(_self, idx, s) -> bool + self: PyObject * + idx: size_t + s: char const * Help on function qstrvec_t_remove in module ida_pro: qstrvec_t_remove(*args) -> 'bool' qstrvec_t_remove(_self, idx) -> bool + self: PyObject * + 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 + self: PyObject * + idx: size_t + 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 + self: PyObject * + +Help on function qthread_equal in module ida_pro: + +qthread_equal(*args) -> 'bool' + Are two threads equal? + + qthread_equal(q1, q2) -> bool + @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' + quote_cmdline_arg(arg) -> bool + @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) - @return: a pointer to the newly allocated array + qvector_reserve(vec, old, cnt, elsize) -> void * + @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) -> '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) - @return: 0 on success, nonzero otherwise + readbytes(h, res, size, mf) -> int + @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) -> 'void' reloc_value(value, size, delta, mf) + @param value (C++: void *) + @param size (C++: int) + @param delta (C++: adiff_t) + @param mf (C++: bool) Help on function relocate_relobj in module ida_pro: relocate_relobj(*args) -> 'bool' relocate_relobj(_relobj, ea, mf) -> bool + @param _relobj (C++: struct relobj_t *) + @param ea (C++: ea_t) + @param mf (C++: bool) Help on class sel_array in module ida_pro: @@ -61448,14 +72400,18 @@ class sel_array(builtins.object) | | __getitem__(self, *args) -> 'sel_t' | __getitem__(self, index) -> sel_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> sel_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | index: size_t + | value: sel_t | | __swig_destroy__ = delete_sel_array(...) | delete_sel_array(self) @@ -61468,6 +72424,7 @@ class sel_array(builtins.object) | | frompointer(*args) -> 'sel_array *' | frompointer(t) -> sel_array + | t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61485,6 +72442,7 @@ Help on function sel_array_frompointer in module ida_pro: sel_array_frompointer(*args) -> 'sel_array *' sel_array_frompointer(t) -> sel_array + t: sel_t * Help on class sel_pointer in module ida_pro: @@ -61503,6 +72461,7 @@ class sel_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | value: sel_t | | cast(self, *args) -> 'sel_t *' | cast(self) -> sel_t * @@ -61515,6 +72474,7 @@ class sel_pointer(builtins.object) | | frompointer(*args) -> 'sel_pointer *' | frompointer(t) -> sel_pointer + | t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61532,19 +72492,17 @@ Help on function sel_pointer_frompointer in module ida_pro: sel_pointer_frompointer(*args) -> 'sel_pointer *' sel_pointer_frompointer(t) -> sel_pointer + t: sel_t * 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) + set_bits(bitmap, low, high) + @param bitmap (C++: uchar *) + @param low (C++: size_t) + @param high (C++: size_t) Help on class sizevec_t in module ida_pro: @@ -61555,13 +72513,15 @@ class sizevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< size_t > const & | | __getitem__(self, *args) -> 'size_t const &' | __getitem__(self, i) -> size_t const & + | i: size_t | | __init__(self, *args) | __init__(self) -> sizevec_t - | __init__(self, x) -> sizevec_t + | 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 +72531,29 @@ class sizevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< size_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: size_t const & | | __swig_destroy__ = delete_sizevec_t(...) | delete_sizevec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: size_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: size_t const & | | at(self, *args) -> 'size_t const &' | at(self, _idx) -> size_t const & + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -61611,52 +72577,74 @@ class sizevec_t(builtins.object) | | erase(self, *args) -> 'qvector< size_t >::iterator' | erase(self, it) -> qvector< size_t >::iterator + | it: qvector< size_t >::iterator + | + | | erase(self, first, last) -> qvector< size_t >::iterator + | first: qvector< size_t >::iterator + | 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 + | x: size_t const & + | + | | find(self, x) -> qvector< size_t >::const_iterator + | x: size_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=size_t()) + | x: size_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: size_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: size_t * + | len: size_t | | insert(self, *args) -> 'qvector< size_t >::iterator' | insert(self, it, x) -> qvector< size_t >::iterator + | it: qvector< size_t >::iterator + | x: size_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'size_t &' | push_back(self, x) - | push_back(self) -> size_t & + | x: size_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: size_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< size_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61682,8 +72670,6 @@ Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' str2user(str) -> PyObject * - - Insert C-style escape characters to string @return: new string with escape characters inserted @@ -61697,10 +72683,11 @@ class strvec_t(builtins.object) | | __getitem__(self, *args) -> 'simpleline_t const &' | __getitem__(self, i) -> simpleline_t const & + | i: size_t | | __init__(self, *args) | __init__(self) -> strvec_t - | __init__(self, x) -> strvec_t + | 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 +72698,8 @@ class strvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: simpleline_t const & | | __swig_destroy__ = delete_strvec_t(...) | delete_strvec_t(self) @@ -61741,7 +72730,12 @@ class strvec_t(builtins.object) | | erase(self, *args) -> 'qvector< simpleline_t >::iterator' | erase(self, it) -> qvector< simpleline_t >::iterator + | it: qvector< simpleline_t >::iterator + | + | | erase(self, first, last) -> qvector< simpleline_t >::iterator + | first: qvector< simpleline_t >::iterator + | last: qvector< simpleline_t >::iterator | | extract(self, *args) -> 'simpleline_t *' | extract(self) -> simpleline_t * @@ -61751,35 +72745,47 @@ class strvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=simpleline_t()) + | x: simpleline_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: simpleline_t * + | len: size_t | | insert(self, *args) -> 'qvector< simpleline_t >::iterator' | insert(self, it, x) -> qvector< simpleline_t >::iterator + | it: qvector< simpleline_t >::iterator + | x: simpleline_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'simpleline_t &' | push_back(self, x) - | push_back(self) -> simpleline_t & + | x: simpleline_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: simpleline_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< simpleline_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -61813,6 +72819,7 @@ class sval_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | value: sval_t | | cast(self, *args) -> 'sval_t *' | cast(self) -> sval_t * @@ -61825,6 +72832,7 @@ class sval_pointer(builtins.object) | | frompointer(*args) -> 'sval_pointer *' | frompointer(t) -> sval_pointer + | t: sval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61842,6 +72850,7 @@ Help on function sval_pointer_frompointer in module ida_pro: sval_pointer_frompointer(*args) -> 'sval_pointer *' sval_pointer_frompointer(t) -> sval_pointer + t: sval_t * Help on class tid_array in module ida_pro: @@ -61852,14 +72861,18 @@ class tid_array(builtins.object) | | __getitem__(self, *args) -> 'tid_t' | __getitem__(self, index) -> tid_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> tid_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | index: size_t + | value: tid_t | | __swig_destroy__ = delete_tid_array(...) | delete_tid_array(self) @@ -61872,6 +72885,7 @@ class tid_array(builtins.object) | | frompointer(*args) -> 'tid_array *' | frompointer(t) -> tid_array + | t: tid_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61889,6 +72903,7 @@ Help on function tid_array_frompointer in module ida_pro: tid_array_frompointer(*args) -> 'tid_array *' tid_array_frompointer(t) -> tid_array + t: tid_t * Help on class uchar_array in module ida_pro: @@ -61899,14 +72914,18 @@ class uchar_array(builtins.object) | | __getitem__(self, *args) -> 'uchar' | __getitem__(self, index) -> uchar + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uchar_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | index: size_t + | value: uchar | | __swig_destroy__ = delete_uchar_array(...) | delete_uchar_array(self) @@ -61919,6 +72938,7 @@ class uchar_array(builtins.object) | | frompointer(*args) -> 'uchar_array *' | frompointer(t) -> uchar_array + | t: uchar * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61936,6 +72956,7 @@ Help on function uchar_array_frompointer in module ida_pro: uchar_array_frompointer(*args) -> 'uchar_array *' uchar_array_frompointer(t) -> uchar_array + t: uchar * Help on class ulonglongvec_t in module ida_pro: @@ -61946,13 +72967,15 @@ class ulonglongvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< unsigned long long > const & | | __getitem__(self, *args) -> 'unsigned long long const &' | __getitem__(self, i) -> unsigned long long const & + | i: size_t | | __init__(self, *args) | __init__(self) -> ulonglongvec_t - | __init__(self, x) -> ulonglongvec_t + | 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 +72984,25 @@ class ulonglongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< unsigned long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: unsigned long long const & | | __swig_destroy__ = delete_ulonglongvec_t(...) | delete_ulonglongvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: unsigned long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: unsigned long long const & | | append = push_back(self, *args) -> 'unsigned long long &' | @@ -62002,49 +73030,70 @@ class ulonglongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned long long >::iterator' | erase(self, it) -> qvector< unsigned long long >::iterator + | it: qvector< unsigned long long >::iterator + | + | | erase(self, first, last) -> qvector< unsigned long long >::iterator + | first: qvector< unsigned long long >::iterator + | 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 + | x: unsigned long long const & + | + | | find(self, x) -> qvector< unsigned long long >::const_iterator + | x: unsigned long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: unsigned long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: unsigned long long * + | len: size_t | | insert(self, *args) -> 'qvector< unsigned long long >::iterator' | insert(self, it, x) -> qvector< unsigned long long >::iterator + | it: qvector< unsigned long long >::iterator + | x: unsigned long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned long long &' | push_back(self, x) - | push_back(self) -> unsigned long long & + | x: unsigned long long const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned long long const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< unsigned long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -62075,13 +73124,15 @@ class uintvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< unsigned int > const & | | __getitem__(self, *args) -> 'unsigned int const &' | __getitem__(self, i) -> unsigned int const & + | i: size_t | | __init__(self, *args) | __init__(self) -> uintvec_t - | __init__(self, x) -> uintvec_t + | 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 +73141,25 @@ class uintvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< unsigned int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: unsigned int const & | | __swig_destroy__ = delete_uintvec_t(...) | delete_uintvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: unsigned int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: unsigned int const & | | append = push_back(self, *args) -> 'unsigned int &' | @@ -62131,49 +73187,70 @@ class uintvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned int >::iterator' | erase(self, it) -> qvector< unsigned int >::iterator + | it: qvector< unsigned int >::iterator + | + | | erase(self, first, last) -> qvector< unsigned int >::iterator + | first: qvector< unsigned int >::iterator + | 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 + | x: unsigned int const & + | + | | find(self, x) -> qvector< unsigned int >::const_iterator + | x: unsigned int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: unsigned int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: unsigned int * + | len: size_t | | insert(self, *args) -> 'qvector< unsigned int >::iterator' | insert(self, it, x) -> qvector< unsigned int >::iterator + | it: qvector< unsigned int >::iterator + | x: unsigned int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned int &' | push_back(self, x) - | push_back(self) -> unsigned int & + | x: unsigned int const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< unsigned int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -62204,14 +73281,18 @@ class uval_array(builtins.object) | | __getitem__(self, *args) -> 'uval_t' | __getitem__(self, index) -> uval_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uval_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | index: size_t + | value: uval_t | | __swig_destroy__ = delete_uval_array(...) | delete_uval_array(self) @@ -62224,6 +73305,7 @@ class uval_array(builtins.object) | | frompointer(*args) -> 'uval_array *' | frompointer(t) -> uval_array + | t: uval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62241,20 +73323,19 @@ Help on function uval_array_frompointer in module ida_pro: uval_array_frompointer(*args) -> 'uval_array *' uval_array_frompointer(t) -> uval_array + 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) - @return: 0 on success, nonzero otherwise + writebytes(h, l, size, mf) -> int + @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 @@ -62264,7 +73345,7 @@ UTF-16 codepage. ida_pro.IDA_SDK_VERSION """ -IDA SDK v7.4. +IDA SDK v7.5. """ ida_pro.IDBDEC_ESCAPE @@ -62311,86 +73392,73 @@ endian (Intel 80x86). 1: big endian (PowerPC). 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) - @return: success + forget_problem(type, ea) -> bool + @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) -> '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: 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 + get_problem(type, lowea) -> ea_t + @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) -> 'qstring *' - 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 + get_problem_desc(t, ea) -> str + @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) -> 'char const *' - get_problem_name(type, longname=True) -> char const * - - Get problem list description. - - @param type (C++: problist_id_t) - @param longname (C++: bool) + get_problem_name(type, longname=True) -> char const * + @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) + is_problem_present(t, ea) -> bool + @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: 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 *) + remember_problem(type, ea, msg=None) + @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) -> 'bool' was_ida_decision(ea) -> bool + @param ea (C++: ea_t) Help on class array_of_rangesets in module ida_range: @@ -62401,13 +73469,15 @@ class array_of_rangesets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< rangeset_t > const & | | __getitem__(self, *args) -> 'rangeset_t const &' | __getitem__(self, i) -> rangeset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_rangesets - | __init__(self, x) -> array_of_rangesets + | 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,23 +73487,29 @@ class array_of_rangesets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< rangeset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: rangeset_t const & | | __swig_destroy__ = delete_array_of_rangesets(...) | delete_array_of_rangesets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: rangeset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: rangeset_t const & | | at(self, *args) -> 'rangeset_t const &' | at(self, _idx) -> rangeset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -62457,52 +73533,74 @@ class array_of_rangesets(builtins.object) | | erase(self, *args) -> 'qvector< rangeset_t >::iterator' | erase(self, it) -> rangeset_t + | it: qvector< rangeset_t >::iterator + | + | | erase(self, first, last) -> rangeset_t + | first: qvector< rangeset_t >::iterator + | 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 + | x: rangeset_t const & + | + | | find(self, x) -> rangeset_t + | x: rangeset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rangeset_t()) + | x: rangeset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: rangeset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: rangeset_t * + | len: size_t | | insert(self, *args) -> 'qvector< rangeset_t >::iterator' | insert(self, it, x) -> rangeset_t + | it: qvector< rangeset_t >::iterator + | x: rangeset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rangeset_t &' | push_back(self, x) - | push_back(self) -> rangeset_t + | x: rangeset_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: rangeset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< rangeset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -62533,19 +73631,24 @@ class range_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __init__(self, *args) | __init__(self) -> range_t - | __init__(self, ea1, ea2) -> range_t + | ea1: ea_t + | ea2: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: range_t const & | | __repr__ = _swig_repr(self) | @@ -62556,29 +73659,48 @@ class range_t(builtins.object) | _print(self) -> size_t | | clear(self, *args) -> 'void' - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) -> 'int' + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62610,10 +73732,10 @@ class range_t(builtins.object) 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! + + range_t_print(cb) -> str + cb: range_t const * Help on class rangeset_t in module ida_range: @@ -62624,13 +73746,17 @@ class rangeset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, aset) -> bool + | aset: rangeset_t const & | | __getitem__(self, idx) | | __init__(self, *args) | __init__(self) -> rangeset_t - | __init__(self, range) -> rangeset_t + | range: range_t const & + | + | | __init__(self, ivs) -> rangeset_t + | 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 +73765,7 @@ class rangeset_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, aset) -> bool + | aset: rangeset_t const & | | __repr__ = _swig_repr(self) | @@ -62649,78 +73776,160 @@ class rangeset_t(builtins.object) | _print(self) -> size_t | | add(self, *args) -> 'bool' + | Add an address range to the set. If 'range' intersects an existing + | element e, then e is extended to include 'range', and any superfluous + | elements (subsets of e) are removed. + | | add(self, range) -> bool + | @param range: address range to add. cannot be empty (C++: const + | range_t &) + | @return: false if no elements were added (the set was unchanged) + | + | | add(self, start, _end) -> bool + | start: ea_t + | _end: ea_t + | @return: false if no elements were added (the set was unchanged) + | + | | add(self, aset) -> bool + | aset: rangeset_t const & + | @return: false if no elements were added (the set was unchanged) | | 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. | | clear(self, *args) -> 'void' - | clear(self) + | Delete all elements from the set. See 'qvector::clear()' | | contains(self, *args) -> 'bool' + | Does an element of the rangeset contain 'ea'? See + | range_t::contains(ea_t) + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, aset) -> bool + | 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 *' + | Get the element from the set that contains 'ea'. + | | find_range(self, ea) -> range_t + | @param ea (C++: ea_t) + | @return: NULL if there is no such element | | getrange(self, *args) -> 'range_t const &' + | Get the 'range_t' at index 'idx'. + | | getrange(self, idx) -> range_t + | @param idx (C++: int) | | has_common(self, *args) -> 'bool' + | Is there an ea in 'range' that is also in the rangeset? + | | has_common(self, range) -> bool + | @param range (C++: const range_t &) + | + | | has_common(self, aset) -> bool + | aset: rangeset_t const & | | includes(self, *args) -> 'bool' + | Is every ea in 'range' contained in the rangeset? + | | includes(self, range) -> bool + | @param range (C++: const range_t &) | | intersect(self, *args) -> 'bool' + | Set the rangeset to its intersection with 'aset'. + | | intersect(self, aset) -> bool + | @param aset (C++: const rangeset_t &) + | @return: false if the set was unchanged | | is_equal(self, *args) -> 'bool' + | Do this rangeset and 'aset' have identical elements? + | | is_equal(self, aset) -> bool + | @param aset (C++: const rangeset_t &) | | is_subset_of(self, *args) -> 'bool' + | Is every element in the rangeset contained in an element of 'aset'? + | | is_subset_of(self, aset) -> bool + | @param aset (C++: const rangeset_t &) | | lastrange(self, *args) -> 'range_t const &' - | lastrange(self) -> range_t + | Get the last 'range_t' in the set. | | next_addr(self, *args) -> 'ea_t' + | Get the smallest ea_t value greater than 'ea' contained in the + | rangeset. + | | next_addr(self, ea) -> ea_t + | @param ea (C++: ea_t) | | next_range(self, *args) -> 'ea_t' + | Get the smallest ea_t value greater than 'ea' that is not in the same + | range as 'ea'. + | | next_range(self, ea) -> ea_t + | @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' + | Get the largest ea_t value less than 'ea' contained in the rangeset. + | | prev_addr(self, ea) -> ea_t + | @param ea (C++: ea_t) | | prev_range(self, *args) -> 'ea_t' + | Get the largest ea_t value less than 'ea' that is not in the same + | range as 'ea'. + | | prev_range(self, ea) -> ea_t + | @param ea (C++: ea_t) | | sub(self, *args) -> 'bool' + | Subtract an address range from the set. All subsets of 'range' will be + | removed, and all elements that intersect 'range' will be + | truncated/split so they do not include 'range'. + | | sub(self, range) -> bool + | @param range: address range to subtract. cannot be empty. (C++: const + | range_t &) + | @return: false if nothing was subtracted (the set was unchanged) + | + | | sub(self, ea) -> bool + | ea: ea_t + | @return: false if nothing was subtracted (the set was unchanged) + | + | | sub(self, aset) -> bool + | aset: rangeset_t const & + | @return: false if nothing was subtracted (the set was unchanged) | | swap(self, *args) -> 'void' + | Set this = 'r' and 'r' = this. See 'qvector::swap()' + | | swap(self, r) + | @param r (C++: rangeset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62748,13 +73957,15 @@ class rangevec_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __init__(self, *args) | __init__(self) -> rangevec_base_t - | __init__(self, x) -> rangevec_base_t + | 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,23 +73975,29 @@ class rangevec_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | __swig_destroy__ = delete_rangevec_base_t(...) | delete_rangevec_base_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -62804,52 +74021,74 @@ class rangevec_base_t(builtins.object) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -62902,9 +74141,11 @@ class rangevec_t(rangevec_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -62914,18 +74155,24 @@ class rangevec_t(rangevec_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -62949,52 +74196,74 @@ class rangevec_t(rangevec_base_t) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -63016,59 +74285,47 @@ class rangevec_t(rangevec_base_t) 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 *) - @return: false if the [key+]value doesn't exist + reg_data_type(name, subkey=None) -> regval_type_t + @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) -> '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 *) - @return: success + reg_delete(name, subkey=None) -> bool + @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) -> 'bool' - reg_delete_subkey(name) -> bool - - Delete a key from the registry. - - @param name (C++: const char *) + reg_delete_subkey(name) -> bool + @param name (C++: const char *) 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 *) + reg_delete_tree(name) -> bool + @param name (C++: const char *) 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 *) + reg_exists(name, subkey=None) -> bool + @param name: value name (C++: const char *) + @param subkey: parent key (C++: const char *) Help on function reg_flush in module ida_registry: @@ -63083,176 +74340,146 @@ 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 * - - 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. + reg_read_binary(name, subkey=None) -> PyObject * + @param name: value name (C++: const char *) + @param subkey: key name (C++: const char *) + @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 *) - @return: boolean read from registry, or 'defval' if the read failed + reg_read_bool(name, defval, subkey=None) -> bool + @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) -> '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 + reg_read_int(name, defval, subkey=None) -> int + @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) -> 'PyObject *' - 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 + reg_read_string(name, subkey=None, _def=None) -> PyObject * + @param name: value name (C++: const char *) + @param subkey: key name (C++: const char *) + 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 *) + reg_read_strlist(subkey) + @param subkey (C++: const char *) 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 *) + reg_subkey_exists(name) -> bool + @param name (C++: const char *) Help on function reg_subkey_subkeys in module ida_registry: reg_subkey_subkeys(*args) -> 'PyObject *' - reg_subkey_subkeys(name) -> PyObject * - - Get all subkey names of given key. - - @param name (C++: const char *) + reg_subkey_subkeys(name) -> PyObject * + @param name (C++: const char *) Help on function reg_subkey_values in module ida_registry: reg_subkey_values(*args) -> 'PyObject *' - reg_subkey_values(name) -> PyObject * - - Get all value names under given key. - - @param name (C++: const char *) + reg_subkey_values(name) -> PyObject * + @param name (C++: const char *) 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.'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 *) + reg_update_filestrlist(subkey, add, maxrecs, rem=None) + @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) -> '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) + reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) + @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) -> '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 *) + reg_write_binary(name, py_bytes, subkey=None) -> PyObject * + @param name: value name (C++: const char *) + py_bytes: PyObject * + @param subkey: key name (C++: const char *) 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 *) + reg_write_bool(name, value, subkey=None) + @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) -> '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 *) + reg_write_int(name, value, subkey=None) + @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) -> '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 *) + reg_write_string(name, utf8, subkey=None) + @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 @@ -63266,146 +74493,137 @@ 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. 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) + find_code(ea, sflag) -> ea_t + @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) + find_data(ea, sflag) -> ea_t + @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) + find_defined(ea, sflag) -> ea_t + @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) + find_error(ea, sflag) -> ea_t + @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 next immediate operand with the given value. - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) + find_imm(ea, sflag, search_value) -> ea_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) + find_not_func(ea, sflag) -> ea_t + @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. + find_notype(ea, sflag) -> ea_t + @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 access to a register.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. - @param ea (C++: ea_t) - @param sflag (C++: int) + find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t + @param out: 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. (C++: + struct reg_access_t *) + @param start_ea: starting address (C++: ea_t) + @param end_ea: 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. (C++: + ea_t) + @param regname: the register to search for. (C++: const char *) + @param sflag: combination of Search flags bits. (C++: int) + @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) + find_suspop(ea, sflag) -> ea_t + @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 *) - @param sflag (C++: int) + find_text(start_ea, y, x, ustr, sflag) -> ea_t + @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) -> 'ea_t' - find_unknown(ea, sflag) -> ea_t - - Find next unexplored address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + find_unknown(ea, sflag) -> ea_t + @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) + search_down(sflag) -> bool + @param sflag (C++: int) === ida_search EPYDOC INJECTIONS === ida_search.SEARCH_BRK """ -return 'BADADDR' if Ctrl-Break wass pressed during search +return 'BADADDR' if the search was cancelled. """ ida_search.SEARCH_CASE @@ -63413,6 +74631,11 @@ ida_search.SEARCH_CASE case-sensitive search (case-insensitive otherwise) """ +ida_search.SEARCH_DEF +""" +find_reg_access: search for a definition (write access) +""" + ida_search.SEARCH_DOWN """ search towards higher addresses @@ -63426,37 +74649,40 @@ 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(). +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. """ ida_search.SEARCH_NOBRK """ -don't test for ctrl-break to interrupt the search +do not test if the user clicked cancel to interrupt the search """ ida_search.SEARCH_NOSHOW """ -don't display the search progress/refresh screen +do not display the search progress/refresh screen """ ida_search.SEARCH_REGEX """ -regular expressions in search string (only supported for txt search) +regular expressions in search string (supported only for the text +search) """ ida_search.SEARCH_UP """ search towards lower addresses """ + +ida_search.SEARCH_USE +""" +find_reg_access: search for a use (read access) +""" === 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 @@ -63466,488 +74692,407 @@ add_segm(*args) -> 'bool' 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) + add_segm(para, start, end, name, sclass, flags=0) -> bool + @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) + @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 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) + add_segm_ex(s, name, sclass, flags) -> bool + @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) + @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) + add_segment_translation(segstart, mappedseg) -> bool + @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) + @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: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number + allocate_selector(segbase) -> sel_t + @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) -> '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: segment to modify (C++: segment_t *) - @param is_deb_segm: new status of the segment (C++: bool) - @return: Change segment status result codes + change_segment_status(s, is_deb_segm) -> int + @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) -> '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) + del_segm(ea, flags) -> bool + @param ea: any address belonging to the segment (C++: ea_t) + @param flags: Segment modification flags (C++: int) + @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) + del_segment_translations(segstart) + @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) -> '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: number of selector to remove from the translation - table (C++: sel_t) + del_selector(selector) + @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) -> '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: paragraph to search in the translation table (C++: ea_t) - @return: selector value or base + find_selector(base) -> sel_t + @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) -> 'sel_t' get_defsr(s, reg) -> sel_t + s: segment_t * + 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 + get_group_selector(grpsel) -> sel_t + @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) -> '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) + get_next_seg(ea) -> segment_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) + get_prev_seg(ea) -> segment_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) - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, otherwise segment base linear address + get_segm_base(s) -> ea_t + @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) -> '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: segment name. may be NULL. (C++: const char *) - @return: NULL or pointer to segment structure + get_segm_by_name(name) -> segment_t + @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) -> '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: a segment with the specified selector will be - returned (C++: sel_t) - @return: pointer to segment or NULL + get_segm_by_sel(selector) -> segment_t + @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) -> '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) + get_segm_class(s) -> str + @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) -> '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) + get_segm_name(s, flags=0) -> str + @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) -> '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) + get_segm_num(ea) -> int + @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) -> '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: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, the segment base paragraph + get_segm_para(s) -> ea_t + @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) -> '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. + get_segment_alignment(align) -> char const * + @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) - @return: size of comment or -1 + get_segment_cmt(s, repeatable) -> str + @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) -> '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. + get_segment_combination(comb) -> char const * + @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. + get_segment_translations(transmap, segstart) -> ssize_t + @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) -> 'int' - get_selector_qty() -> int - - +get_selector_qty(*args) -> '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) + get_visible_segm_name(s) -> str + @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) -> 'sel_t *, ea_t *' - getn_selector(n) -> bool - - Get description of selector (0.. 'get_selector_qty()' -1) - - @param n (C++: int) + getn_selector(n) -> bool + @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.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 + getnseg(n) -> segment_t + @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) -> '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 + getseg(ea) -> segment_t + @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) -> 'bool' - is_finally_visible_segm(s) -> bool - - See 'SFL_HIDDEN' , 'SCF_SHHID_SEGM' . - - @param s (C++: segment_t *) + is_finally_visible_segm(s) -> bool + @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 *) + is_segm_locked(segm) -> bool + @param segm (C++: const segment_t *) 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: linear address (C++: ea_t) + is_spec_ea(ea) -> bool + @param ea: linear address (C++: ea_t) 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) + is_spec_segm(seg_type) -> bool + @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 *) + is_visible_segm(s) -> bool + @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 *) - @param lock (C++: bool) + lock_segm(segm, lock) + @param segm (C++: const segment_t *) + @param lock (C++: bool) Help on class lock_segment in module ida_segment: @@ -63958,6 +75103,7 @@ class lock_segment(builtins.object) | | __init__(self, *args) | __init__(self, _segm) -> lock_segment + | _segm: segment_t const * | | __repr__ = _swig_repr(self) | @@ -63979,9 +75125,6 @@ class lock_segment(builtins.object) 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 @@ -63989,17 +75132,15 @@ move_segm(*args) -> 'int' 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 + move_segm(s, to, flags=0) -> int + @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) -> '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 @@ -64010,55 +75151,50 @@ move_segm_start(*args) -> 'bool' 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) + move_segm_start(ea, newstart, mode) -> bool + @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) + @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) - @return: Move segment result codes + rebase_program(delta, flags) -> int + @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) -> '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) + segm_adjust_diff(s, delta) -> adiff_t + @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) -> '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) + segm_adjust_ea(s, ea) -> ea_t + @param s (C++: const segment_t *) + @param ea (C++: ea_t) Help on class segment_t in module ida_segment: @@ -64081,10 +75217,10 @@ class segment_t(ida_range.range_t) | delete_segment_t(self) | | 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) @@ -64115,30 +75251,38 @@ class segment_t(ida_range.range_t) | | set_debugger_segm(self, *args) -> 'void' | set_debugger_segm(self, debseg) + | debseg: bool | | set_header_segm(self, *args) -> 'void' | set_header_segm(self, on) + | on: bool | | set_hidden_segtype(self, *args) -> 'void' | set_hidden_segtype(self, hide) + | hide: bool | | set_loader_segm(self, *args) -> 'void' | set_loader_segm(self, ldrseg) + | ldrseg: bool | | set_ob_ok(self, *args) -> 'void' | set_ob_ok(self) | | set_visible_segm(self, *args) -> 'void' | set_visible_segm(self, visible) + | 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. | | use32(self, *args) -> 'bool' - | use32(self) -> bool + | Use 32 bit segment addressing? | | use64(self, *args) -> 'bool' - | use64(self) -> bool + | Use 64 bit segment addressing? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64193,43 +75337,66 @@ class segment_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -64252,221 +75419,202 @@ class segment_t(ida_range.range_t) 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' + segtype(ea) -> uchar + @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) -> '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); + sel2ea(selector) -> ea_t + @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) -> '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'. + sel2para(selector) -> ea_t + @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) -> 'void' set_defsr(s, reg, value) + s: segment_t * + reg: int + value: sel_t Help on function set_group_selector in module ida_segment: set_group_selector(*args) -> 'int' + Create a new group of segments (used OMF files). + 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 + @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) -> '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: 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 + set_segm_addressing(s, bitness) -> bool + @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) -> 'bool' - set_segm_base(s, newbase) -> bool - - Internal function. - - @param s (C++: segment_t *) - @param newbase (C++: ea_t) + set_segm_base(s, newbase) -> bool + @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) + set_segm_class(s, sclass, flags=0) -> int + @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) + @retval: 1 - ok, name is good and segment is renamed + @retval: 0 - failure, name is NULL or bad or segment is NULL 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: 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) + set_segm_end(ea, newend, flags) -> bool + @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) + @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: 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) + set_segm_name(s, name, flags=0) -> int + @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) + @retval: 1 - ok, name is good and segment is renamed + @retval: 0 - failure, name is bad or segment is NULL 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: 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) + set_segm_start(ea, newstart, flags) -> bool + @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) + @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) + set_segment_cmt(s, cmt, repeatable) + @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) -> '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 &) + set_segment_translations(segstart, transmap) -> bool + @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 &) + @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 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) + set_selector(selector, paragraph) -> int + @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) + @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) + set_visible_segm(s, visible) + @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 @@ -64474,38 +75622,36 @@ setup_selector(*args) -> 'sel_t' 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 + setup_selector(segbase) -> sel_t + @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) -> '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 &) - @param seg (C++: segment_t *) + std_out_segm_footer(ctx, seg) + @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) -> 'bool' - 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 + take_memory_snapshot(only_loader_segs) -> bool + @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) -> 'bool' update_segm(s) -> bool + @param s (C++: segment_t *) === ida_segment EPYDOC INJECTIONS === ida_segment.ADDSEG_FILLGAP @@ -64546,7 +75692,7 @@ they overlap. ida_segment.ADDSEG_OR_DIE """ - 'qexit()' if can't add a segment +'qexit()' if can't add a segment """ ida_segment.ADDSEG_QUIET @@ -64959,142 +76105,118 @@ Stack. Combine as for C=2. This combine type forces 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) + copy_sreg_ranges(dst_rg, src_rg, map_selector=False) + @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) -> '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: start_ea of the deleted range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + del_sreg_range(ea, rg) -> bool + @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) -> 'bool' - 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 + get_prev_sreg_range(out, ea, rg) -> bool + @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) -> '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: 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. + get_sreg(ea, rg) -> sel_t + @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) -> '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) - @return: success + get_sreg_range(out, ea, rg) -> bool + @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) -> '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) + get_sreg_range_num(ea, rg) -> int + @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) -> 'size_t' - get_sreg_ranges_qty(rg) -> size_t - - Get number of segment register ranges. - @param rg: the segment register number (C++: int) + get_sreg_ranges_qty(rg) -> size_t + @param rg: the segment register number (C++: int) 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) - @return: success + getn_sreg_range(out, rg, n) -> bool + @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) -> 'void' - set_default_dataseg(ds_sel) - - Set default value of DS register for all segments. - - @param ds_sel (C++: sel_t) + set_default_dataseg(ds_sel) + @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) - @return: success + set_default_sreg_value(sg, rg, value) -> bool + @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) -> '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 @@ -65102,30 +76224,29 @@ set_sreg_at_next_code(*args) -> 'void' 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) + set_sreg_at_next_code(ea1, ea2, rg, value) + @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) -> '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: 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 + split_sreg_range(ea, rg, v, tag, silent=False) -> bool + @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: @@ -65164,43 +76285,66 @@ class sreg_range_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -65250,46 +76394,31 @@ the value is specified by the user 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. 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) + get_strlist_item(si, n) -> bool + @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() -> strwinsetup_t - - Get access to 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. Help on class string_info_t in module ida_strlist: @@ -65301,10 +76430,11 @@ class string_info_t(builtins.object) | | __init__(self, *args) | __init__(self) -> string_info_t - | __init__(self, _ea) -> string_info_t + | _ea: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: string_info_t const & | | __repr__ = _swig_repr(self) | @@ -65352,6 +76482,7 @@ class strwinsetup_t(builtins.object) | | _set_strtypes(self, *args) -> 'PyObject *' | _set_strtypes(self, py_t) -> PyObject * + | py_t: PyObject * | | is_initialized(self, *args) -> 'bool' | is_initialized(self) -> bool @@ -65386,545 +76517,467 @@ class strwinsetup_t(builtins.object) 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==NULL then a name will be generated "struct_%d". - @param idx (C++: uval_t) - @param name (C++: const char *) - @param is_union (C++: bool) + add_struc(idx, name, is_union=False) -> tid_t + @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) -> '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) + add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t + @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) -> 'bool' - del_member_tinfo(sptr, mptr) -> bool - - Delete tinfo for given member. - - @param sptr (C++: struc_t *) - @param mptr (C++: member_t *) + del_member_tinfo(sptr, mptr) -> bool + @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 *) + del_struc(sptr) -> bool + @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) + del_struc_member(sptr, offset) -> bool + @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 + del_struc_members(sptr, off1, off2) -> int + @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 + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_member_ref_array + | _data: member_t * + | _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) + | i: size_t + | 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 + | dyn_member_ref_array_count_get(self) -> size_t + | + | data + | dyn_member_ref_array_data_get(self) -> member_t + | + | 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) + expand_struc(sptr, offset, delta, recalc=True) -> 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). - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + get_best_fit_member(sptr, offset) -> member_t + @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) -> '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_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 *) + get_max_offset(sptr) -> ea_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) + get_member(sptr, offset) -> member_t + @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) -> 'struc_t **' - get_member_by_fullname(fullname) -> member_t - - Get a member by its fully qualified name, "struct.field". - - @param fullname (C++: const char *) + get_member_by_fullname(fullname) -> member_t + @param fullname (C++: const char *) 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. - - @param mid (C++: tid_t) + get_member_by_id(mid) -> member_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 *) + get_member_by_name(sptr, membername) -> member_t + @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) -> 'qstring *' - get_member_cmt(mid, repeatable) -> str - - Get comment of structure member. - - @param mid (C++: tid_t) - @param repeatable (C++: bool) + get_member_cmt(mid, repeatable) -> str + @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) + get_member_fullname(mid) -> str + @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) + get_member_id(sptr, offset) -> tid_t + @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) -> 'qstring *' - get_member_name(mid) -> str - - Get name of structure member. - - @param mid (C++: tid_t) + get_member_name(mid) -> str + @param mid (C++: 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 size of structure member. May return 0 for the last member of varstruct. For union members, returns 'member_t::eoff' . + + get_member_size(mptr) -> asize_t + @param mptr (C++: const member_t *) 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 *) + get_member_struc(fullname) -> struc_t + @param fullname (C++: const char *) 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 *) + get_member_tinfo(tif, mptr) -> bool + @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) -> '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) + get_next_member_idx(sptr, off) -> ssize_t + @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) -> '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++ + get_next_struc_idx(idx) -> uval_t + @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 *) + get_or_guess_member_tinfo(tif, mptr) -> bool + @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) -> '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) + get_prev_member_idx(sptr, off) -> ssize_t + @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) -> '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 + get_prev_struc_idx(idx) -> uval_t + @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 *) + get_sptr(mptr) -> struc_t + @param mptr (C++: const member_t *) 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) + get_struc(id) -> struc_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) + get_struc_by_idx(idx) -> tid_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) + get_struc_cmt(id, repeatable) -> str + @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 + get_struc_first_offset(sptr) -> ea_t + @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) -> 'tid_t' - get_struc_id(name) -> tid_t - - Get struct id by name. - - @param name (C++: const char *) + get_struc_id(name) -> tid_t + @param name (C++: const char *) 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) + get_struc_idx(id) -> uval_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 + get_struc_last_offset(sptr) -> ea_t + @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) -> '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) + get_struc_name(id, flags=0) -> str + @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) -> '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 + get_struc_next_offset(sptr, offset) -> ea_t + @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) -> '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 + get_struc_prev_offset(sptr, offset) -> ea_t + @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) -> '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_struc_size(id) -> asize_t - - Get struct size (also see 'get_struc_size(tid_t)' ) + get_struc_size(sptr) -> asize_t + @param sptr (C++: const struc_t *) - @param sptr (C++: const struc_t *) + + get_struc_size(id) -> asize_t + 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 *) + is_anonymous_member_name(name) -> bool + @param name (C++: const char *) 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 *) + is_dummy_member_name(name) -> bool + @param name (C++: const char *) 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) + is_member_id(mid) -> bool + @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) + is_special_member(id) -> bool + @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) + is_union(id) -> bool + @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 *) + is_varmember(mptr) -> bool + @param mptr (C++: const member_t *) 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) + is_varstr(id) -> bool + @param id (C++: tid_t) Help on class member_t in module ida_struct: @@ -65942,28 +76995,28 @@ class member_t(builtins.object) | delete_member_t(self) | | by_til(self, *args) -> 'bool' - | by_til(self) -> bool + | Was the member created due to the type system? | | 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: @@ -65995,167 +77048,130 @@ class member_t(builtins.object) 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 *) + retrieve_member_info(buf, mptr) -> opinfo_t + @param buf (C++: opinfo_t *) + @param mptr (C++: const member_t *) 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) + save_struc(sptr, may_update_ltypes=True) + @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) + set_member_cmt(mptr, cmt, repeatable) -> bool + @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) -> '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 *) + set_member_name(sptr, offset, name) -> bool + @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) -> '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) + set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t + @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) -> '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++: flags_t) - @param mt (C++: const opinfo_t *) - @param nbytes (C++: asize_t) + set_member_type(sptr, offset, flag, mt, nbytes) -> bool + @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) -> 'bool' - set_struc_align(sptr, shift) -> bool - - Set structure alignment ( 'SF_ALIGN' ) - - @param sptr (C++: struc_t *) - @param shift (C++: int) + set_struc_align(sptr, shift) -> bool + @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) + set_struc_cmt(id, cmt, repeatable) -> bool + @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) -> 'void' - set_struc_hidden(sptr, is_hidden) - - Hide/unhide a struct type. - - @param sptr (C++: struc_t *) - @param is_hidden (C++: bool) + set_struc_hidden(sptr, is_hidden) + @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 *) - @param idx (C++: uval_t) + set_struc_idx(sptr, idx) -> bool + @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) -> '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) + set_struc_listed(sptr, is_listed) + @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 *) + set_struc_name(id, name) -> bool + @param id (C++: tid_t) + @param name (C++: const char *) 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) + stroff_as_size(plen, sptr, value) -> bool + @param plen (C++: int) + @param sptr (C++: const struc_t *) + @param value (C++: asize_t) Help on class struc_t in module ida_struct: @@ -66164,6 +77180,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. | @@ -66173,40 +77192,45 @@ class struc_t(builtins.object) | 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_member(self, *args) -> 'member_t *' - | get_member(self, index) -> 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_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_union(self, *args) -> 'bool' - | is_union(self) -> bool + | Is a union? | | is_varstr(self, *args) -> 'bool' - | is_varstr(self) -> bool + | Is variable size structure? | | set_alignment(self, *args) -> 'void' + | Do not use; use 'set_struc_align()' + | | set_alignment(self, shift) + | @param shift (C++: int) | | set_ghost(self, *args) -> 'void' | set_ghost(self, _is_ghost) + | @param _is_ghost (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66224,7 +77248,7 @@ class struc_t(builtins.object) | struc_t_id_get(self) -> tid_t | | members - | struc_t_members_get(self) -> member_t + | __get_members__(self) -> dyn_member_ref_array | | memqty | struc_t_memqty_get(self) -> uint32 @@ -66249,6 +77273,7 @@ class struct_field_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> struct_field_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -66257,6 +77282,8 @@ class struct_field_visitor_t(builtins.object) | | visit_field(self, *args) -> 'int' | visit_field(self, sptr, mptr) -> int + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66273,18 +77300,16 @@ 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 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) + visit_stroff_fields(sfv, path, disp, appzero) -> flags_t + @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 @@ -66414,13 +77439,11 @@ structname.fieldname 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 &) - @return: error code; 0 means good + add_tryblk(tb) -> int + @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: @@ -66476,9 +77499,11 @@ class catch_t(try_handler_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66488,18 +77513,24 @@ class catch_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66520,52 +77551,74 @@ class catch_t(try_handler_t) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66593,13 +77646,15 @@ class catchvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< catch_t > const & | | __getitem__(self, *args) -> 'catch_t const &' | __getitem__(self, i) -> catch_t + | i: size_t | | __init__(self, *args) | __init__(self) -> catchvec_t - | __init__(self, x) -> catchvec_t + | 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,23 +77664,29 @@ class catchvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< catch_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: catch_t const & | | __swig_destroy__ = delete_catchvec_t(...) | delete_catchvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: catch_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: catch_t const & | | at(self, *args) -> 'catch_t const &' | at(self, _idx) -> catch_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66649,52 +77710,74 @@ class catchvec_t(builtins.object) | | erase(self, *args) -> 'qvector< catch_t >::iterator' | erase(self, it) -> catch_t + | it: qvector< catch_t >::iterator + | + | | erase(self, first, last) -> catch_t + | first: qvector< catch_t >::iterator + | 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 + | x: catch_t const & + | + | | find(self, x) -> catch_t + | x: catch_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=catch_t()) + | x: catch_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: catch_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: catch_t * + | len: size_t | | insert(self, *args) -> 'qvector< catch_t >::iterator' | insert(self, it, x) -> catch_t + | it: qvector< catch_t >::iterator + | x: catch_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'catch_t &' | push_back(self, x) - | push_back(self) -> catch_t + | x: catch_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: catch_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< catch_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66719,37 +77802,31 @@ class catchvec_t(builtins.object) 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 &) + del_tryblks(range) + @param range: the range to be cleared (C++: const range_t &) 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) - @return: start address of surrounding tryblk, otherwise BADADDR + find_syseh(ea) -> ea_t + @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) -> '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: output buffer; may be NULL (C++: tryblks_t *) - @param range: address range to change (C++: const range_t &) - @return: number of found try blocks + get_tryblks(tbv, range) -> size_t + @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: @@ -66802,9 +77879,11 @@ class seh_t(try_handler_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66814,18 +77893,24 @@ class seh_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66846,52 +77931,74 @@ class seh_t(try_handler_t) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66951,9 +78058,11 @@ class try_handler_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66963,18 +78072,24 @@ class try_handler_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66995,52 +78110,74 @@ class try_handler_t(ida_range.rangevec_t) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -67074,7 +78211,7 @@ class tryblk_t(ida_range.rangevec_t) | | __init__(self, *args) | __init__(self) -> tryblk_t - | __init__(self, r) -> tryblk_t + | r: tryblk_t const & | | __repr__ = _swig_repr(self) | @@ -67122,9 +78259,11 @@ class tryblk_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67134,18 +78273,24 @@ class tryblk_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -67163,52 +78308,74 @@ class tryblk_t(ida_range.rangevec_t) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -67236,13 +78403,15 @@ class tryblks_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< tryblk_t > const & | | __getitem__(self, *args) -> 'tryblk_t const &' | __getitem__(self, i) -> tryblk_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tryblks_t - | __init__(self, x) -> tryblks_t + | 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,23 +78421,29 @@ class tryblks_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< tryblk_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: tryblk_t const & | | __swig_destroy__ = delete_tryblks_t(...) | delete_tryblks_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: tryblk_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: tryblk_t const & | | at(self, *args) -> 'tryblk_t const &' | at(self, _idx) -> tryblk_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -67292,52 +78467,74 @@ class tryblks_t(builtins.object) | | erase(self, *args) -> 'qvector< tryblk_t >::iterator' | erase(self, it) -> tryblk_t + | it: qvector< tryblk_t >::iterator + | + | | erase(self, first, last) -> tryblk_t + | first: qvector< tryblk_t >::iterator + | 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 + | x: tryblk_t const & + | + | | find(self, x) -> tryblk_t + | x: tryblk_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=tryblk_t()) + | x: tryblk_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: tryblk_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: tryblk_t * + | len: size_t | | insert(self, *args) -> 'qvector< tryblk_t >::iterator' | insert(self, it, x) -> tryblk_t + | it: qvector< tryblk_t >::iterator + | x: tryblk_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tryblk_t &' | push_back(self, x) - | push_back(self) -> tryblk_t + | x: tryblk_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: tryblk_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< tryblk_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -67403,37 +78600,30 @@ bad start address Help on function add_til in module ida_typeinf: add_til(*args) -> 'int' - 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 + add_til(name, flags) -> int + @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) -> 'uint32' - alloc_type_ordinal(ti) -> uint32 - - \call2{alloc_type_ordinals,ti,1} - - @param ti (C++: til_t *) + alloc_type_ordinal(ti) -> uint32 + @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) - @return: the first ordinal. 0 means failure. + alloc_type_ordinals(ti, qty) -> uint32 + @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: @@ -67446,6 +78636,7 @@ class aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> aloc_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -67454,6 +78645,9 @@ class aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int + | @param v (C++: argloc_t &) + | @param off (C++: int) + | @param size (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67470,41 +78664,36 @@ class aloc_visitor_t(builtins.object) 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: - 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 + append_abi_opts(abi_opts, user_level=False) -> bool + @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) -> 'bool' - append_argloc(out, vloc) -> bool - - Serialize argument location. - - @param out (C++: qtype *) - @param vloc (C++: const argloc_t &) + append_argloc(out, vloc) -> bool + @param out (C++: qtype *) + @param vloc (C++: const argloc_t &) Help on function append_tinfo_covered in module ida_typeinf: append_tinfo_covered(*args) -> 'bool' append_tinfo_covered(out, typid, offset) -> bool + out: rangeset_t * + typid: uint32 + 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 @@ -67512,45 +78701,39 @@ apply_callee_tinfo(*args) -> 'bool' '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 + apply_callee_tinfo(caller, tif) -> bool + @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) -> '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: 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 + apply_cdecl(til, ea, decl, flags=0) -> bool + @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) -> '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 *) - @return: success + apply_named_type(ea, name) -> bool + @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) -> '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 typedoes not exist or the new type is 'better' than the old type, then thenew type will be @@ -67560,48 +78743,43 @@ apply_once_tinfo_and_name(*args) -> 'bool' 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 + apply_once_tinfo_and_name(dea, tif, name) -> bool + @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) -> '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: 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 + apply_tinfo(ea, tif, flags) -> bool + @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) -> '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} - @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 *) + apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool + @param insn - an ida_ua.insn_t, or an address (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) -> '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 @@ -67619,25 +78797,31 @@ class argloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: argloc_t const & | | __init__(self, *args) | __init__(self) -> argloc_t - | __init__(self, r) -> argloc_t + | r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: argloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: argloc_t const & | | __repr__ = _swig_repr(self) | @@ -67645,144 +78829,210 @@ class argloc_t(builtins.object) | delete_argloc_t(self) | | _consume_rrel(self, *args) -> 'bool' + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) -> 'bool' + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) -> 'void' - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) -> 'void' + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) -> 'void' + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) -> 'void' + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg1(self, *args) -> 'void' + | Use 'set_reg1()' + | | _set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | _set_reg2(self, *args) -> 'void' + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) -> 'void' + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) -> 'bool' + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | 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 + | r: argloc_t const & | | consume_rrel(self, *args) -> 'void' + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | 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. | | 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' . | | justify_reg_high(self, *args) -> 'void' + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) -> 'void' + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | 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 static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg1(self, *args) -> 'void' + | Set register location. + | | set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | set_reg2(self, *args) -> 'void' + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) -> 'void' + | Set stack offset location. + | | set_stkoff(self, off) + | @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' + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67815,10 +79065,11 @@ class argpart_t(argloc_t) | | __init__(self, *args) | __init__(self, a) -> argpart_t - | __init__(self) -> argpart_t + | a: argloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: argpart_t const & | | __repr__ = _swig_repr(self) | @@ -67826,13 +79077,16 @@ class argpart_t(argloc_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' + | Assign this = r and r = this. + | | swap(self, r) + | @param r (C++: argpart_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67851,155 +79105,223 @@ class argpart_t(argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: argloc_t const & | | _consume_rrel(self, *args) -> 'bool' + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) -> 'bool' + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) -> 'void' - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) -> 'void' + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) -> 'void' + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) -> 'void' + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg1(self, *args) -> 'void' + | Use 'set_reg1()' + | | _set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | _set_reg2(self, *args) -> 'void' + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) -> 'void' + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) -> 'bool' + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | 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 + | r: argloc_t const & | | consume_rrel(self, *args) -> 'void' + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | 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. | | 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' . | | justify_reg_high(self, *args) -> 'void' + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) -> 'void' + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | 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 static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg1(self, *args) -> 'void' + | Set register location. + | | set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | set_reg2(self, *args) -> 'void' + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) -> 'void' + | Set stack offset location. + | | set_stkoff(self, off) + | @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 +79346,15 @@ class argpartvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t + | i: size_t | | __init__(self, *args) | __init__(self) -> argpartvec_t - | __init__(self, x) -> argpartvec_t + | 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,23 +79364,29 @@ class argpartvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< argpart_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: argpart_t const & | | __swig_destroy__ = delete_argpartvec_t(...) | delete_argpartvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -68080,52 +79410,74 @@ class argpartvec_t(builtins.object) | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t + | it: qvector< argpart_t >::iterator + | + | | erase(self, first, last) -> argpart_t + | first: qvector< argpart_t >::iterator + | 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 + | x: argpart_t const & + | + | | find(self, x) -> argpart_t + | x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) + | x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: argpart_t * + | len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t + | it: qvector< argpart_t >::iterator + | x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) - | push_back(self) -> argpart_t + | x: argpart_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: argpart_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68147,6 +79499,74 @@ 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 + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_argtinfo_helper_t(...) + | delete_argtinfo_helper_t(self) + | + | has_delay_slot(self, *args) -> 'bool' + | The call instruction with a delay slot?. + | + | has_delay_slot(self, arg0) -> bool + | arg0: ea_t + | + | is_stkarg_load(self, *args) -> '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 + | + | is_stkarg_load(self, insn, src, dst) -> bool + | @param insn - 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 the operand type as specified. + | + | set_op_tinfo(self, insn, x, tif, name) -> bool + | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x (C++: const op_t &) + | @param tif (C++: const tinfo_t &) + | @param name (C++: const char *) + | + | use_arg_tinfos(self, *args) -> 'void' + | This function is to be called by the processor module in response to + | ev_use_arg_types. + | + | use_arg_tinfos(self, caller, fti, rargs) + | @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 + | argtinfo_helper_t_reserved_get(self) -> size_t + | + | thisown + | The membership flag + Help on class array_type_data_t in module ida_typeinf: class array_type_data_t(builtins.object) @@ -68156,6 +79576,8 @@ class array_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, b=0, n=0) -> array_type_data_t + | b: size_t + | n: size_t | | __repr__ = _swig_repr(self) | @@ -68163,7 +79585,10 @@ class array_type_data_t(builtins.object) | delete_array_type_data_t(self) | | swap(self, *args) -> 'void' + | set this = r and r = this + | | swap(self, r) + | @param r (C++: array_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68189,14 +79614,12 @@ class array_type_data_t(builtins.object) 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) + begin_type_updating(utp) + @param utp (C++: update_type_t) Help on class bitfield_type_data_t in module ida_typeinf: @@ -68207,24 +79630,33 @@ class bitfield_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: bitfield_type_data_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: bitfield_type_data_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: bitfield_type_data_t const & | | __init__(self, *args) | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t + | _nbytes: uchar + | _width: uchar + | _is_unsigned: bool | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: bitfield_type_data_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: bitfield_type_data_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: bitfield_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -68233,9 +79665,11 @@ class bitfield_type_data_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: bitfield_type_data_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: bitfield_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68266,41 +79700,40 @@ class bitfield_type_data_t(builtins.object) 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) + calc_c_cpp_name(name, type, ccn_flags) -> str + @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) -> '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: 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) + calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int + @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) + @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 + out: rangeset_t * + 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 @@ -68317,30 +79750,48 @@ class callregs_t(builtins.object) | | __init__(self, *args) | __init__(self) -> callregs_t - | __init__(self, cc) -> callregs_t + | 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 policy & registers for given CC. + | | init_regs(self, cc) + | @param cc (C++: cm_t) | | reginds(self, *args) -> 'bool' + | Get register indexes within GP/FP arrays. (-1 -> is not present in the + | corresponding array) + | | reginds(self, gp_ind, fp_ind, r) -> bool + | @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' + | Init policy & registers (arrays are -1-terminated) + | | set(self, _policy, gprs, fprs) + | @param _policy (C++: argreg_policy_t) + | @param gprs (C++: const int *) + | @param fprs (C++: const int *) | | ---------------------------------------------------------------------- | Static methods defined here: | | regcount(*args) -> 'int' | regcount(cc) -> int + | cc: cm_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68370,80 +79821,77 @@ Help on function callregs_t_regcount in module ida_typeinf: callregs_t_regcount(*args) -> 'int' callregs_t_regcount(cc) -> int + 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 *) - @return: == 0 means nothing is chosen, otherwise an ordinal number + choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 + @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) -> '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: 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 + choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 + @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) -> '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 *) - @return: false if nothing is chosen, otherwise true + choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool + @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) -> 'void' clear_tinfo_t(_this) + _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 + compact_til(ti) -> bool + @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 + t1: uint32 + t2: uint32 + tcflags: int Help on class const_aloc_visitor_t in module ida_typeinf: @@ -68456,6 +79904,7 @@ class const_aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> const_aloc_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -68464,6 +79913,9 @@ class const_aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int + | @param v (C++: const argloc_t &) + | @param off (C++: int) + | @param size (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68480,150 +79932,140 @@ class const_aloc_visitor_t(builtins.object) 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) + convert_pt_flags_to_hti(pt_flags) -> 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. - @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 + copy_named_type(dsttil, srctil, name) -> uint32 + @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) -> 'void' copy_tinfo_t(_this, r) + _this: tinfo_t * + 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) + create_numbered_type_name(ord) -> str + @param ord (C++: int32) Help on function create_tinfo in module ida_typeinf: create_tinfo(*args) -> 'bool' create_tinfo(_this, bt, bt2, ptr) -> bool + _this: tinfo_t * + bt: type_t + bt2: type_t + 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}. 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) - @return: success + del_named_type(ti, name, ntf_flags) -> bool + @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) -> 'bool' - del_numbered_type(ti, ordinal) -> bool - - Delete a numbered type. - - @param ti (C++: til_t *) - @param ordinal (C++: uint32) + del_numbered_type(ti, ordinal) -> bool + @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 *) + del_til(name) -> bool + @param name (C++: const char *) Help on function del_tinfo_attr in module ida_typeinf: del_tinfo_attr(*args) -> 'bool' del_tinfo_attr(tif, key, make_copy) -> bool + tif: tinfo_t * + key: qstring const & + make_copy: bool 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 *) - @return: success + deref_ptr(ptr_ea, tif, closure_obj=None) -> bool + @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) -> 'bool' deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool + tif: tinfo_t * + til: til_t const * + ptype: type_t const ** + pfields: p_list const ** + pfldcmts: p_list const ** Help on function dstr_tinfo in module ida_typeinf: dstr_tinfo(*args) -> 'char const *' dstr_tinfo(tif) -> char const * + 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 &) - @param praloc_bits (C++: int) + dump_func_type_data(fti, praloc_bits) -> str + @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) -> '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) + end_type_updating(utp) + @param utp (C++: update_type_t) Help on class enum_member_t in module ida_typeinf: @@ -68634,12 +80076,14 @@ class enum_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: enum_member_t const & | | __init__(self, *args) | __init__(self) -> enum_member_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: enum_member_t const & | | __repr__ = _swig_repr(self) | @@ -68648,6 +80092,7 @@ class enum_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: enum_member_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68684,13 +80129,15 @@ class enum_member_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t + | i: size_t | | __init__(self, *args) | __init__(self) -> enum_member_vec_t - | __init__(self, x) -> enum_member_vec_t + | 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,23 +80147,29 @@ class enum_member_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -68740,52 +80193,74 @@ class enum_member_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | + | | erase(self, first, last) -> enum_member_t + | first: qvector< enum_member_t >::iterator + | 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 + | x: enum_member_t const & + | + | | find(self, x) -> enum_member_t + | x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) + | x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: enum_member_t * + | len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) - | push_back(self) -> enum_member_t + | x: enum_member_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: enum_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< enum_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68821,6 +80296,7 @@ class enum_type_data_t(enum_member_vec_t) | | __init__(self, *args) | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t + | _bte: bte_t | | __repr__ = _swig_repr(self) | @@ -68849,7 +80325,10 @@ class enum_type_data_t(enum_member_vec_t) | is_udec(self) -> bool | | swap(self, *args) -> 'void' + | swap two instances + | | swap(self, r) + | @param r (C++: enum_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68871,9 +80350,11 @@ class enum_type_data_t(enum_member_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68883,18 +80364,24 @@ class enum_type_data_t(enum_member_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: enum_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -68918,46 +80405,67 @@ class enum_type_data_t(enum_member_vec_t) | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | + | | erase(self, first, last) -> enum_member_t + | first: qvector< enum_member_t >::iterator + | 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 + | x: enum_member_t const & + | + | | find(self, x) -> enum_member_t + | x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) + | x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: enum_member_t * + | len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) - | push_back(self) -> enum_member_t + | x: enum_member_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: enum_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -68982,84 +80490,71 @@ 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 - - Deserialize argument location. - - @param vloc (C++: argloc_t *) - @param ptype (C++: const type_t **) - @param is_retval (C++: bool) + extract_argloc(vloc, ptype, is_retval) -> bool + @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) -> 'int' find_tinfo_udt_member(udm, typid, strmem_flags) -> int + udm: udt_member_t * + typid: uint32 + 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. 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) + first_named_type(ti, ntf_flags) -> char const * + @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) -> '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) + for_all_arglocs(vv, vloc, size, off=0) -> 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()' - - @param vv (C++: const_aloc_visitor_t &) - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param off (C++: int) + for_all_const_arglocs(vv, vloc, size, off=0) -> int + @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) -> 'void' - free_til(ti) - - Free memory allocated by til. - - @param ti (C++: til_t *) + free_til(ti) + @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_has_stkframe_hole(ea, fti) -> bool + @param ea (C++: ea_t) + @param fti (C++: const func_type_data_t &) Help on class func_type_data_t in module ida_typeinf: @@ -69082,13 +80577,22 @@ class func_type_data_t(funcargvec_t) | delete_func_type_data_t(self) | | dump(self, *args) -> 'bool' + | Dump information that is not always visible in the function prototype. + | (argument locations, return location, total stkarg size) + | | dump(self, praloc_bits=0x02) -> bool + | @param praloc_bits (C++: int) | | get_call_method(self, *args) -> 'int' | get_call_method(self) -> int | | guess_cc(self, *args) -> 'cm_t' + | Guess function calling convention use the following info: argument + | locations and 'stkargs' + | | guess_cc(self, purged, cc_flags) -> cm_t + | @param purged (C++: int) + | @param cc_flags (C++: int) | | is_high(self, *args) -> 'bool' | is_high(self) -> bool @@ -69104,6 +80608,7 @@ class func_type_data_t(funcargvec_t) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: func_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69134,9 +80639,11 @@ class func_type_data_t(funcargvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69146,18 +80653,24 @@ class func_type_data_t(funcargvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: funcarg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -69181,46 +80694,67 @@ class func_type_data_t(funcargvec_t) | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | + | | erase(self, first, last) -> funcarg_t + | first: qvector< funcarg_t >::iterator + | 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 + | x: funcarg_t const & + | + | | find(self, x) -> funcarg_t + | x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) + | x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: funcarg_t * + | len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) - | push_back(self) -> funcarg_t + | x: funcarg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: funcarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -69251,12 +80785,14 @@ class funcarg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: funcarg_t const & | | __init__(self, *args) | __init__(self) -> funcarg_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: funcarg_t const & | | __repr__ = _swig_repr(self) | @@ -69304,13 +80840,15 @@ class funcargvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> funcargvec_t - | __init__(self, x) -> funcargvec_t + | 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,23 +80858,29 @@ class funcargvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: funcarg_t const & | | __swig_destroy__ = delete_funcargvec_t(...) | delete_funcargvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -69360,52 +80904,74 @@ class funcargvec_t(builtins.object) | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | + | | erase(self, first, last) -> funcarg_t + | first: qvector< funcarg_t >::iterator + | 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 + | x: funcarg_t const & + | + | | find(self, x) -> funcarg_t + | x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) + | x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: funcarg_t * + | len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) - | push_back(self) -> funcarg_t + | x: funcarg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: funcarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< funcarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -69430,69 +80996,60 @@ class funcargvec_t(builtins.object) 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 *) - @param mangle (C++: bool) - @param cc (C++: cm_t) - @param type (C++: const tinfo_t *) + gen_decorate_name(name, mangle, cc, type) -> str + @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) -> 'void' gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) + @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 gen_use_arg_tinfos2 in module ida_typeinf: + +gen_use_arg_tinfos2(*args) -> 'void' + 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 *) + gen_use_arg_tinfos2(_this, caller, fti, rargs) + @param _this (C++: struct 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 *) - @param ordinal (C++: uint32) + get_alias_target(ti, ordinal) -> uint32 + @param ti (C++: const til_t *) + @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 @@ -69501,122 +81058,91 @@ get_arg_addrs(*args) -> 'PyObject *' 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) + get_base_type(t) -> 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) + get_comp(comp) -> 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) + get_compiler_abbr(id) -> char const * + @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) + get_compiler_name(id) -> char const * + @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 *) + get_compilers(ids, names, abbrs) + @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: 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 + get_enum_member_expr(tif, serial, value) -> str + @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) -> 'type_t' - get_full_type(t) -> type_t - - Get basic type bits + type flags ( 'TYPE_FULL_MASK' ) - - @param t (C++: type_t) + get_full_type(t) -> type_t + @param t (C++: type_t) 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: the type to inspect (C++: const tinfo_t &) + get_idainfo_by_type(tif) -> bool + @param tif: the type to inspect (C++: const tinfo_t &) 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. @@ -69625,8 +81151,6 @@ Help on function get_named_type in module ida_typeinf: get_named_type(*args) -> 'PyObject *' 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 @@ -69638,152 +81162,153 @@ get_named_type(*args) -> 'PyObject *' Help on function get_named_type64 in module ida_typeinf: get_named_type64(*args) -> 'PyObject *' - 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) + get_named_type64(til, name, ntf_flags) -> PyObject * + til: til_t const * + @param name (C++: const char *) + @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 * - - Retrieve a type by its ordinal number. - - @param ordinal (C++: uint32) + get_numbered_type(til, ordinal) -> PyObject * + 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 NULL - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + get_numbered_type_name(ti, ordinal) -> char const * + @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) -> '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 *) - @param type (C++: const type_t *) + get_ordinal_from_idb_type(name, type) -> int + @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) -> 'uint32' - get_ordinal_qty(ti) -> uint32 - - Get number of allocated ordinals. - @param ti (C++: const til_t *) - @return: uint32(-1) if failed + get_ordinal_qty(ti) -> uint32 + @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) -> 'type_t' get_scalar_bt(size) -> type_t + @param size (C++: int) Help on function get_stock_tinfo in module ida_typeinf: get_stock_tinfo(*args) -> 'bool' get_stock_tinfo(tif, id) -> bool + tif: tinfo_t * + 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 + typid: uint32 + key: qstring const & + bv: bytevec_t * + 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 + typid: uint32 + tav: type_attrs_t * + 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 + typid: uint32 + bt2: type_t + 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 + outptr: void * + typid: uint32 + 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 + typid: uint32 + 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 + p_effalign: uint32 * + typid: uint32 + 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) + get_type_flags(t) -> 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 *) - @param name (C++: const char *) + get_type_ordinal(ti, name) -> int32 + @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) -> '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 &) - @param npurged (C++: int) - @param cc_flags (C++: int) + guess_func_cc(fti, npurged, cc_flags) -> cm_t + @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) -> '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 + guess_tinfo(tif, id) -> int + @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 +81324,9 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | __init__(self, *args) | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t + | _tif: tinfo_t const & + | _ea: ea_t + | _pb: int | | __repr__ = _swig_repr(self) | @@ -69807,9 +81335,13 @@ 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 (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, arg3) -> int + | @param candidate (C++: const tinfo_t &) + | arg3: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69830,187 +81362,190 @@ 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 + ordinal: int + flags: int + buf: char * + maxsize: size_t 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 + 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 * + ordinal: int Help on function idc_get_type in module ida_typeinf: idc_get_type(*args) -> 'size_t' idc_get_type(ea) -> str + 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 * + ea: ea_t Help on function idc_guess_type in module ida_typeinf: idc_guess_type(*args) -> 'size_t' idc_guess_type(ea) -> str + 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 * + ti: til_t * + decl: char const * + flags: int Help on function idc_parse_types in module ida_typeinf: idc_parse_types(*args) -> 'int' idc_parse_types(input, flags) -> int + input: char const * + 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) -> PyObject * + type: type_t const * + fields: p_list const * + name: char const * + 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 + ordinal: int + dcl: char const * + 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 + import_type(til, idx, name, flags=0) -> tid_t + @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) -> 'bool' - is_autosync(name, type) -> bool - is_autosync(name, tif) -> bool - - Is the specified idb type automatically synchronized? + is_autosync(name, type) -> bool + @param name (C++: const char *) + @param type (C++: const type_t *) - @param name (C++: const char *) - @param type (C++: const type_t *) + + is_autosync(name, tif) -> bool + @param name (C++: const char *) + 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) + is_code_far(cm) -> bool + @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) + is_comp_unsure(comp) -> 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) + is_data_far(cm) -> bool + @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_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 *) - @param ord (C++: uint32 *) + is_ordinal_name(name, ord=None) -> bool + @param name (C++: const char *) + @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?.this function is valid only for x86 code - @param cm (C++: cm_t) + is_purging_cc(cm) -> bool + @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 (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_struct in module ida_typeinf: is_restype_struct(*args) -> 'bool' is_restype_struct(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_struni in module ida_typeinf: is_restype_struni(*args) -> 'bool' is_restype_struni(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_void in module ida_typeinf: is_restype_void(*args) -> 'bool' is_restype_void(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) 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 @@ -70019,539 +81554,405 @@ is_sdacl_byte(*args) -> 'bool' in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in the type bit definitions) - @param t (C++: type_t) + is_sdacl_byte(t) -> bool + @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) + is_tah_byte(t) -> bool + @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) + is_type_arithmetic(t) -> bool + @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) + is_type_array(t) -> bool + @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) + is_type_bitfld(t) -> bool + @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) + is_type_bool(t) -> 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) + is_type_char(t) -> bool + @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) + is_type_complex(t) -> bool + @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) + is_type_const(t) -> bool + @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) + is_type_double(t) -> bool + @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) + is_type_enum(t) -> bool + @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) + is_type_ext_arithmetic(t) -> bool + @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) + is_type_ext_integral(t) -> bool + @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) + is_type_float(t) -> bool + @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) + is_type_floating(t) -> bool + @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) + is_type_func(t) -> bool + @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) + is_type_int(bt) -> bool + @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) + is_type_int128(t) -> bool + @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) + is_type_int16(t) -> bool + @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) + is_type_int32(t) -> bool + @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) + is_type_int64(t) -> bool + @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) + is_type_integral(t) -> 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) + is_type_ldouble(t) -> bool + @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) + is_type_paf(t) -> bool + @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) + is_type_partial(t) -> bool + @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) + is_type_ptr(t) -> bool + @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) + is_type_ptr_or_array(t) -> bool + @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) + is_type_struct(t) -> bool + @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) + is_type_struni(t) -> bool + @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) + is_type_sue(t) -> bool + @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) + is_type_tbyte(t) -> bool + @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) + is_type_typedef(t) -> bool + @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) + is_type_uchar(t) -> bool + @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) + is_type_uint(t) -> bool + @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) + is_type_uint128(t) -> bool + @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) + is_type_uint16(t) -> bool + @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) + is_type_uint32(t) -> bool + @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) + is_type_uint64(t) -> bool + @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) + is_type_union(t) -> bool + @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) + is_type_unknown(t) -> bool + @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) + is_type_void(t) -> bool + @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) + is_type_volatile(t) -> bool + @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) + is_typeid_last(t) -> bool + @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) + is_user_cc(cm) -> bool + @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) + is_vararg_cc(cm) -> bool + @param cm (C++: cm_t) Help on function lexcompare_tinfo in module ida_typeinf: lexcompare_tinfo(*args) -> 'int' lexcompare_tinfo(t1, t2, arg3) -> int + t1: uint32 + t2: uint32 + 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. 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 + load_til(name, tildir=None) -> til_t + @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) -> 'qstring *' - load_til_header(tildir, name) -> til_t - - Get human-readable til description. - - @param tildir (C++: const char *) - @param name (C++: const char *) + load_til_header(tildir, name) -> til_t + @param tildir (C++: const char *) + @param name (C++: const char *) 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, @@ -70562,10 +81963,14 @@ lower_type(*args) -> 'int' 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 *) + lower_type(til, tif, name=None, _helper=None) -> int + @param til (C++: til_t *) + @param tif (C++: tinfo_t *) + @param name (C++: const char *) + @param _helper (C++: lowertype_helper_t *) + @retval: 1 - removed FTI_HIGH , + @retval: 2 - made substantial changes + @retval: -1 - failure Help on class lowertype_helper_t in module ida_typeinf: @@ -70584,9 +81989,13 @@ class lowertype_helper_t(builtins.object) | | func_has_stkframe_hole(self, *args) -> 'bool' | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | @param candidate (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, candidate_data) -> int + | @param candidate (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70603,76 +82012,64 @@ class lowertype_helper_t(builtins.object) 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 *) + new_til(name, desc) -> til_t + @param name (C++: const char *) + @param desc (C++: const char *) 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. 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) + next_named_type(ti, name, ntf_flags) -> char const * + @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) -> 'bool' - 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 *) + optimize_argloc(vloc, size, gaps) -> bool + @param vloc (C++: argloc_t *) + @param size (C++: int) + @param gaps (C++: const rangeset_t *) + @retval: true - success + @retval: false - the input argloc was illegal 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 *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: relobj_t *) - @param objoff (C++: void *) - @param pio_flags (C++: int) + pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t + @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) -> '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) + pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t + @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) -> '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 ti: Type info. 'None' can be passed. @param tp: type string @@ -70686,9 +82083,7 @@ pack_object_to_bv(*args) -> 'PyObject *' 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 @@ -70701,37 +82096,36 @@ pack_object_to_idb(*args) -> 'PyObject *' 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.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) + parse_decl(tif, til, decl, flags) -> str + @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) + @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: 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. + parse_decls(til, input, printer, hti_flags) -> int + @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: @@ -70744,6 +82138,7 @@ class predicate_t(builtins.object) | | __init__(self, *args) | __init__(self) -> predicate_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -70752,6 +82147,10 @@ class predicate_t(builtins.object) | | should_display(self, *args) -> 'bool' | should_display(self, til, name, type, fields) -> bool + | @param til (C++: const til_t *) + | @param name (C++: const char *) + | @param type (C++: const type_t *) + | @param fields (C++: const p_list *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70768,46 +82167,51 @@ class predicate_t(builtins.object) 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) + print_argloc(vloc, size=0, vflags=0) -> str + @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) -> 'PyObject *' - 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) + print_decls(printer, til, py_ordinals, flags) -> PyObject * + @param printer: a handler for printing text (C++: text_sink_t &) + @param til: the type library holding the ordinals (C++: til_t *) + py_ordinals: PyObject * + @param flags: flags for the algorithm. A combination of PDF_* + constants (C++: uint32) + @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 + prefix: char const * + indent: int + cmtindent: int + flags: int + tif: tinfo_t const * + name: char const * + 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) - @return: success + print_type(ea, prtype_flags) -> str + @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: @@ -70818,12 +82222,18 @@ class ptr_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | 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 + | c: tinfo_t + | bps: uchar + | p: tinfo_t + | d: int32 | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ptr_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -70831,13 +82241,16 @@ class ptr_type_data_t(builtins.object) | 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' + | Set this = r and r = this. + | | swap(self, r) + | @param r (C++: ptr_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -70878,6 +82291,9 @@ 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 + typid: uint32 + v: uint64 + bitoff: int Help on class reginfovec_t in module ida_typeinf: @@ -70888,13 +82304,15 @@ class reginfovec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< reg_info_t > const & | | __getitem__(self, *args) -> 'reg_info_t const &' | __getitem__(self, i) -> reg_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> reginfovec_t - | __init__(self, x) -> reginfovec_t + | 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 +82321,25 @@ class reginfovec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< reg_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: reg_info_t const & | | __swig_destroy__ = delete_reginfovec_t(...) | delete_reginfovec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: reg_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: reg_info_t const & | | append = push_back(self, *args) -> 'reg_info_t &' | @@ -70944,52 +82367,74 @@ class reginfovec_t(builtins.object) | | erase(self, *args) -> 'qvector< reg_info_t >::iterator' | erase(self, it) -> reg_info_t + | it: qvector< reg_info_t >::iterator + | + | | erase(self, first, last) -> reg_info_t + | first: qvector< reg_info_t >::iterator + | 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 + | x: reg_info_t const & + | + | | find(self, x) -> reg_info_t + | x: reg_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=reg_info_t()) + | x: reg_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: reg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: reg_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< reg_info_t >::iterator' | insert(self, it, x) -> reg_info_t + | it: qvector< reg_info_t >::iterator + | x: reg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'reg_info_t &' | push_back(self, x) - | push_back(self) -> reg_info_t + | x: reg_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< reg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -71081,6 +82526,7 @@ class regobjs_t(regobjvec_t) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71090,9 +82536,12 @@ class regobjs_t(regobjvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: regobj_t const & | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -71116,7 +82565,12 @@ class regobjs_t(regobjvec_t) | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t + | it: qvector< regobj_t >::iterator + | + | | erase(self, first, last) -> regobj_t + | first: qvector< regobj_t >::iterator + | last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -71126,35 +82580,47 @@ class regobjs_t(regobjvec_t) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) + | x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: regobj_t * + | len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t + | it: qvector< regobj_t >::iterator + | x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) - | push_back(self) -> regobj_t + | x: regobj_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: regobj_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -71177,10 +82643,11 @@ class regobjvec_t(builtins.object) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t + | i: size_t | | __init__(self, *args) | __init__(self) -> regobjvec_t - | __init__(self, x) -> regobjvec_t + | 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,12 +82659,15 @@ class regobjvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: regobj_t const & | | __swig_destroy__ = delete_regobjvec_t(...) | delete_regobjvec_t(self) | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -71221,7 +82691,12 @@ class regobjvec_t(builtins.object) | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t + | it: qvector< regobj_t >::iterator + | + | | erase(self, first, last) -> regobj_t + | first: qvector< regobj_t >::iterator + | last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -71231,35 +82706,47 @@ class regobjvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) + | x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: regobj_t * + | len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t + | it: qvector< regobj_t >::iterator + | x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) - | push_back(self) -> regobj_t + | x: regobj_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: regobj_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -71280,49 +82767,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 (C++: const char *) + @param user_level (C++: 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 + '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 &) + remove_pointer(tif) -> tinfo_t + @param tif (C++: const tinfo_t &) Help on function remove_tinfo_pointer in module ida_typeinf: remove_tinfo_pointer(*args) -> 'PyObject *' - 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 *) + remove_tinfo_pointer(tif, name, til) -> PyObject * + @param tif (C++: tinfo_t *) + name: char const * + @param til (C++: const til_t *) 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: type library to use. may be NULL. (C++: til_t *) - @param tif: type to modify (in/out) (C++: tinfo_t *) + replace_ordinal_typerefs(til, tif) -> int + @param til: type library to use. may be NULL. (C++: til_t *) + @param tif: type to modify (in/out) (C++: tinfo_t *) + @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 (C++: const til_t *) + @param type (C++: const type_t *) Help on class rrel_t in module ida_typeinf: @@ -71361,6 +82848,11 @@ 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 + tif: tinfo_t * + til: til_t * + ord: size_t + name: char const * + ntf_flags: int Help on class scattered_aloc_t in module ida_typeinf: @@ -71393,9 +82885,11 @@ class scattered_aloc_t(argpartvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71405,18 +82899,24 @@ class scattered_aloc_t(argpartvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< argpart_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: argpart_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -71440,52 +82940,74 @@ class scattered_aloc_t(argpartvec_t) | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t + | it: qvector< argpart_t >::iterator + | + | | erase(self, first, last) -> argpart_t + | first: qvector< argpart_t >::iterator + | 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 + | x: argpart_t const & + | + | | find(self, x) -> argpart_t + | x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) + | x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: argpart_t * + | len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t + | it: qvector< argpart_t >::iterator + | x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) - | push_back(self) -> argpart_t + | x: argpart_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: argpart_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -71508,124 +83030,124 @@ Help on function score_tinfo in module ida_typeinf: score_tinfo(*args) -> 'uint32' score_tinfo(tif) -> uint32 + 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 + type: qtype * + fields: qtype * + fldcmts: qtype * + tif: tinfo_t const * + 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 *) - @param user_level (C++: bool) + set_abi_name(abiname, user_level=False) -> bool + @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) -> 'void' - set_c_header_path(incdir) - - Set include directory path the target compiler. - - @param incdir (C++: const char *) + set_c_header_path(incdir) + @param incdir (C++: const char *) 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 *) + set_c_macros(macros) + @param macros (C++: const char *) 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 *) - @return: success + set_compiler(cc, flags, abiname=None) -> bool + @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) -> '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 *) + set_compiler_id(id, abiname=None) -> bool + @param id (C++: comp_t) + @param abiname (C++: const char *) Help on function set_compiler_string in module ida_typeinf: set_compiler_string(*args) -> 'bool' set_compiler_string(compstr, user_level) -> bool + @param compstr: - compiler description in form : (C++: + const char *) + @param user_level: - initiated by user if TRUE (C++: bool) + @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 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 *) + set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t + @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) -> 'bool' set_tinfo_attr(tif, ta, may_overwrite) -> bool + tif: tinfo_t * + ta: type_attr_t const & + may_overwrite: bool Help on function set_tinfo_attrs in module ida_typeinf: set_tinfo_attrs(*args) -> 'bool' set_tinfo_attrs(tif, ta) -> bool + tif: tinfo_t * + 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 + tif: tinfo_t * + sta_prop: int + 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) + set_type_alias(ti, src_ordinal, dst_ordinal) -> bool + @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: @@ -71636,6 +83158,9 @@ class simd_info_t(builtins.object) | | __init__(self, *args) | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t + | nm: char const * + | sz: uint16 + | memt: type_t | | __repr__ = _swig_repr(self) | @@ -71644,6 +83169,7 @@ class simd_info_t(builtins.object) | | match_pattern(self, *args) -> 'bool' | match_pattern(self, pattern) -> bool + | @param pattern (C++: const simd_info_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71672,20 +83198,18 @@ class simd_info_t(builtins.object) 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: 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 + store_til(ti, tildir, name) -> bool + @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: @@ -71698,6 +83222,7 @@ class text_sink_t(builtins.object) | | __init__(self, *args) | __init__(self) -> text_sink_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -71706,6 +83231,7 @@ class text_sink_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, str) -> int + | str: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71728,6 +83254,8 @@ class til_symbol_t(builtins.object) | | __init__(self, *args) | __init__(self, n=None, t=None) -> til_symbol_t + | n: char const * + | t: til_t const * | | __repr__ = _swig_repr(self) | @@ -71769,12 +83297,13 @@ class til_t(builtins.object) | | base(self, *args) -> 'til_t *' | base(self, n) -> til_t + | 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: @@ -71821,26 +83350,35 @@ class tinfo_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: tinfo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: tinfo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: tinfo_t const & | | __init__(self, *args) | __init__(self) -> tinfo_t - | __init__(self, decl_type) -> tinfo_t + | decl_type: type_t + | + | | __init__(self, r) -> tinfo_t + | r: tinfo_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: tinfo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: tinfo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: tinfo_t const & | | __repr__ = _swig_repr(self) | @@ -71852,27 +83390,49 @@ 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 + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * | | append_covered(self, *args) -> 'bool' + | Calculate set of covered bytes for the type + | | append_covered(self, out, offset=0) -> bool + | @param out: pointer to the output buffer. covered bytes will be + | appended to it. (C++: rangeset_t *) + | @param offset (C++: uint64) | | calc_gaps(self, *args) -> 'bool' + | Calculate set of padding bytes for the type + | | calc_gaps(self, out) -> bool + | @param out: pointer to the output buffer; old buffer contents will be + | lost. (C++: rangeset_t *) | | calc_purged_bytes(self, *args) -> 'int' - | calc_purged_bytes(self) -> int + | 'BT_FUNC' : Calculate number of purged bytes | | 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' + | Calculate the udt alignments using the field offsets/sizes and the + | total udt size This function does not work on typerefs + | | calc_udt_aligns(self, sudt_flags=0x0004) -> bool + | @param sudt_flags (C++: int) | | change_sign(self, *args) -> 'bool' + | Change the type sign. Works only for the types that may have sign. + | | change_sign(self, sign) -> bool + | @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,528 +83445,764 @@ class tinfo_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: tinfo_t const & | | compare_with(self, *args) -> 'bool' + | Compare two types, based on given flags (see 'tinfo_t comparison + | flags' ) + | | compare_with(self, r, tcflags=0) -> bool + | @param r (C++: const tinfo_t &) + | @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 (C++: const array_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool + | tif: tinfo_t const & + | nelems: uint32 + | base: uint32 + | @param decl_type (C++: type_t) | | create_bitfield(self, *args) -> 'bool' | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool + | @param p (C++: const bitfield_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool + | nbytes: uchar + | width: uchar + | is_unsigned: bool + | @param decl_type (C++: type_t) | | create_enum(self, *args) -> 'bool' | create_enum(self, p, decl_type=BTF_ENUM) -> bool + | p: enum_type_data_t & + | decl_type: type_t | | create_forward_decl(self, *args) -> 'tinfo_code_t' + | Create a forward declaration. decl_type: 'BTF_STRUCT' , 'BTF_UNION' , + | or 'BTF_ENUM' + | | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t + | @param til (C++: til_t *) + | @param decl_type (C++: type_t) + | @param name (C++: const char *) + | @param ntf_flags (C++: int) | | create_func(self, *args) -> 'bool' | create_func(self, p, decl_type=BT_FUNC) -> bool + | p: func_type_data_t & + | decl_type: type_t | | create_ptr(self, *args) -> 'bool' | create_ptr(self, p, decl_type=BT_PTR) -> bool + | @param p (C++: const ptr_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool + | tif: tinfo_t const & + | bps: uchar + | @param decl_type (C++: type_t) | | create_simple_type(self, *args) -> 'bool' | create_simple_type(self, decl_type) -> bool + | @param decl_type (C++: type_t) | | create_typedef(self, *args) -> 'void' | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool + | @param p (C++: const typedef_type_data_t &) + | @param decl_type (C++: type_t) + | @param try_ordinal (C++: bool) + | + | | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) + | til: til_t const * + | name: char const * + | @param decl_type (C++: type_t) + | @param try_ordinal (C++: bool) + | + | | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) + | til: til_t const * + | ord: uint + | @param decl_type (C++: type_t) | | create_udt(self, *args) -> 'bool' | create_udt(self, p, decl_type) -> bool + | p: udt_type_data_t & + | decl_type: type_t | | del_attr(self, *args) -> 'bool' + | Del a type attribute. typerefs cannot be modified by this function. + | | del_attr(self, key, make_copy=True) -> bool + | @param key (C++: const qstring &) + | @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 a type string into a 'tinfo_t' object. + | | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool + | @param til (C++: const til_t *) + | @param ptype (C++: const type_t **) + | @param pfields (C++: const p_list **) + | @param pfldcmts (C++: const p_list **) + | + | | deserialize(self, til, type, fields, cmts=None) -> bool + | @param til (C++: const til_t *) + | type: type_t const * + | fields: p_list const * + | 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 (C++: const tinfo_t &) | | find_udt_member(self, *args) -> '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' ) + | | find_udt_member(self, udm, strmem_flags) -> int + | @param udm (C++: struct udt_member_t *) + | @param strmem_flags (C++: int) + | @return: the index of the found member or -1 | | get_array_details(self, *args) -> 'bool' + | Get the array specific info. + | | get_array_details(self, ai) -> bool + | @param ai (C++: array_type_data_t *) | | get_array_element(self, *args) -> 'tinfo_t' - | get_array_element(self) -> tinfo_t + | 'BT_ARRAY' : get type of array element. See also + | 'get_ptrarr_object()' | | get_array_nelems(self, *args) -> 'int' - | get_array_nelems(self) -> int + | 'BT_ARRAY' : get number of elements (-1 means error) | | get_attr(self, *args) -> 'PyObject *' + | Get a type attribute. + | | get_attr(self, key, all_attrs=True) -> PyObject * + | @param key (C++: const qstring &) + | @param all_attrs (C++: bool) | | get_attrs(self, *args) -> 'bool' + | Get type attributes (all_attrs: include attributes of referenced + | types, if any) + | | get_attrs(self, tav, all_attrs=False) -> bool + | @param tav (C++: type_attrs_t *) + | @param all_attrs (C++: bool) | | get_bitfield_details(self, *args) -> 'bool' + | Get the bitfield specific info. + | | get_bitfield_details(self, bi) -> bool + | @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 the enum specific info. + | | get_enum_details(self, ei) -> bool + | @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). | | get_func_details(self, *args) -> 'bool' + | Get only the function specific info for this 'tinfo_t' . + | | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool + | @param fi (C++: func_type_data_t *) + | @param gtd (C++: gtd_func_t) | | get_modifiers(self, *args) -> 'type_t' | get_modifiers(self) -> type_t | | get_named_type(self, *args) -> 'bool' + | Create a 'tinfo_t' object for an existing named type. + | | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool + | @param til: type library to use (C++: const til_t *) + | @param name: name of the type to link to (C++: const char *) + | @param decl_type: 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 (C++: type_t) + | @param resolve: true: immediately resolve the type and return success + | code. false: return true but do not immediately + | resolve the type (C++: bool) + | @param try_ordinal: true: try to replace name reference by an ordinal + | reference (C++: bool) | | 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). | | get_nth_arg(self, *args) -> 'tinfo_t' + | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get type of n-th arg (-1 means + | return type, see 'get_rettype()' ) + | | get_nth_arg(self, n) -> tinfo_t + | @param n (C++: int) | | get_numbered_type(self, *args) -> 'bool' + | Create a 'tinfo_t' object for an existing ordinal type. + | | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool + | @param til: type library to use (C++: const til_t *) + | @param ordinal: number of the type to link to (C++: uint32) + | @param decl_type: 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 (C++: type_t) + | @param resolve: true: immediately resolve the type and return success + | code false: return true but do not immediately resolve + | the type (C++: bool) | | 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 + | 'BT_PTR' : get type of pointed object. If the current type is not a + | pointer, return empty type info. See also 'get_ptrarr_object()' and + | 'remove_pointer()' | | get_ptr_details(self, *args) -> 'bool' + | Get the pointer info. + | | get_ptr_details(self, pi) -> bool + | @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 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 + | | get_realtype(self, full=False) -> type_t + | @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 the type size in bytes. + | | get_size(self, p_effalign=None, gts_code=0) -> size_t + | @param p_effalign: buffer for the alignment value (C++: uint32 *) + | @param gts_code: combination of GTS_... constants (C++: int) + | @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 the udt specific info. + | | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool + | @param udt (C++: udt_type_data_t *) + | @param gtd (C++: 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 + | \isreal{is_type_arithmetic} | | is_array(self, *args) -> 'bool' - | is_array(self) -> bool + | \isreal{is_type_array} | | is_bitfield(self, *args) -> 'bool' - | is_bitfield(self) -> bool + | \isreal{is_type_bitfld} | | is_bool(self, *args) -> 'bool' - | is_bool(self) -> bool + | \isreal{is_type_bool} | | is_castable_to(self, *args) -> 'bool' | is_castable_to(self, target) -> bool + | @param target (C++: const tinfo_t &) | | is_char(self, *args) -> 'bool' - | is_char(self) -> bool + | \isreal{is_type_char} | | is_complex(self, *args) -> 'bool' - | is_complex(self) -> bool + | \isreal{is_type_complex} | | is_const(self, *args) -> 'bool' - | is_const(self) -> bool + | \isreal{is_type_const} | | 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 + | \isdecl{is_type_array} | | is_decl_bitfield(self, *args) -> 'bool' - | is_decl_bitfield(self) -> bool + | \isdecl{is_type_bitfld} | | is_decl_bool(self, *args) -> 'bool' - | is_decl_bool(self) -> bool + | \isdecl{is_type_bool} | | is_decl_char(self, *args) -> 'bool' - | is_decl_char(self) -> bool + | \isdecl{is_type_char} | | is_decl_complex(self, *args) -> 'bool' - | is_decl_complex(self) -> bool + | \isdecl{is_type_complex} | | is_decl_const(self, *args) -> 'bool' - | is_decl_const(self) -> bool + | \isdecl{is_type_const} | | is_decl_double(self, *args) -> 'bool' - | is_decl_double(self) -> bool + | \isdecl{is_type_double} | | is_decl_enum(self, *args) -> 'bool' - | is_decl_enum(self) -> bool + | \isdecl{is_type_enum} | | is_decl_float(self, *args) -> 'bool' - | is_decl_float(self) -> bool + | \isdecl{is_type_float} | | is_decl_floating(self, *args) -> 'bool' - | is_decl_floating(self) -> bool + | \isdecl{is_type_floating} | | is_decl_func(self, *args) -> 'bool' - | is_decl_func(self) -> bool + | \isdecl{is_type_func} | | is_decl_int(self, *args) -> 'bool' - | is_decl_int(self) -> bool + | \isdecl{is_type_int} | | is_decl_int128(self, *args) -> 'bool' - | is_decl_int128(self) -> bool + | \isdecl{is_type_int128} | | is_decl_int16(self, *args) -> 'bool' - | is_decl_int16(self) -> bool + | \isdecl{is_type_int16} | | is_decl_int32(self, *args) -> 'bool' - | is_decl_int32(self) -> bool + | \isdecl{is_type_int32} | | is_decl_int64(self, *args) -> 'bool' - | is_decl_int64(self) -> bool + | \isdecl{is_type_int64} | | is_decl_last(self, *args) -> 'bool' - | is_decl_last(self) -> bool + | \isdecl{is_typeid_last} | | is_decl_ldouble(self, *args) -> 'bool' - | is_decl_ldouble(self) -> bool + | \isdecl{is_type_ldouble} | | is_decl_paf(self, *args) -> 'bool' - | is_decl_paf(self) -> bool + | \isdecl{is_type_paf} | | is_decl_partial(self, *args) -> 'bool' - | is_decl_partial(self) -> bool + | \isdecl{is_type_partial} | | is_decl_ptr(self, *args) -> 'bool' - | is_decl_ptr(self) -> bool + | \isdecl{is_type_ptr} | | is_decl_struct(self, *args) -> 'bool' - | is_decl_struct(self) -> bool + | \isdecl{is_type_struct} | | is_decl_sue(self, *args) -> 'bool' - | is_decl_sue(self) -> bool + | \isdecl{is_type_sue} | | is_decl_tbyte(self, *args) -> 'bool' - | is_decl_tbyte(self) -> bool + | \isdecl{is_type_tbyte} | | is_decl_typedef(self, *args) -> 'bool' - | is_decl_typedef(self) -> bool + | \isdecl{is_type_typedef} | | is_decl_uchar(self, *args) -> 'bool' - | is_decl_uchar(self) -> bool + | \isdecl{is_type_uchar} | | is_decl_udt(self, *args) -> 'bool' - | is_decl_udt(self) -> bool + | \isdecl{is_type_struni} | | is_decl_uint(self, *args) -> 'bool' - | is_decl_uint(self) -> bool + | \isdecl{is_type_uint} | | is_decl_uint128(self, *args) -> 'bool' - | is_decl_uint128(self) -> bool + | \isdecl{is_type_uint128} | | is_decl_uint16(self, *args) -> 'bool' - | is_decl_uint16(self) -> bool + | \isdecl{is_type_uint16} | | is_decl_uint32(self, *args) -> 'bool' - | is_decl_uint32(self) -> bool + | \isdecl{is_type_uint32} | | is_decl_uint64(self, *args) -> 'bool' - | is_decl_uint64(self) -> bool + | \isdecl{is_type_uint64} | | is_decl_union(self, *args) -> 'bool' - | is_decl_union(self) -> bool + | \isdecl{is_type_union} | | is_decl_unknown(self, *args) -> 'bool' - | is_decl_unknown(self) -> bool + | \isdecl{is_type_unknown} | | is_decl_void(self, *args) -> 'bool' - | is_decl_void(self) -> bool + | \isdecl{is_type_void} | | is_decl_volatile(self, *args) -> 'bool' - | is_decl_volatile(self) -> bool + | \isdecl{is_type_volatile} | | is_double(self, *args) -> 'bool' - | is_double(self) -> bool + | \isreal{is_type_double} | | 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 + | \isreal{is_type_enum} | | is_ext_arithmetic(self, *args) -> 'bool' - | is_ext_arithmetic(self) -> bool + | \isreal{is_type_ext_arithmetic} | | is_ext_integral(self, *args) -> 'bool' - | is_ext_integral(self) -> bool + | \isreal{is_type_ext_integral} | | is_float(self, *args) -> 'bool' - | is_float(self) -> bool + | \isreal{is_type_float} | | is_floating(self, *args) -> 'bool' - | is_floating(self) -> bool + | \isreal{is_type_floating} | | 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 + | \isreal{is_type_func} | | 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 + | 'BT_FUNC' : Is high level type? | | is_int(self, *args) -> 'bool' - | is_int(self) -> bool + | \isreal{is_type_int} | | is_int128(self, *args) -> 'bool' - | is_int128(self) -> bool + | \isreal{is_type_int128} | | is_int16(self, *args) -> 'bool' - | is_int16(self) -> bool + | \isreal{is_type_int16} | | is_int32(self, *args) -> 'bool' - | is_int32(self) -> bool + | \isreal{is_type_int32} | | is_int64(self, *args) -> 'bool' - | is_int64(self) -> bool + | \isreal{is_type_int64} | | is_integral(self, *args) -> 'bool' - | is_integral(self) -> bool + | \isreal{is_type_integral} | | is_ldouble(self, *args) -> 'bool' - | is_ldouble(self) -> bool + | \isreal{is_type_ldouble} | | is_manually_castable_to(self, *args) -> 'bool' | is_manually_castable_to(self, target) -> bool + | @param target (C++: const tinfo_t &) | | 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 + | \isreal{is_type_paf} | | is_partial(self, *args) -> 'bool' - | is_partial(self) -> bool + | \isreal{is_type_partial} | | is_ptr(self, *args) -> 'bool' - | is_ptr(self) -> bool + | \isreal{is_type_ptr} | | is_ptr_or_array(self, *args) -> 'bool' - | is_ptr_or_array(self) -> bool + | \isreal{is_type_ptr_or_array} | | is_purging_cc(self, *args) -> 'bool' - | is_purging_cc(self) -> bool + | \tinfocc{is_purging_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 + | \isreal{is_type_struct} | | is_sue(self, *args) -> 'bool' - | is_sue(self) -> bool + | \isreal{is_type_sue} | | is_tbyte(self, *args) -> 'bool' - | is_tbyte(self) -> bool + | \isreal{is_type_tbyte} | | 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 + | \isreal{is_type_uchar} | | is_udt(self, *args) -> 'bool' - | is_udt(self) -> bool + | \isreal{is_type_struni} | | is_uint(self, *args) -> 'bool' - | is_uint(self) -> bool + | \isreal{is_type_uint} | | is_uint128(self, *args) -> 'bool' - | is_uint128(self) -> bool + | \isreal{is_type_uint128} | | is_uint16(self, *args) -> 'bool' - | is_uint16(self) -> bool + | \isreal{is_type_uint16} | | is_uint32(self, *args) -> 'bool' - | is_uint32(self) -> bool + | \isreal{is_type_uint32} | | is_uint64(self, *args) -> 'bool' - | is_uint64(self) -> bool + | \isreal{is_type_uint64} | | is_union(self, *args) -> 'bool' - | is_union(self) -> bool + | \isreal{is_type_union} | | is_unknown(self, *args) -> 'bool' - | is_unknown(self) -> bool + | \isreal{is_type_unknown} | | 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 + | \tinfocc{is_user_cc} | | is_vararg_cc(self, *args) -> 'bool' - | is_vararg_cc(self) -> bool + | \tinfocc{is_vararg_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 + | \isreal{is_type_void} | | is_volatile(self, *args) -> 'bool' - | is_volatile(self) -> bool + | \isreal{is_type_volatile} | | 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 + | v: uint64 + | 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[] => typetype* + | => type If the conversion is performed successfully, return true | | requires_qualifier(self, *args) -> 'bool' + | Requires full qualifier? (name is not unique) + | | requires_qualifier(self, name, offset) -> bool + | @param name: field name (C++: const char *) + | @param offset (C++: uint64) + | @return: if the name is not unique, returns true | | serialize(self, *args) -> 'PyObject *' + | Serialize 'tinfo_t' object into a type string. + | | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * + | @param sudt_flags (C++: int) | | set_attr(self, *args) -> 'bool' + | Set a type attribute. If necessary, a new typid will be created. + | | set_attr(self, ta, may_overwrite=True) -> bool + | @param ta (C++: const type_attr_t &) + | @param may_overwrite (C++: bool) | | set_attrs(self, *args) -> 'bool' + | Set type attributes. If necessary, a new typid will be created. this + | function modifies tav! (returns old attributes, if any) + | | set_attrs(self, tav) -> bool + | @param tav (C++: type_attrs_t *) + | @return: false: bad attributes | | set_const(self, *args) -> 'void' | set_const(self) | | set_declalign(self, *args) -> 'bool' + | Set declared alignment of the type. + | | set_declalign(self, declalign) -> bool + | @param declalign (C++: uchar) | | set_modifiers(self, *args) -> 'void' | set_modifiers(self, mod) + | mod: type_t | | set_named_type(self, *args) -> 'tinfo_code_t' | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | til: til_t * + | name: char const * + | 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 + | til: til_t * + | ord: uint32 + | ntf_flags: int + | name: char const * | | set_symbol_type(self, *args) -> 'tinfo_code_t' | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | til: til_t * + | name: char const * + | ntf_flags: int | | set_volatile(self, *args) -> 'void' | set_volatile(self) | | swap(self, *args) -> 'void' + | Assign this = r and r = this. + | | swap(self, r) + | @param r (C++: tinfo_t &) | | write_bitfield_value(self, *args) -> 'uint64' | write_bitfield_value(self, dst, v, bitoff) -> uint64 + | dst: uint64 + | v: uint64 + | bitoff: int | | ---------------------------------------------------------------------- | Static methods defined here: | | get_stock(*args) -> 'tinfo_t' | get_stock(id) -> tinfo_t + | id: enum stock_type_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72429,6 +84225,7 @@ 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 + id: enum stock_type_id_t Help on class tinfo_visitor_t in module ida_typeinf: @@ -72441,6 +84238,7 @@ class tinfo_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, s=0) -> tinfo_visitor_t + | s: int | | __repr__ = _swig_repr(self) | @@ -72448,13 +84246,29 @@ class tinfo_visitor_t(builtins.object) | delete_tinfo_visitor_t(self) | | apply_to(self, *args) -> 'int' + | Call this function to initiate the traversal. + | | apply_to(self, tif, out=None, name=None, cmt=None) -> int + | @param tif (C++: const tinfo_t &) + | @param out (C++: type_mods_t *) + | @param name (C++: const char *) + | @param cmt (C++: const char *) | | 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 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 NULL) return 0 to continue the traversal. return !=0 to + | stop the traversal. + | | visit_type(self, out, tif, name, cmt) -> int + | @param out (C++: type_mods_t *) + | @param tif (C++: const tinfo_t &) + | @param name (C++: const char *) + | @param cmt (C++: const char *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72480,12 +84294,14 @@ class type_attr_t(builtins.object) | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: type_attr_t const & | | __init__(self, *args) | __init__(self) -> type_attr_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: type_attr_t const & | | __repr__ = _swig_repr(self) | @@ -72519,10 +84335,11 @@ class type_attrs_t(builtins.object) | | __getitem__(self, *args) -> 'type_attr_t const &' | __getitem__(self, i) -> type_attr_t + | i: size_t | | __init__(self, *args) | __init__(self) -> type_attrs_t - | __init__(self, x) -> type_attrs_t + | 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,12 +84351,15 @@ class type_attrs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -72563,7 +84383,12 @@ class type_attrs_t(builtins.object) | | erase(self, *args) -> 'qvector< type_attr_t >::iterator' | erase(self, it) -> type_attr_t + | it: qvector< type_attr_t >::iterator + | + | | erase(self, first, last) -> type_attr_t + | first: qvector< type_attr_t >::iterator + | last: qvector< type_attr_t >::iterator | | extract(self, *args) -> 'type_attr_t *' | extract(self) -> type_attr_t @@ -72573,35 +84398,47 @@ class type_attrs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=type_attr_t()) + | x: type_attr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: type_attr_t * + | len: size_t | | insert(self, *args) -> 'qvector< type_attr_t >::iterator' | insert(self, it, x) -> type_attr_t + | it: qvector< type_attr_t >::iterator + | x: type_attr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'type_attr_t &' | push_back(self, x) - | push_back(self) -> type_attr_t + | x: type_attr_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: type_attr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< type_attr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -72650,12 +84487,19 @@ class type_mods_t(builtins.object) | | set_new_cmt(self, *args) -> 'void' | set_new_cmt(self, c) + | @param c (C++: const qstring &) | | set_new_name(self, *args) -> 'void' | set_new_name(self, n) + | @param n (C++: const qstring &) | | set_new_type(self, *args) -> 'void' + | 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. + | | set_new_type(self, t) + | @param t (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72690,7 +84534,15 @@ class typedef_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t + | _til: til_t const * + | _name: char const * + | _resolve: bool + | + | | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t + | _til: til_t const * + | ord: uint32 + | _resolve: bool | | __repr__ = _swig_repr(self) | @@ -72699,6 +84551,7 @@ class typedef_type_data_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: typedef_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72730,15 +84583,18 @@ class udt_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: udt_member_t const & | | __init__(self, *args) | __init__(self) -> udt_member_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: udt_member_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: udt_member_t const & | | __repr__ = _swig_repr(self) | @@ -72798,6 +84654,7 @@ class udt_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: udt_member_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72865,6 +84722,7 @@ class udt_type_data_t(udtmembervec_t) | | is_last_baseclass(self, *args) -> 'bool' | is_last_baseclass(self, idx) -> bool + | @param idx (C++: size_t) | | is_msstruct(self, *args) -> 'bool' | is_msstruct(self) -> bool @@ -72877,6 +84735,7 @@ class udt_type_data_t(udtmembervec_t) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: udt_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72910,9 +84769,11 @@ class udt_type_data_t(udtmembervec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -72922,18 +84783,24 @@ class udt_type_data_t(udtmembervec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: udt_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -72957,46 +84824,67 @@ class udt_type_data_t(udtmembervec_t) | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | + | | erase(self, first, last) -> udt_member_t + | first: qvector< udt_member_t >::iterator + | 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 + | x: udt_member_t const & + | + | | find(self, x) -> udt_member_t + | x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) + | x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: udt_member_t * + | len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) - | push_back(self) -> udt_member_t + | x: udt_member_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: udt_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -73027,13 +84915,15 @@ class udtmembervec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t + | i: size_t | | __init__(self, *args) | __init__(self) -> udtmembervec_t - | __init__(self, x) -> udtmembervec_t + | 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. @@ -73043,23 +84933,29 @@ class udtmembervec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: udt_member_t const & | | __swig_destroy__ = delete_udtmembervec_t(...) | delete_udtmembervec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -73083,52 +84979,74 @@ class udtmembervec_t(builtins.object) | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | + | | erase(self, first, last) -> udt_member_t + | first: qvector< udt_member_t >::iterator + | 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 + | x: udt_member_t const & + | + | | find(self, x) -> udt_member_t + | x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) + | x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: udt_member_t * + | len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) - | push_back(self) -> udt_member_t + | x: udt_member_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: udt_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< udt_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -73153,39 +85071,32 @@ class udtmembervec_t(builtins.object) 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) + unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t + @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) -> '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) + unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t + @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) -> '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. @@ -73200,7 +85111,12 @@ unpack_object_from_bv(*args) -> 'PyObject *' 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 * + ti: til_t * + type: type_t const * + fields: p_list const * + ea: ea_t + pio_flags: int Help on class valstr_t in module ida_typeinf: @@ -73275,6 +85191,7 @@ class valstrs_t(valstrvec_t) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -73284,9 +85201,12 @@ class valstrs_t(valstrvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: valstr_t const & | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -73310,7 +85230,12 @@ class valstrs_t(valstrvec_t) | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t + | it: qvector< valstr_t >::iterator + | + | | erase(self, first, last) -> valstr_t + | first: qvector< valstr_t >::iterator + | last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -73320,35 +85245,47 @@ class valstrs_t(valstrvec_t) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) + | x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: valstr_t * + | len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t + | it: qvector< valstr_t >::iterator + | x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) - | push_back(self) -> valstr_t + | x: valstr_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: valstr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -73371,10 +85308,11 @@ class valstrvec_t(builtins.object) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t + | i: size_t | | __init__(self, *args) | __init__(self) -> valstrvec_t - | __init__(self, x) -> valstrvec_t + | 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,12 +85324,15 @@ class valstrvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: valstr_t const & | | __swig_destroy__ = delete_valstrvec_t(...) | delete_valstrvec_t(self) | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -73415,7 +85356,12 @@ class valstrvec_t(builtins.object) | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t + | it: qvector< valstr_t >::iterator + | + | | erase(self, first, last) -> valstr_t + | first: qvector< valstr_t >::iterator + | last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -73425,35 +85371,47 @@ class valstrvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) + | x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: valstr_t * + | len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t + | it: qvector< valstr_t >::iterator + | x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) - | push_back(self) -> valstr_t + | x: valstr_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: valstr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -73473,32 +85431,40 @@ class valstrvec_t(builtins.object) 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 &) - @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. + verify_argloc(vloc, size, gaps) -> int + @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) -> 'int' verify_tinfo(typid) -> int + typid: uint32 Help on function visit_subtypes in module ida_typeinf: visit_subtypes(*args) -> 'int' visit_subtypes(visitor, out, tif, name, cmt) -> int + visitor: tinfo_visitor_t * + out: type_mods_t * + tif: tinfo_t const & + name: char const * + 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 + typid: uint32 + dst: uint64 + v: uint64 + bitoff: int === ida_typeinf EPYDOC INJECTIONS === ida_typeinf.ADDTIL_ABORTED @@ -73971,7 +85937,7 @@ use c++ name (only for 'print_type()' ) ida_typeinf.PRTYPE_DEF """ - 'tinfo_t' : print definition, if available +'tinfo_t' : print definition, if available """ ida_typeinf.PRTYPE_MULTI @@ -73981,12 +85947,12 @@ print to many lines ida_typeinf.PRTYPE_NOARGS """ - 'tinfo_t' : do not print function argument names +'tinfo_t' : do not print function argument names """ ida_typeinf.PRTYPE_NOARRS """ - 'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers +'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers """ ida_typeinf.PRTYPE_NOREGEX @@ -73996,7 +85962,7 @@ do not apply regular expressions to beautify name ida_typeinf.PRTYPE_NORES """ - 'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) +'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) """ ida_typeinf.PRTYPE_PRAGMA @@ -74006,7 +85972,7 @@ print pragmas for alignment ida_typeinf.PRTYPE_RESTORE """ - 'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' +'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' """ ida_typeinf.PRTYPE_SEMI @@ -74470,84 +86436,78 @@ printed opening curly brace '{' 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 &) - @param n (C++: int) - @param rgnum (C++: int) + calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t + @param insn - 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) - @return: whether or not the contents at that address could be a valid - instruction + can_decode(ea) -> bool + @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) -> 'bool' construct_macro(insn, enable, build_macro) -> bool - - See ua.hpp's construct_macro(). +Help on function construct_macro2 in module ida_ua: + +construct_macro2(*args) -> 'bool' + construct_macro2(_this, insn, enable) -> bool + @param _this (C++: macro_constructor_t *) + @param insn (C++: insn_t *) + @param enable (C++: 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: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + create_insn(ea, out=None) -> int + @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) -> '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) + create_outctx(ea, F=0, suspop=0) -> outctx_base_t + @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) -> '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: the resulting instruction (C++: insn_t *) - @param ea: linear address (C++: ea_t) - @return: the length of the (possible) instruction or 0 + decode_insn(out, ea) -> int + @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) -> 'PyObject *' 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 @@ -74556,55 +86516,41 @@ decode_preceding_insn(*args) -> 'PyObject *' 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) + decode_prev_insn(out, ea) -> ea_t + @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) -> 'int' - get_dtype_by_size(size) -> int - - Get 'op_t::dtype' from size. - - @param size (C++: asize_t) + get_dtype_by_size(size) -> int + @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 flags for 'op_t::dtype' field. - - @param dtype (C++: op_dtype_t) + get_dtype_flag(dtype) -> flags_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) + get_dtype_size(dtype) -> size_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 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 @@ -74612,18 +86558,16 @@ get_immvals(*args) -> 'PyObject *' 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 ) + get_immvals(ea, n, F=0) -> PyObject * + @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) -> '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 = . IDP may use it as you like it. (TMS module uses it) @@ -74631,59 +86575,67 @@ get_lookback(*args) -> 'int' 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 ) + get_printable_immvals(ea, n, F=0) -> PyObject * + @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 &) + guess_table_address(insn) -> ea_t + @param insn - an ida_ua.insn_t, or an address (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) + guess_table_size(insn, jump_table) -> asize_t + @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param jump_table (C++: ea_t) Help on function insn_add_cref in module ida_ua: insn_add_cref(*args) -> 'void' insn_add_cref(insn, to, opoff, type) + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + to: ea_t + opoff: int + 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) + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + to: ea_t + opoff: int + 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 + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + type: enum dref_t + 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 + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + v: adiff_t + flags: int Help on class insn_t in module ida_ua: @@ -74692,11 +86644,12 @@ 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 + | n: int | | __get_ops__(self, *args) -> 'wrapped_array_t< op_t,8 >' | __get_ops__(self) -> operands_array @@ -74714,34 +86667,77 @@ class insn_t(builtins.object) | | __set_auxpref__(self, *args) -> 'void' | __set_auxpref__(self, v) + | v: uint32 | | __swig_destroy__ = delete_insn_t(...) | delete_insn_t(self) | | add_cref(self, *args) -> 'void' + | Add a code cross-reference from the instruction. + | | add_cref(self, to, opoff, type) + | @param to: target linear address (C++: ea_t) + | @param opoff: offset of the operand from the start of instruction. if + | the offset is unknown, then 0. (C++: int) + | @param type: type of xref (C++: cref_t) | | add_dref(self, *args) -> 'void' + | Add a data cross-reference from the instruction. See 'add_off_drefs()' + | - usually it can be used in most cases. + | | add_dref(self, to, opoff, type) + | @param to: target linear address (C++: ea_t) + | @param opoff: offset of the operand from the start of instruction if + | the offset is unknown, then 0 (C++: int) + | @param type: type of xref (C++: dref_t) | | add_off_drefs(self, *args) -> '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. + | | add_off_drefs(self, x, type, outf) -> ea_t + | @param x: reference to operand (C++: const op_t &) + | @param type: type of xref (C++: dref_t) + | @param outf: out_value() flags. These flags should match the flags + | used to output the operand (C++: int) + | @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) + | 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 + | ea_: ea_t + | opoff: int + | dtype: op_dtype_t + | + | | create_op_data(self, ea_, op) -> bool + | ea_: ea_t + | op: op_t const & | | create_stkvar(self, *args) -> 'bool' | create_stkvar(self, x, v, flags_) -> bool + | x: op_t const & + | v: adiff_t + | flags_: int | | get_canon_feature(self, *args) -> 'uint32' - | get_canon_feature(self) -> uint32 + | see 'instruc_t::feature' + | + | get_canon_feature(self, ph) -> uint32 + | @param ph (C++: const processor_t &) | | get_canon_mnem(self, *args) -> 'char const *' - | get_canon_mnem(self) -> char const * + | see 'instruc_t::name' + | + | get_canon_mnem(self, ph) -> char const + | @param ph (C++: const processor_t &) | | get_next_byte(self, *args) -> 'uint8' | get_next_byte(self) -> uint8 @@ -74756,13 +86752,16 @@ class insn_t(builtins.object) | 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) -> bool + | see \ph{ 'is_canon_insn()' } + | + | is_canon_insn(self, ph) -> bool + | @param ph (C++: const processor_t &) | | is_macro(self, *args) -> 'bool' - | is_macro(self) -> bool + | Is a macro instruction? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -74786,7 +86785,7 @@ class insn_t(builtins.object) | list of weak references to the object (if defined) | | auxpref - | __get_auxpref__(self) -> uint16 + | __get_auxpref__(self) -> uint32 | | cs | insn_t_cs_get(self) -> ea_t @@ -74822,50 +86821,117 @@ 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 + 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) + is_floating_dtype(dtype) -> bool + @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 + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_macro_constructor_t(...) + | delete_macro_constructor_t(self) + | + | build_macro(self, *args) -> 'bool' + | Try to extend the instruction. + | + | build_macro(self, insn, may_go_forward) -> bool + | @param insn: Instruction to modify, usually the first instruction of + | the macro (C++: insn_t *) + | @param may_go_forward: 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. (C++: bool) + | @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 + | macro_constructor_t_reserved_get(self) -> size_t + | + | 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 - 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) + map_code_ea(insn, addr, opnum) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + @param addr: the referenced address to map (C++: ea_t) + @param opnum: operand number (C++: int) + + + map_code_ea(insn, op) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + 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 - 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) + map_data_ea(insn, addr, opnum=-1) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + @param addr: the referenced address to map (C++: ea_t) + @param opnum: operand number (C++: int) + + + map_data_ea(insn, op) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + 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 (C++: const op_t &) + @param iscode (C++: bool) + + map_ea(insn, addr, opnum, iscode) -> ea_t + @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + addr: ea_t + opnum: int + @param iscode (C++: bool) Help on class op_t in module ida_ua: @@ -74893,39 +86959,50 @@ class op_t(builtins.object) | | __set_addr__(self, *args) -> 'void' | __set_addr__(self, v) + | v: ea_t | | __set_reg_phrase__(self, *args) -> 'void' | __set_reg_phrase__(self, r) + | r: uint16 | | __set_specval__(self, *args) -> 'void' | __set_specval__(self, v) + | v: ea_t | | __set_value__(self, *args) -> 'void' | __set_value__(self, v) + | v: ea_t | | __swig_destroy__ = delete_op_t(...) | delete_op_t(self) | | assign(self, *args) -> 'void' | assign(self, other) + | 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 immediate operand? + | | is_imm(self, v) -> bool + | @param v (C++: uval_t) | | is_reg(self, *args) -> 'bool' + | Is register operand? + | | is_reg(self, r) -> bool + | @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: @@ -74988,6 +87065,7 @@ 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 + ptrval: size_t Help on class operands_array in module ida_ua: @@ -74998,9 +87076,11 @@ class operands_array(builtins.object) | | __getitem__(self, *args) -> 'op_t const &' | __getitem__(self, i) -> op_t + | i: size_t | | __init__(self, *args) | __init__(self, data) -> operands_array + | data: op_t (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -75012,6 +87092,8 @@ class operands_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: op_t const & | | __swig_destroy__ = delete_operands_array(...) | delete_operands_array(self) @@ -75053,10 +87135,21 @@ class outctx_base_t(builtins.object) | display_voids(self) -> bool | | flush_buf(self, *args) -> 'bool' + | Append contents of 'buf' to the line array. Behaves like flush_outbuf + | but accepts an arbitrary buffer + | | flush_buf(self, buf, indent=-1) -> bool + | @param buf (C++: const char *) + | @param indent (C++: int) | | flush_outbuf(self, *args) -> '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. + | | flush_outbuf(self, indent=-1) -> bool + | @param indent (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -75065,34 +87158,84 @@ class outctx_base_t(builtins.object) | force_code(self) -> bool | | gen_block_cmt(self, *args) -> 'bool' + | Generate big non-indented comment lines. + | | gen_block_cmt(self, cmt, color) -> bool + | @param cmt: comment text. may contain \n characters to denote new + | lines. should not contain comment character (;) (C++: + | const char *) + | @param color: color of comment text (one of Color tags ) (C++: + | color_t) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' + | Generate thin border line. This function does nothing if generation of + | border lines is disabled. + | | gen_border_line(self, solid=False) -> bool + | @param solid: generate solid border line (with =), otherwise with - + | (C++: bool) + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' + | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . + | | gen_cmt_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' + | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' + | . + | | gen_collapsed_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @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. | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' + | printf-like function to add lines to the line array. + | | gen_printf(self, indent, format) -> bool + | @param indent: indention of the line. if indent == -1, the kernel will + | indent the line at \inf{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. (C++: + | int) + | @param format: printf style colored line to generate (C++: const char + | *) + | @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 * + | arg2: op_t const & + | arg3: uval_t + | arg4: sval_t * + | arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) + | @param answers (C++: qstrvec_t *) + | @param maxsize (C++: int) | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -75101,73 +87244,153 @@ class outctx_base_t(builtins.object) | only_main_line(self) -> bool | | out_addr_tag(self, *args) -> 'void' + | Output "address" escape sequence. + | | out_addr_tag(self, ea) + | @param ea (C++: ea_t) | | out_btoa(self, *args) -> 'void' + | Output a number with the specified base (binary, octal, decimal, hex) + | The number is output without color codes. see also 'out_long()' + | | out_btoa(self, Word, radix=0) + | @param Word (C++: uval_t) + | @param radix (C++: char) | | out_char(self, *args) -> 'void' + | Output one character. The character is output without color codes. see + | also 'out_symbol()' + | | out_char(self, c) + | @param c (C++: char) | | out_chars(self, *args) -> 'void' + | Append a character multiple times. + | | out_chars(self, c, n) + | @param c (C++: char) + | @param n (C++: int) | | out_colored_register_line(self, *args) -> 'void' + | 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) + | | out_colored_register_line(self, str) + | @param str (C++: const char *) | | out_keyword(self, *args) -> 'void' + | Output a string with 'COLOR_KEYWORD' color. + | | out_keyword(self, str) + | @param str (C++: const char *) | | out_line(self, *args) -> 'void' + | Output a string with the specified color. + | | out_line(self, str, color=0) + | @param str (C++: const char *) + | @param color (C++: color_t) | | out_long(self, *args) -> 'void' + | 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 \ph{d_out()}) + | | out_long(self, v, radix) + | @param v (C++: sval_t) + | @param radix (C++: char) | | out_name_expr(self, *args) -> 'bool' + | Output a name expression. + | | out_name_expr(self, x, ea, off=BADADDR) -> bool + | @param x: instruction operand referencing the name expression (C++: + | const op_t &) + | @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. You may pass BADADDR for this parameter but I + | discourage it because it prohibits checks. (C++: adiff_t) + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' + | Functions to append text to the current output buffer (outbuf) Append + | a formatted string to the output string. + | | out_printf(self, format) + | @param format (C++: const char *) + | @return: the number of characters appended | | out_register(self, *args) -> 'void' + | Output a character with 'COLOR_REG' color. + | | out_register(self, str) + | @param str (C++: const char *) | | out_spaces(self, *args) -> 'void' + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | | out_spaces(self, len) + | @param len (C++: ssize_t) | | out_symbol(self, *args) -> 'void' + | Output a character with 'COLOR_SYMBOL' color. + | | out_symbol(self, c) + | @param c (C++: char) | | out_tagoff(self, *args) -> 'void' + | Output "turn color off" escape sequence. + | | out_tagoff(self, tag) + | @param tag (C++: color_t) | | out_tagon(self, *args) -> 'void' + | Output "turn color on" escape sequence. + | | out_tagon(self, tag) + | @param tag (C++: color_t) | | out_value(self, *args) -> 'flags_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 + | | out_value(self, x, outf=0) -> flags_t + | @param x (C++: const op_t &) + | @param outf (C++: int) + | @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 (C++: 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 + | arg2: qstring * + | arg3: color_t * | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) + | @param ea (C++: 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 (C++: bool) | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -75177,15 +87400,24 @@ class outctx_base_t(builtins.object) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) + | @param on (C++: bool) | | setup_outctx(self, *args) -> 'void' + | Initialization; normally used only by the kernel. + | | setup_outctx(self, prefix, makeline_flags) + | @param prefix (C++: const char *) + | @param makeline_flags (C++: int) | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' + | Finalize the output context. + | | term_outctx(self, prefix=None) -> int + | @param prefix (C++: const char *) + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -75212,6 +87444,7 @@ 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 + ptrval: size_t Help on class outctx_t in module ida_ua: @@ -75232,12 +87465,17 @@ class outctx_t(outctx_base_t) | | gen_func_footer(self, *args) -> 'void' | gen_func_footer(self, pfn) + | @param pfn (C++: const func_t *) | | gen_func_header(self, *args) -> 'void' | gen_func_header(self, pfn) + | @param pfn (C++: func_t *) | | gen_header(self, *args) -> 'void' | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) + | @param flags (C++: int) + | @param proc_name (C++: const char *) + | @param proc_flavour (C++: const char *) | | gen_header_extra(self, *args) -> 'void' | gen_header_extra(self) @@ -75246,41 +87484,86 @@ class outctx_t(outctx_base_t) | gen_xref_lines(self) -> bool | | out_custom_mnem(self, *args) -> 'void' + | 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' + | | out_custom_mnem(self, mnem, width=8, postfix=None) + | @param mnem: custom mnemonic (C++: const char *) + | @param width: width of field with mnemonic. if < 0, then 'postfix' + | will be output before the mnemonic, i.e. as a prefix + | (C++: int) + | @param postfix: optional postfix added to 'mnem' (C++: const char *) | | out_data(self, *args) -> 'void' | out_data(self, analyze_only) + | @param analyze_only (C++: 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' + | Output instruction mnemonic for 'insn' using information in + | 'ph.instruc' array. This function outputs a colored text. It should be + | called from \ph{ev_out_insn()} or \ph{ev_out_mnem()} handler. It will + | output at least one space after the instruction. mnemonic even if the + | specified 'width' is not enough. + | | out_mnem(self, width=8, postfix=None) + | @param width: width of field with mnemonic. if < 0, then 'postfix' + | will be output before the mnemonic, i.e. as a prefix + | (C++: int) + | @param postfix: optional postfix added to the instruction mnemonic + | (C++: const char *) | | out_mnemonic(self, *args) -> 'void' - | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be + | called from \ph{ev_out_insn()} and it will call \ph{ev_out_mnem()} or + | 'out_mnem' . This function outputs a colored text. | | out_one_operand(self, *args) -> '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 + | \ph{ev_out_insn()} and it will call \ph{ev_out_operand()}. This + | function outputs a colored text. + | | out_one_operand(self, n) -> bool + | @param n: number of operand (C++: int) + | @retval: 1 - operand is displayed + | @retval: 0 - operand is hidden | | out_specea(self, *args) -> 'bool' | out_specea(self, segtype) -> bool + | @param segtype (C++: 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 + | arg2: qstring * + | arg3: color_t * | | set_bin_state(self, *args) -> 'void' | set_bin_state(self, value) + | @param value (C++: int) | | setup_outctx(self, *args) -> 'void' + | Initialization; normally used only by the kernel. + | | setup_outctx(self, prefix, flags) + | @param prefix (C++: const char *) + | flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | + | ash + | outctx_t_ash_get(self) -> asm_t + | | bin_ea | outctx_t_bin_ea_get(self) -> ea_t | @@ -75299,6 +87582,12 @@ class outctx_t(outctx_base_t) | insn | outctx_t_insn_get(self) -> insn_t | + | ph + | outctx_t_ph_get(self) -> processor_t + | + | procmod + | outctx_t_procmod_get(self) -> procmod_t + | | thisown | The membership flag | @@ -75318,10 +87607,21 @@ class outctx_t(outctx_base_t) | display_voids(self) -> bool | | flush_buf(self, *args) -> 'bool' + | Append contents of 'buf' to the line array. Behaves like flush_outbuf + | but accepts an arbitrary buffer + | | flush_buf(self, buf, indent=-1) -> bool + | @param buf (C++: const char *) + | @param indent (C++: int) | | flush_outbuf(self, *args) -> '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. + | | flush_outbuf(self, indent=-1) -> bool + | @param indent (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -75330,31 +87630,81 @@ class outctx_t(outctx_base_t) | force_code(self) -> bool | | gen_block_cmt(self, *args) -> 'bool' + | Generate big non-indented comment lines. + | | gen_block_cmt(self, cmt, color) -> bool + | @param cmt: comment text. may contain \n characters to denote new + | lines. should not contain comment character (;) (C++: + | const char *) + | @param color: color of comment text (one of Color tags ) (C++: + | color_t) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' + | Generate thin border line. This function does nothing if generation of + | border lines is disabled. + | | gen_border_line(self, solid=False) -> bool + | @param solid: generate solid border line (with =), otherwise with - + | (C++: bool) + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' + | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . + | | gen_cmt_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' + | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' + | . + | | gen_collapsed_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @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. | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' + | printf-like function to add lines to the line array. + | | gen_printf(self, indent, format) -> bool + | @param indent: indention of the line. if indent == -1, the kernel will + | indent the line at \inf{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. (C++: + | int) + | @param format: printf style colored line to generate (C++: const char + | *) + | @return: overflow, lnar_maxsize has been reached | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | arg2: op_t const & + | arg3: uval_t + | arg4: sval_t * + | arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) + | @param answers (C++: qstrvec_t *) + | @param maxsize (C++: int) | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -75363,67 +87713,145 @@ class outctx_t(outctx_base_t) | only_main_line(self) -> bool | | out_addr_tag(self, *args) -> 'void' + | Output "address" escape sequence. + | | out_addr_tag(self, ea) + | @param ea (C++: ea_t) | | out_btoa(self, *args) -> 'void' + | Output a number with the specified base (binary, octal, decimal, hex) + | The number is output without color codes. see also 'out_long()' + | | out_btoa(self, Word, radix=0) + | @param Word (C++: uval_t) + | @param radix (C++: char) | | out_char(self, *args) -> 'void' + | Output one character. The character is output without color codes. see + | also 'out_symbol()' + | | out_char(self, c) + | @param c (C++: char) | | out_chars(self, *args) -> 'void' + | Append a character multiple times. + | | out_chars(self, c, n) + | @param c (C++: char) + | @param n (C++: int) | | out_colored_register_line(self, *args) -> 'void' + | 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) + | | out_colored_register_line(self, str) + | @param str (C++: const char *) | | out_keyword(self, *args) -> 'void' + | Output a string with 'COLOR_KEYWORD' color. + | | out_keyword(self, str) + | @param str (C++: const char *) | | out_line(self, *args) -> 'void' + | Output a string with the specified color. + | | out_line(self, str, color=0) + | @param str (C++: const char *) + | @param color (C++: color_t) | | out_long(self, *args) -> 'void' + | 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 \ph{d_out()}) + | | out_long(self, v, radix) + | @param v (C++: sval_t) + | @param radix (C++: char) | | out_name_expr(self, *args) -> 'bool' + | Output a name expression. + | | out_name_expr(self, x, ea, off=BADADDR) -> bool + | @param x: instruction operand referencing the name expression (C++: + | const op_t &) + | @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. You may pass BADADDR for this parameter but I + | discourage it because it prohibits checks. (C++: adiff_t) + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' + | Functions to append text to the current output buffer (outbuf) Append + | a formatted string to the output string. + | | out_printf(self, format) + | @param format (C++: const char *) + | @return: the number of characters appended | | out_register(self, *args) -> 'void' + | Output a character with 'COLOR_REG' color. + | | out_register(self, str) + | @param str (C++: const char *) | | out_spaces(self, *args) -> 'void' + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | | out_spaces(self, len) + | @param len (C++: ssize_t) | | out_symbol(self, *args) -> 'void' + | Output a character with 'COLOR_SYMBOL' color. + | | out_symbol(self, c) + | @param c (C++: char) | | out_tagoff(self, *args) -> 'void' + | Output "turn color off" escape sequence. + | | out_tagoff(self, tag) + | @param tag (C++: color_t) | | out_tagon(self, *args) -> 'void' + | Output "turn color on" escape sequence. + | | out_tagon(self, tag) + | @param tag (C++: color_t) | | out_value(self, *args) -> 'flags_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 + | | out_value(self, x, outf=0) -> flags_t + | @param x (C++: const op_t &) + | @param outf (C++: int) + | @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 (C++: int) | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) + | @param ea (C++: 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 (C++: bool) | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -75433,12 +87861,17 @@ class outctx_t(outctx_base_t) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) + | @param on (C++: bool) | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' + | Finalize the output context. + | | term_outctx(self, prefix=None) -> int + | @param prefix (C++: const char *) + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors inherited from outctx_base_t: @@ -75462,35 +87895,32 @@ 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 + 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) - @return: success + print_insn_mnem(ea) -> str + @param ea: linear address of the instruction (C++: ea_t) + @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: 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 + print_operand(ea, n, getn_flags=0, newtype=None) -> str + @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 @@ -75760,33 +88190,30 @@ ida_ua.dt_word 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) - @return: success + add_cref(frm, to, type) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) -> '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) - @return: success (may fail if user-defined xref exists from->to) + add_dref(frm, to, type) -> bool + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) -> '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: @@ -75844,13 +88271,15 @@ class casevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | 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 &↗ + | i: size_t | | __init__(self, *args) | __init__(self) -> casevec_t - | __init__(self, x) -> casevec_t + | 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 +88288,25 @@ class casevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: qvector< signed-ea-like-numeric-type > const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: qvector< signed-ea-like-numeric-type > const &↗ | | append = push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ | @@ -75900,52 +88334,74 @@ 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↗ + | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | 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↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | 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 >())↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: qvector< signed-ea-like-numeric-type > const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: qvector< signed-ea-like-numeric-type > *↗ + | 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↗ + | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | 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) - | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< qvector< signed-ea-like-numeric-type > > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -75971,8 +88427,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 +88438,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 +88452,172 @@ 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' 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) + del_cref(frm, to, expand) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) + @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) + del_dref(frm, to) + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @param to: linear address of referenced data (C++: ea_t) Help on function delete_switch_table in module ida_xref: delete_switch_table(*args) -> 'void' delete_switch_table(jump_ea, si) + jump_ea: ea_t + 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!). - @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 . + get_first_cref_from(frm) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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: 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. + get_first_cref_to(to) -> ea_t + @param to: linear address of referenced instruction (C++: ea_t) + @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. + get_first_dref_from(frm) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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. + get_first_dref_to(to) -> ea_t + @param to: linear address of referencing instruction or data (C++: + ea_t) + @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 frm (C++: 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 (C++: 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. + get_next_cref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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 . 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. + get_next_cref_to(to, current) -> ea_t + @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 . 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 + get_next_dref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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 . 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. + get_next_dref_to(to, current) -> ea_t + @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. 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 frm (C++: ea_t) + @param current (C++: 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 (C++: ea_t) + @param current (C++: ea_t) Help on function has_external_refs in module ida_xref: has_external_refs(*args) -> 'bool' - has_external_refs(pfn, ea) -> bool - - Has a location external to the function references? - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + has_external_refs(pfn, ea) -> bool + @param pfn (C++: func_t *) + @param ea (C++: ea_t) Help on class xrefblk_t in module ida_xref: @@ -76196,17 +88636,25 @@ class xrefblk_t(builtins.object) | | first_from(self, *args) -> 'bool' | first_from(self, _from, flags) -> bool + | _from: ea_t + | flags: int | | first_to(self, *args) -> 'bool' | first_to(self, _to, flags) -> bool + | _to: ea_t + | flags: int | | next_from(self, *args) -> 'bool' | next_from(self) -> bool - | next_from(self, _from, _to, flags) -> bool + | _from: ea_t + | _to: ea_t + | flags: int | | next_to(self, *args) -> 'bool' | next_to(self) -> bool - | next_to(self, _from, _to, flags) -> bool + | _from: ea_t + | _to: ea_t + | flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -76238,13 +88686,11 @@ class xrefblk_t(builtins.object) 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) + xrefchar(xrtype) -> char + @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 @@ -76381,15 +88827,13 @@ EVAL_FAILURE(code) 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) - @return: size of comment or -1 + get_cmt(ea, rptble) -> str + @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: @@ -76447,15 +88891,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: @@ -76640,40 +89075,40 @@ add_auto_stkpnt(func_ea, ea, delta) Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' - 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) + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @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) + + + add_bpt(bpt) -> bool + 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) - @return: success + add_cref(frm, to, type) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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: @@ -76686,34 +89121,32 @@ add_default_til(name) 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) - @return: success (may fail if user-defined xref exists from->to) + add_dref(frm, to, type) -> bool + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) -> '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) - @return: success (currently always true) + add_entry(ord, ea, name, makecode, flags=0) -> bool + @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: @@ -76754,45 +89187,39 @@ add_enum_member(enum_id, name, value, bmask) 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: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + add_func(ea1, ea2=BADADDR) -> bool + @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) -> 'bool' - 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 + add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + @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) -> 'int' - 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 + add_idc_hotkey(hotkey, idcfunc) -> int + @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: @@ -76817,18 +89244,16 @@ add_segm_ex(startea, endea, base, use32, align, comb, flags) 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: 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 + add_sourcefile(ea1, ea2, filename) -> bool + @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: @@ -76885,15 +89310,13 @@ add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, r 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) - @return: success + add_user_stkpnt(ea, delta) -> bool + @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: @@ -76930,16 +89353,14 @@ ask_seg(defval, format) 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 . + ask_yn(deflt, format) -> int + @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: @@ -76957,57 +89378,53 @@ 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' }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) + attach_process(pid=pid_t(-1), event_id=-1) -> int + @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) + @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) + auto_mark_range(start, end, type) + @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) + auto_unmark(start, end, type) + @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: @@ -77062,13 +89479,11 @@ can_exc_continue() 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 + check_bpt(ea) -> int + @param ea (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_func in module idc: @@ -77090,15 +89505,12 @@ clear_trace(filename) Help on function create_align in module ida_bytes: create_align(*args) -> 'bool' - 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) + create_align(ea, length, alignment) -> bool + @param ea (C++: ea_t) + @param length (C++: asize_t) + @param alignment (C++: int) Help on function create_array in module idc: @@ -77121,37 +89533,32 @@ create_byte(ea) 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) + create_custdata(ea, length, dtid, fid, force=False) -> 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. - @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 + create_data(ea, dataflag, size, tid) -> bool + @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: @@ -77183,18 +89590,16 @@ create_float(ea) 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: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + create_insn(ea, out=None) -> int + @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: @@ -77282,18 +89687,16 @@ create_yword(ea) 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 + define_exception(code, name, desc, flags) -> char const * + @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: @@ -77327,51 +89730,49 @@ del_array_element(tag, array_id, idx) Help on function del_bpt in module ida_dbg: del_bpt(*args) -> 'bool' - 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) + del_bpt(ea) -> bool + @param ea: any address in the breakpoint range (C++: ea_t) + + + del_bpt(bptloc) -> bool + 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' 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) + del_cref(frm, to, expand) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) + @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) + del_dref(frm, to) + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @param to: linear address of referenced data (C++: ea_t) 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) + del_enum(id) + @param id (C++: enum_t) Help on function del_enum_member in module idc: @@ -77391,28 +89792,25 @@ Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) -> 'void' del_extra_cmt(ea, what) + ea: ea_t + 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) + del_fixup(source) + @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) - @return: success + del_func(ea) -> bool + @param ea: any address in the function entry chunk (C++: ea_t) + @return: success Help on function del_hash_string in module idc: @@ -77427,83 +89825,76 @@ del_hash_string(hash_id, key) 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) - @return: success + del_hidden_range(ea) -> bool + @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) -> 'bool' - del_idc_hotkey(hotkey) -> bool - - Delete IDC function hotkey ( 'ui_del_idckey' ). - @param hotkey: hotkey name (C++: const char *) + del_idc_hotkey(hotkey) -> bool + @param hotkey: hotkey name (C++: const char *) + @retval: 1 - ok + @retval: 0 - failed 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: 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 + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + @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) -> '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) + del_segm(ea, flags) -> bool + @param ea: any address belonging to the segment (C++: ea_t) + @param flags: Segment modification flags (C++: int) + @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: number of selector to remove from the translation - table (C++: sel_t) + del_selector(selector) + @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) -> 'void' del_source_linnum(ea) + @param ea (C++: 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) - @return: success + del_sourcefile(ea) -> bool + @param ea: linear address (C++: ea_t) + @return: success Help on function del_stkpnt in module idc: @@ -77570,25 +89961,28 @@ demangle_name(name, disable_mask) 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(nonnul_filename) -> bool - - Show difference between the current trace and the one from 'filename'. + + diff_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool + @param ea (C++: ea_t) + @param enable (C++: bool) + + enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: bool) Help on function enable_tracing in module idc: @@ -77604,8 +89998,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 @@ -77625,9 +90017,6 @@ eval_idc(expr) 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' } @@ -77661,38 +90050,29 @@ find_binary(ea, flag, searchstr, radix=16, from_bc695=False) 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) + find_code(ea, sflag) -> ea_t + @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) + find_data(ea, sflag) -> ea_t + @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) + find_defined(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function find_func_end in module idc: @@ -77708,15 +90088,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 next immediate operand with the given value. - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) + find_imm(ea, sflag, search_value) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) + @param search_value (C++: uval_t) Help on function find_selector in module idc: @@ -77733,14 +90110,11 @@ find_selector(val) 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) + find_suspop(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function find_text in module idc: @@ -77749,14 +90123,11 @@ find_text(ea, flag, y, x, searchstr, from_bc695=False) 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) + find_unknown(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function first_func_chunk in module idc: @@ -77930,11 +90301,13 @@ Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t + slot: int32 Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * + slot: int32 Help on function get_bpt_attr in module idc: @@ -77958,18 +90331,12 @@ get_bpt_ea(n) 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)}Usually, a breakpoint is associated with a read, read/write @@ -77978,9 +90345,10 @@ get_bpt_tev_ea(*args) -> 'ea_t' 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. + get_bpt_tev_ea(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -77999,15 +90367,13 @@ get_bytes(ea, size, use_dbg=False) 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: 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. + get_call_tev_callee(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -78029,24 +90395,19 @@ get_curline() 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) + get_db_byte(ea) -> uchar + @param ea (C++: ea_t) Help on function get_debugger_event_cond in module ida_dbg: @@ -78056,89 +90417,69 @@ get_debugger_event_cond(*args) -> '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: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + get_entry(ord) -> ea_t + @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) -> '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) - @return: size of entry name or -1 + get_entry_name(ord) -> str + @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) -> '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) - @return: ordinal number or 0. + get_entry_ordinal(idx) -> uval_t + @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) -> '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 *) + get_enum(name) -> enum_t + @param name (C++: const char *) 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) + get_enum_cmt(id, repeatable) -> str + @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 flags determining the representation of the enum. (currently they define the numeric base: octal, decimal, hex, bin) and signness. - @param id (C++: enum_t) + get_enum_flag(id) -> flags_t + @param id (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' + Get the index in the list of enums. + 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) + @param id (C++: enum_t) Help on function get_enum_member in module idc: @@ -78157,24 +90498,18 @@ get_enum_member(enum_id, value, serial, bmask) 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) + get_enum_member_bmask(id) -> bmask_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 *) + get_enum_member_by_name(name) -> const_t + @param name (C++: const char *) Help on function get_enum_member_cmt in module idc: @@ -78189,13 +90524,10 @@ get_enum_member_cmt(const_id, repeatable) 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) + get_enum_member_enum(id) -> enum_t + @param id (C++: const_t) Help on function get_enum_member_name in module idc: @@ -78209,54 +90541,40 @@ get_enum_member_name(const_id) 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) + get_enum_member_value(id) -> uval_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) + get_enum_name(id) -> str + @param id (C++: 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) + get_enum_size(id) -> size_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 - @param id (C++: enum_t) + get_enum_width(id) -> size_t + @param id (C++: enum_t) Help on function get_event_bpt_hea in module idc: @@ -78355,6 +90673,8 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) -> 'int' get_extra_cmt(ea, what) -> ssize_t + ea: ea_t + what: int Help on function get_fchunk_attr in module idc: @@ -78370,75 +90690,67 @@ Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) -> 'ea_t' get_fchunk_referer(ea, idx) -> ea_t + ea: ea_t + 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 bitmask in the enum (bitfield) - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + get_first_bmask(id) -> bmask_t + @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) -> '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!). - @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 . + get_first_cref_from(frm) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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: 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. + get_first_cref_to(to) -> ea_t + @param to: linear address of referenced instruction (C++: ea_t) + @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. + get_first_dref_from(frm) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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. + get_first_dref_to(to) -> ea_t + @param to: linear address of referencing instruction or data (C++: + ea_t) + @return: BADADDR if nobody refers to the specified data. Help on function get_first_enum_member in module idc: @@ -78455,11 +90767,13 @@ 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 frm (C++: 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 (C++: ea_t) Help on function get_first_hash_key in module idc: @@ -78518,12 +90832,7 @@ get_first_seg() 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: @@ -78578,14 +90887,12 @@ get_fixup_target_type(ea) 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) - @return: size of forced operand or -1 + get_forced_operand(ea, n) -> str + @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: @@ -78649,13 +90956,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 flags value for address 'ea'. - @param ea (C++: ea_t) - @return: 0 if address is not present in the program + get_full_flags(ea) -> flags_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 +91045,32 @@ 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. - @param ea (C++: ea_t) + get_item_end(ea) -> 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) - @param ea (C++: ea_t) + get_item_head(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_item_size in module idc: @@ -78785,13 +91084,11 @@ 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 bitmask in the enum (bitfield) - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + get_last_bmask(id) -> bmask_t + @param id (C++: enum_t) + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module idc: @@ -78847,13 +91144,7 @@ get_last_member(sid) 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: @@ -78866,13 +91157,11 @@ get_local_tinfo(ordinal) 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) - @return: size of manual instruction or -1 + get_manual_insn(ea) -> str + @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: @@ -79045,18 +91334,16 @@ get_name(ea, gtn_flags=0) Help on function get_name_ea in module ida_name: get_name_ea(*args) -> 'ea_t' - 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 + get_name_ea(_from, name) -> ea_t + @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: @@ -79071,76 +91358,65 @@ 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 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 + get_next_bmask(id, bmask) -> bmask_t + @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) -> '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. + get_next_cref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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 . 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. + get_next_cref_to(to, current) -> ea_t + @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 . 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 + get_next_dref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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 . 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. + get_next_dref_to(to, current) -> ea_t + @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. Help on function get_next_enum_member in module idc: @@ -79170,22 +91446,24 @@ 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 frm (C++: ea_t) + @param current (C++: 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 (C++: ea_t) + @param current (C++: 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) - @return: the next address with fixup information, or BADADDR + get_next_fixup_ea(ea) -> ea_t + @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: @@ -79264,13 +91542,11 @@ get_next_seg(ea) 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++ + get_next_struc_idx(idx) -> uval_t + @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: @@ -79321,26 +91597,22 @@ get_ordinal_qty() 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) + get_original_byte(ea) -> uint64 + @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 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 + get_prev_bmask(id, bmask) -> bmask_t + @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: @@ -79370,13 +91642,11 @@ get_prev_fchunk(ea) 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) - @return: the previous address with fixup information, or BADADDR + get_prev_fixup_ea(ea) -> ea_t + @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: @@ -79436,91 +91706,77 @@ get_prev_offset(sid, offset) 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 + get_prev_struc_idx(idx) -> uval_t + @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 *) - @return: number of processes or -1 on error + get_processes(proclist) -> ssize_t + @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) -> '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 \inf{is_be()} This function works only for 8bit byte processors. - @param ea (C++: ea_t) + get_qword(ea) -> uint64 + @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 *' + Read a register value from the current thread. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - @param name: the register name + get_reg_val(regname, regval) -> bool + @param regname (C++: const char *) + @param regval (C++: 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. - @return: register value (integer or floating point) + get_reg_val(regname, ival) -> bool + @param regname (C++: const char *) + ival: uint64 * + + + get_reg_val(regname) -> PyObject * + @param regname (C++: const char *) 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: 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. + get_ret_tev_return(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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) -> '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: @@ -79574,20 +91830,19 @@ Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) -> 'uval_t' get_source_linnum(ea) -> uval_t + @param ea (C++: 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 + get_sourcefile(ea, bounds=None) -> char const * + @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: @@ -79629,13 +91884,8 @@ get_sreg(ea, reg) 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: @@ -79659,83 +91909,67 @@ get_strlit_contents(ea, length=-1, strtype=0) 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) + get_struc_by_idx(idx) -> tid_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) + get_struc_cmt(id, repeatable) -> str + @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 *) + get_struc_id(name) -> tid_t + @param name (C++: const char *) 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) + get_struc_idx(id) -> uval_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) + get_struc_name(id, flags=0) -> str + @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) -> '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_struc_size(id) -> asize_t - - Get struct size (also see 'get_struc_size(tid_t)' ) + get_struc_size(sptr) -> asize_t + @param sptr (C++: const struc_t *) - @param sptr (C++: const struc_t *) + + get_struc_size(id) -> asize_t + 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 (C++: int) Help on function get_tev_reg_mem in module ida_dbg: @@ -79752,9 +91986,6 @@ 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)} @@ -79766,18 +91997,17 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int + @param n (C++: int) Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int + @param n (C++: 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)} @@ -79792,13 +92022,10 @@ get_tinfo(ea) 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 *) + get_trace_file_desc(filename) -> str + @param filename (C++: const char *) Help on function get_type in module idc: @@ -79812,41 +92039,35 @@ get_type(ea) 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) + get_wide_byte(ea) -> uint64 + @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 \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - @param ea (C++: ea_t) + get_wide_dword(ea) -> uint64 + @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 \inf{is_be()} - @param ea (C++: ea_t) + get_wide_word(ea) -> uint64 + @param ea (C++: ea_t) Help on function get_xref_type in module idc: @@ -79859,39 +92080,32 @@ get_xref_type() Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - getn_enum(n) -> 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) + getn_enum(idx) -> enum_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)} - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + getn_thread(n) -> thid_t + @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) -> 'char const *' - 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. + getn_thread_name(n) -> char const * + @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: @@ -79986,13 +92200,11 @@ 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) + is_bf(id) -> bool + @param id (C++: enum_t) Help on function is_byte in module idc: @@ -80153,13 +92365,10 @@ 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 *) + is_valid_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function is_word in module idc: @@ -80168,45 +92377,47 @@ is_word(F) Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' - 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 + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + @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 + + + jumpto(custom_viewer, place, x, y) -> bool + custom_viewer: TWidget * + place: place_t * + x: int + y: int + @return: success 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) + load_and_run_plugin(name, arg) -> bool + @param name (C++: const char *) + @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 (C++: const char *) + @param use_remote (C++: 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 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 *) + load_trace_file(filename) -> str + @param filename (C++: const char *) Help on function loadfile in module idc: @@ -80246,8 +92457,6 @@ Help on function msg in module ida_kernwin: msg(*args) -> 'PyObject *' msg(o) -> PyObject * - - Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -80260,13 +92469,11 @@ msg(*args) -> 'PyObject *' 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. + next_addr(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_func_chunk in module idc: @@ -80294,145 +92501,115 @@ next_head(ea, maxea=BADADDR)↗ 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. + next_not_tail(ea) -> ea_t + @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) + op_bin(ea, n) -> bool + @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) + op_chr(ea, n) -> bool + @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) + op_dec(ea, n) -> bool + @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: 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 + op_enum(ea, n, id, serial) -> bool + @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) -> 'bool' - op_flt(ea, n) -> bool - - set op type to 'flt_flag()' - - @param ea (C++: ea_t) - @param n (C++: int) + op_flt(ea, n) -> bool + @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) + op_hex(ea, n) -> bool + @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 *) - @return: success + set_forced_operand(ea, n, op) -> bool + @param ea: linear address (C++: ea_t) + @param n: number of operand (0, 1, 2) (C++: int) + @param op: text of operand nullptr: do nothing (return 0) "" : + delete forced operand (C++: const char *) + @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) + op_num(ea, n) -> bool + @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) + op_oct(ea, n) -> bool + @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' 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) + op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + @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: @@ -80492,29 +92669,25 @@ op_plain_offset(ea, n, base) 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: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + op_seg(ea, n) -> bool + @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) -> '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: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + op_stkvar(ea, n) -> bool + @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: @@ -80553,69 +92726,79 @@ parse_decls(inputtype, flags=0) 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. - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_byte(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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) - @return: true if the process memory has been modified + put_dbg_byte(ea, x) -> bool + @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) -> '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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_dword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_qword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_word(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. Help on function plan_and_wait in module idc: @@ -80631,26 +92814,22 @@ plan_and_wait(sEA, eEA, final_pass=True) 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 + plan_to_apply_idasgn(fname) -> int + @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) -> '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. + prev_addr(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_head in module idc: @@ -80666,13 +92845,11 @@ prev_head(ea, minea=0) 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. + prev_not_tail(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if none exists. Help on function print_decls in module idc: @@ -80742,11 +92919,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 +92934,20 @@ Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) + ea: ea_t + lnnum: int + x: short + y: short + slot: int32 + 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) + qexit(code) + @param code: exit code (C++: int) Help on function qsleep in module idc: @@ -80800,8 +92977,6 @@ 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) @@ -80851,23 +93026,18 @@ 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: 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 + rebase_program(delta, flags) -> int + @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) -> '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 @@ -80876,23 +93046,21 @@ recalc_spd(*args) -> 'bool' current instruction doesn't pass the execution flow to the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + recalc_spd(cur_ea) -> bool + @param cur_ea: linear address of the current instruction (C++: ea_t) + @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 @@ -80924,17 +93092,15 @@ rename_array(array_id, newname) 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) - @return: success + rename_entry(ord, name, flags=0) -> bool + @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: @@ -80943,20 +93109,18 @@ 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: thread id (C++: thid_t) + resume_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @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 - - Get input file md5. Help on function rotate_byte in module idc: @@ -80988,9 +93152,6 @@ 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) @@ -80998,11 +93159,12 @@ run_to(*args) -> 'bool' 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) + run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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: @@ -81016,14 +93178,11 @@ save_database(idbname, flags=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 *) - @param description (C++: const char *) + save_trace_file(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) Help on function savefile in module idc: @@ -81044,16 +93203,14 @@ sel2para(sel) 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: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + select_thread(tid) -> bool + @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: @@ -81157,16 +93314,14 @@ set_bpt_cond(ea, cnd, is_lowcnd=0) 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) - @return: success + set_cmt(ea, comm, rptble) -> bool + @param ea: linear address (C++: ea_t) + @param comm: comment string nullptr: 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: @@ -81182,19 +93337,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(evcond) + @param evcond (C++: const char *) 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 + set_debugger_options(options) -> uint + @param options (C++: uint) + @return: the old debugger options Help on function set_default_sreg_value in module idc: @@ -81210,99 +93364,76 @@ set_default_sreg_value(ea, reg, value) 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) + set_enum_bf(id, bf) -> 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) + set_enum_cmt(id, cmt, repeatable) -> bool + @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) -> 'bool' - set_enum_flag(id, flag) -> bool - - Set data representation flags. - - @param id (C++: enum_t) - @param flag (C++: flags_t) + set_enum_flag(id, flag) -> bool + @param id (C++: enum_t) + @param flag (C++: flags_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) + set_enum_idx(id, idx) -> bool + @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) + set_enum_member_cmt(id, cmt, repeatable) -> bool + @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) -> 'bool' - set_enum_member_name(id, name) -> bool - - Set name of enum member. - - @param id (C++: const_t) - @param name (C++: const char *) + set_enum_member_name(id, name) -> bool + @param id (C++: const_t) + @param name (C++: const char *) 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 *) + set_enum_name(id, name) -> bool + @param id (C++: enum_t) + @param name (C++: const char *) 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) + set_enum_width(id, width) -> bool + @param id (C++: enum_t) + @param width (C++: int) Help on function set_fchunk_attr in module idc: @@ -81374,14 +93505,12 @@ set_func_cmt(ea, cmt, repeatable) 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) - @return: success + set_func_end(ea, newend) -> bool + @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: @@ -81418,17 +93547,16 @@ set_hash_string(hash_id, key, value) 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) - @return: old indicator status + set_ida_state(st) -> idastate_t + @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: @@ -81446,14 +93574,12 @@ set_local_type(ordinal, input, flags) 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 *) + set_manual_insn(ea, manual_insn) + @param ea: linear address of the instruction or data item (C++: ea_t) + @param manual_insn: "" - delete manual string. nullptr - do nothing + (C++: const char *) Help on function set_member_cmt in module idc: @@ -81521,16 +93647,14 @@ set_name(ea, name, flags=0) 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: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + set_processor_type(procname, level) -> bool + @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: @@ -81547,26 +93671,22 @@ set_reg_value(value, name) 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: 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) + set_remote_debugger(host, _pass, port=-1) + @param host: If empty, IDA will use local debugger. If NULL, the host + will not be set. (C++: const char *) + pass: char const * + @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) -> 'void' - set_root_filename(file) - - Set full path of the input file. - - @param file (C++: const char *) + set_root_filename(file) + @param file (C++: const char *) Help on function set_segm_addressing in module idc: @@ -81655,62 +93775,57 @@ set_segment_bounds(ea, startea, endea, flags) 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 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) + set_selector(selector, paragraph) -> int + @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) + @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 (C++: ea_t) + @param lnnum (C++: 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) + set_step_trace_options(options) + @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) - @return: error code + change_storage_type(start_ea, end_ea, stt) -> error_t + @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) -> '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) + set_struc_cmt(id, cmt, repeatable) -> bool + @param id (C++: tid_t) + @param cmt (C++: const char *) + @param repeatable (C++: bool) Help on function set_struc_idx in module idc: @@ -81728,14 +93843,11 @@ set_struc_idx(sid, index) 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 *) + set_struc_name(id, name) -> bool + @param id (C++: tid_t) + @param name (C++: const char *) Help on function set_tail_owner in module idc: @@ -81752,26 +93864,21 @@ set_tail_owner(tailea, funcea) 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) - @return: success + set_target_assembler(asmnum) -> bool + @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) -> '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 *) + set_trace_file_desc(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) Help on function split_sreg_range in module idc: @@ -81790,9 +93897,6 @@ split_sreg_range(ea, reg, value, tag=2) 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' }You can also use the 'run_to()' function to easily start the execution of a process @@ -81800,16 +93904,17 @@ start_process(*args) -> 'int' 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 *) + start_process(path=None, args=None, sdir=None) -> int + @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 *) + @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' } @@ -81817,9 +93922,6 @@ step_into(*args) -> 'bool' 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' } @@ -81827,9 +93929,6 @@ step_over(*args) -> 'bool' 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, @@ -81850,9 +93949,6 @@ 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 @@ -81865,27 +93961,26 @@ suspend_process(*args) -> 'bool' 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: thread id (C++: thid_t) + suspend_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @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 a memory snapshot of the running process. - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success + take_memory_snapshot(only_loader_segs) -> bool + @param only_loader_segs: only is_loader_segm() segments will be + affected (C++: bool) + @return: success Help on function to_ea in module idc: @@ -81906,19 +94001,20 @@ toggle_bnot(ea, n) 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) + toggle_sign(ea, n) -> bool + @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) + ea: ea_t + what: int + str: char const * Help on function update_hidden_range in module idc: @@ -81977,25 +94073,21 @@ value_is_string(var) 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: 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) + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + @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) -> 'void' warning(format) - - Display a message in a message box @param message: message to print (formatting is done in Python) diff --git a/python/idautils.py b/python/idautils.py index 581beb6..0c84eda 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 @@ -359,14 +360,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): diff --git a/python/idc.py b/python/idc.py index 74ebba1..c08735e 100644 --- a/python/idc.py +++ b/python/idc.py @@ -1087,7 +1087,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) @@ -1787,13 +1787,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. @@ -5675,22 +5671,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): """ 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..52460e9 100644 --- a/pywraps.cpp +++ b/pywraps.cpp @@ -831,7 +831,7 @@ int ida_export idcvar_to_pyvar( if ( *py_var == NULL ) { double x; - if ( ph.realcvt(&x, (uint16 *)idc_var.e, (sizeof(x)/2-1)|010) != 1 ) + if ( processor_t::realcvt(&x, (uint16 *)idc_var.e, (sizeof(x)/2-1)|010) != 1 ) INTERR(30160); *py_var = newref_t(PyFloat_FromDouble(x)); @@ -1556,9 +1556,6 @@ bool ida_export lookup_info_t_del_by_py_view( return false; } -//------------------------------------------------------------------------- -lookup_info_t pycim_lookup_info; - //------------------------------------------------------------------------- // py_customidamemo_t //------------------------------------------------------------------------- diff --git a/pywraps.hpp b/pywraps.hpp index 2fa7498..2c79a03 100644 --- a/pywraps.hpp +++ b/pywraps.hpp @@ -38,7 +38,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)); } @@ -116,6 +116,8 @@ 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_DIRTREE[] = "OnGetDirTree"; +static const char S_ON_INDEX_TO_INODE[] = "OnIndexToInode"; static const char S_ON_ACTIVATE[] = "OnActivate"; static const char S_ON_DEACTIVATE[] = "OnDeactivate"; static const char S_ON_SELECT[] = "OnSelect"; @@ -585,8 +587,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 +669,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 +689,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() { @@ -783,8 +772,294 @@ struct new_execution_t }; //------------------------------------------------------------------------- +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; + bool alert_auto_scripts; + bool remove_cwd_sys_path; + bool autoimport_compat_idaapi; + bool autoimport_compat_ida695; + bool namespace_aware; + bool repl_use_sys_displayhook; + + idapython_plugin_config_t() + : execution_timeout(0), + alert_auto_scripts(true), + remove_cwd_sys_path(false), + autoimport_compat_idaapi(true), + autoimport_compat_ida695(false), + namespace_aware(true), + repl_use_sys_displayhook(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__ +# ifdef PY3 + qvector pyhomepath; +# else + qstring pyhomepath; +# endif +#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 = NULL, + 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(); idaman bool ida_export is_api695_compat_enabled(); +//------------------------------------------------------------------------- +py_customidamemo_t::py_customidamemo_t() + : cb_flags(0), + self(newref_t(NULL)), + view(NULL) +{ + 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 bool ida_export idapython_hook_to_notification_point( hook_type_t hook_type, @@ -811,8 +1086,8 @@ struct hooks_base_t typedef std::map has_nondef_map_t; has_nondef_map_t has_nondef; - 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() { return cb != NULL && idapython_hook_to_notification_point(type, cb, this, true); } + bool unhook() { return cb != NULL && idapython_unhook_from_notification_point(type, cb, this); } 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; } @@ -837,9 +1112,9 @@ 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 { @@ -885,14 +1160,25 @@ protected: { #ifdef BC695 if ( PyObject_HasAttrString(py_def_meth.o, "bc695_trampoline") > 0 ) - _has_nondef = 2; + { + _has_nondef = 3; + } else #endif + { + if ( PyObject_HasAttrString(py_def_meth.o, "__trampoline") > 0 ) + { + _has_nondef = 2; + } + else + { #ifdef PY3 - _has_nondef = PyObject_RichCompareBool(py_this_meth.o, py_def_meth.o, Py_EQ) == 0 ? 1 : 0; + _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; + _has_nondef = PyObject_Compare(py_this_meth.o, py_def_meth.o) != 0 ? 1 : 0; #endif + } + } } has_nondef[cur.code] = _has_nondef; } @@ -901,9 +1187,9 @@ protected: } void ensure_no_method_when_no_695_compat( - PyObject *self, - const char *forbidden_method_name, - const char *replacement_method_name) + PyObject *self, + const char *forbidden_method_name, + const char *replacement_method_name) { if ( !is_api695_compat_enabled() ) { @@ -935,9 +1221,14 @@ 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 diff --git a/pywraps/py_bytes_custdata.hpp b/pywraps/py_bytes_custdata.hpp index 058ff0c..ba74100 100644 --- a/pywraps/py_bytes_custdata.hpp +++ b/pywraps/py_bytes_custdata.hpp @@ -16,9 +16,9 @@ class py_custom_data_type_t : public data_type_t // may create data? NULL 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; @@ -36,11 +36,11 @@ class py_custom_data_type_t : public data_type_t // !=NULL 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 @@ -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; } @@ -176,14 +176,14 @@ 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 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 { PYW_GIL_GET; @@ -218,13 +218,13 @@ private: 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 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 { PYW_GIL_GET; @@ -286,10 +286,10 @@ private: 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); @@ -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; } @@ -408,10 +408,10 @@ static int py_custom_data_format_t_get_id(data_format_t *_df) 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(); } // diff --git a/pywraps/py_dbg.hpp b/pywraps/py_dbg.hpp index 360ca03..7218f24 100644 --- a/pywraps/py_dbg.hpp +++ b/pywraps/py_dbg.hpp @@ -447,7 +447,7 @@ 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) || !IDAPyBytes_Check(py_buf) ) return -1; char *buf = NULL; Py_ssize_t sz; @@ -474,6 +474,12 @@ def dbg_can_query(): # */ +//------------------------------------------------------------------------- +static bool py_dbg_can_query() +{ + return dbg_can_query(dbg); +} + //------------------------------------------------------------------------- static PyObject *py_set_reg_val(const char *regname, PyObject *o) { diff --git a/pywraps/py_expr.py b/pywraps/py_expr.py index a8b382c..615e203 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 """ diff --git a/pywraps/py_frame.hpp b/pywraps/py_frame.hpp index ca8f512..f041e01 100644 --- a/pywraps/py_frame.hpp +++ b/pywraps/py_frame.hpp @@ -28,4 +28,18 @@ PyObject *py_get_stkvar(const insn_t &insn, const op_t &op, sval_t v) 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); +} // diff --git a/pywraps/py_gdl.py b/pywraps/py_gdl.py index b312dc8..70fa7a2 100644 --- a/pywraps/py_gdl.py +++ b/pywraps/py_gdl.py @@ -60,7 +60,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 +99,6 @@ class FlowChart(object): else: return self._getitem(index) +FC_PREDS = 0 # obsolete bit, do not use + # diff --git a/pywraps/py_graph.hpp b/pywraps/py_graph.hpp index 9c1d0a4..9ee42ad 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 @@ -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(NULL, (py_graph_t *) obj); QASSERT(30453, found || code == grcode_destroyed); if ( found ) { @@ -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); } @@ -237,7 +237,7 @@ private: } } - virtual void refresh() + virtual void refresh() override { refresh_needed = true; inherited::refresh(); @@ -253,7 +253,7 @@ private: TWidget *widget = find_widget(title); if ( widget == NULL ) // 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]; @@ -268,7 +268,7 @@ private: if ( pview != NULL ) viewer_fit_window(pview); bind(self, pview); - pycim_lookup_info.commit(e, view); + get_plugin_instance()->pycim_lookup_info.commit(e, view); } else { @@ -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 == NULL || !get_plugin_instance()->pycim_lookup_info.find_by_py_view(NULL, _this) ) return; _this->jump_to_node(nid); @@ -302,7 +302,7 @@ 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) ) + if ( _this == NULL || !get_plugin_instance()->pycim_lookup_info.find_by_py_view(&view, _this) ) return NULL; newref_t ret(PyObject_CallMethod(self, "unhook", NULL)); close_widget(view, WCLS_CLOSE_LATER); @@ -326,7 +326,7 @@ public: // 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); + get_plugin_instance()->pycim_lookup_info.find_by_view((py_customidamemo_t**) &py_graph, existing); if ( py_graph == NULL ) { diff --git a/pywraps/py_hexrays.hpp b/pywraps/py_hexrays.hpp index 008bf92..b7a9f06 100644 --- a/pywraps/py_hexrays.hpp +++ b/pywraps/py_hexrays.hpp @@ -28,7 +28,7 @@ static void debug_hexrays_ctree(const char *format, ...) // - 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 +// - we receive 'ui_database_closed', and // + set 'hexdsp = init_time_dummy_hexdsp' // - IDAPython is unloaded, and during cleanup of the runtime data, // reachable citem_t's will get destroyed. @@ -44,7 +44,7 @@ static void *idaapi init_time_dummy_hexdsp(int code, ...) 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: { #ifdef _DEBUG @@ -60,8 +60,8 @@ static void *idaapi init_time_dummy_hexdsp(int code, ...) QASSERT(30498, ((cinsn_t *)item)->op == cit_empty && ((cinsn_t *)item)->cblock == NULL); 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); + else if ( code == hx_mba_t_term ) + QASSERT(30596, ((mba_t *)item)->blocks == NULL); else if ( code == hx_valrng_t_clear ) QASSERT(30601, ((valrng_t *)item)->empty()); else @@ -99,10 +99,32 @@ static void *idaapi init_time_dummy_hexdsp(int code, ...) QASSERT(30599, remove_optblock_handler(ob) == false); // 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 _DEBUG + static bool in_removal = false; + if ( !in_removal ) + { + in_removal = true; + QASSERT(30620, install_microcode_filter(mf, false) == false); // must have been removed already + in_removal = false; + } +#else + qnotused(mf); #endif } break; default: +BAD_CODE: #ifdef _DEBUG if ( under_debugger ) BPT; @@ -145,12 +167,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 { @@ -182,8 +205,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 +223,9 @@ void hexrays_unloading__clear_python_clearable_references(void) case hxclr_valrng_t: ((valrng_t *) hxc.ptr)->set_none(); break; + case hxclr_udc_filter_t: + install_microcode_filter((microcode_filter_t *) hxc.ptr, false); + break; default: INTERR(30499); } } @@ -327,7 +353,7 @@ static ssize_t idaapi ida_hexrays_ui_notification(void *, int code, va_list va) } } break; - case ui_term: + case ui_database_closed: hexdsp = init_time_dummy_hexdsp; break; } @@ -346,6 +372,18 @@ static void ida_hexrays_term(void) //------------------------------------------------------------------------- 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); +} // diff --git a/pywraps/py_hexrays.py b/pywraps/py_hexrays.py index 250806b..0931876 100644 --- a/pywraps/py_hexrays.py +++ b/pywraps/py_hexrays.py @@ -9,6 +9,7 @@ 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 # --------------------------------------------------------------------- class DecompilationFailure(Exception): diff --git a/pywraps/py_ida.py b/pywraps/py_ida.py index 311fbab..e95eff9 100644 --- a/pywraps/py_ida.py +++ b/pywraps/py_ida.py @@ -152,6 +152,22 @@ 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 + +def __wrap_hooks_callback(klass, new_name, old_name, do_call): + bkp_name = "__real_%s" % new_name + def __wrapper(self, *args): + rc = getattr(self, bkp_name)(*args) + cb = getattr(self, old_name, None) + if cb: + rc = do_call(cb, *args) + return rc + + 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 # @@ -187,20 +203,6 @@ 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 - def __wrapper(self, *args): - rc = getattr(self, bkp_name)(*args) - cb = getattr(self, old_name, None) - if cb: - rc = do_call(cb, *args) - return rc - - setattr(klass, bkp_name, getattr(klass, new_name)) - setattr(__wrapper, "bc695_trampoline", True) - setattr(klass, new_name, __wrapper) - idainfo.ASCIIbreak = idainfo.strlit_break idainfo.ASCIIpref = idainfo.strlit_pref idainfo.ASCIIsernum = idainfo.strlit_sernum @@ -253,4 +255,8 @@ def make_obsolete_accessors(): return getter, setter idainfo.allow_nonmatched_ops = property(*make_obsolete_accessors()) idainfo.check_manual_ops = property(*make_obsolete_accessors()) + +def __wrap_695_hooks_callback(klass, new_name, old_name, do_call): + w = __wrap_hooks_callback(klass, new_name, old_name, do_call) + setattr(w, "bc695_trampoline", True) # diff --git a/pywraps/py_idaapi.hpp.in b/pywraps/py_idaapi.hpp.in index 82aafc2..88d791f 100644 --- a/pywraps/py_idaapi.hpp.in +++ b/pywraps/py_idaapi.hpp.in @@ -51,7 +51,7 @@ TWidget *pycim_get_widget(PyObject *self) { CHK_THIS_OR_NULL(); TWidget *widget = NULL; - if ( !pycim_lookup_info.find_by_py_view(&widget, _this) ) + if ( !get_plugin_instance()->pycim_lookup_info.find_by_py_view(&widget, _this) ) return NULL; return widget; } diff --git a/pywraps/py_idaapi.py b/pywraps/py_idaapi.py index a56cf76..01d371e 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 @@ -232,6 +233,11 @@ class plugin_t(pyidc_opaque_object_t): """Base class for all scripted plugins.""" pass +# ----------------------------------------------------------------------- +class plugmod_t(pyidc_opaque_object_t): + """Base class for all scripted multi-plugins.""" + pass + # ----------------------------------------------------------------------- class pyidc_cvt_helper__(object): """ diff --git a/pywraps/py_idc.hpp b/pywraps/py_idc.hpp index 248b4f9..5f37727 100644 --- a/pywraps/py_idc.hpp +++ b/pywraps/py_idc.hpp @@ -21,7 +21,7 @@ inline void mark_position( //------------------------------------------------------------------------- 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); @@ -34,7 +34,7 @@ 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) ) diff --git a/pywraps/py_idd.hpp b/pywraps/py_idd.hpp index fd14cb3..b848860 100644 --- a/pywraps/py_idd.hpp +++ b/pywraps/py_idd.hpp @@ -229,7 +229,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,7 +251,7 @@ 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 @@ -288,7 +288,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() ) @@ -334,7 +334,7 @@ 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 diff --git a/pywraps/py_idp.hpp b/pywraps/py_idp.hpp index dcd48a0..f58664e 100644 --- a/pywraps/py_idp.hpp +++ b/pywraps/py_idp.hpp @@ -32,7 +32,7 @@ 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); @@ -67,7 +67,7 @@ bool assemble( PYW_GIL_CHECK_LOCKED_SCOPE(); bool rc = false; Py_BEGIN_ALLOW_THREADS; - int inslen = ph.assemble((uchar *)buf, ea, cs, ip, use32, line); + int inslen = processor_t::assemble((uchar *)buf, ea, cs, ip, use32, line); if ( inslen > 0 ) { patch_bytes(ea, buf, inslen); @@ -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,6 +302,7 @@ static PyObject *ph_get_instruc() { Py_ssize_t i = 0; PYW_GIL_CHECK_LOCKED_SCOPE(); + processor_t &ph = PH; PyObject *py_result = PyTuple_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; @@ -325,6 +326,7 @@ 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])); @@ -373,13 +375,13 @@ 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; } @@ -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); } //------------------------------------------------------------------------- -/* -# -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 - -# -*/ //--------------------------------------------------------------------------- // IDP hooks //--------------------------------------------------------------------------- @@ -658,13 +499,13 @@ 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) ) @@ -729,12 +570,12 @@ private: 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 ) @@ -757,10 +598,10 @@ private: 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,17 +610,17 @@ 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); } 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); } @@ -797,6 +638,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(); +} // //------------------------------------------------------------------------- diff --git a/pywraps/py_idp.py.in b/pywraps/py_idp.py.in index e747bdb..baef34d 100644 --- a/pywraps/py_idp.py.in +++ b/pywraps/py_idp.py.in @@ -524,6 +524,10 @@ class __ph(object): ph = __ph() +class _idp_cvar_t: + ash = property(lambda self: get_ash()) +cvar = _idp_cvar_t() + # # @@ -565,7 +569,7 @@ def __call_IDP_Hooks_auto_queue_empty(cb, qtype): return rc import ida_ida -ida_ida.__wrap_hooks_callback( +ida_ida.__wrap_695_hooks_callback( IDP_Hooks, "ev_auto_queue_empty", "auto_queue_empty", diff --git a/pywraps/py_kernwin.hpp b/pywraps/py_kernwin.hpp index eb8fca2..48e2c00 100644 --- a/pywraps/py_kernwin.hpp +++ b/pywraps/py_kernwin.hpp @@ -620,7 +620,7 @@ 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)); @@ -689,9 +689,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,7 +708,7 @@ static bool py_execute_ui_requests(PyObject *py_list) { } - virtual bool idaapi run() + virtual bool idaapi run() override { PYW_GIL_GET; @@ -855,119 +855,6 @@ public: // UI hooks //--------------------------------------------------------------------------- ssize_t idaapi UI_Callback(void *ud, int notification_code, va_list va); -/* -# -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() - -# -*/ struct UI_Hooks : public hooks_base_t { // hookgenUI:methodsinfo_decl diff --git a/pywraps/py_kernwin.py b/pywraps/py_kernwin.py index ef9fcbe..2dfe42d 100644 --- a/pywraps/py_kernwin.py +++ b/pywraps/py_kernwin.py @@ -135,6 +135,14 @@ 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 @@ -178,9 +186,8 @@ 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) + return ida_ida.__wrap_695_hooks_callback(UI_Hooks, name, name.replace("widget", "tform"), do_call) __wrap_uihooks_callback("widget_visible", lambda cb, *args: cb(args[0], args[0])) diff --git a/pywraps/py_kernwin_askform.hpp b/pywraps/py_kernwin_askform.hpp index 60a0f6f..5c6ebf1 100644 --- a/pywraps/py_kernwin_askform.hpp +++ b/pywraps/py_kernwin_askform.hpp @@ -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 != NULL && fa->set_text_value(fid, ti); } // button - uint32 case 4: diff --git a/pywraps/py_kernwin_choose.hpp b/pywraps/py_kernwin_choose.hpp index ab3f39b..f47c020 100644 --- a/pywraps/py_kernwin_choose.hpp +++ b/pywraps/py_kernwin_choose.hpp @@ -14,49 +14,59 @@ static void py_get_int(PyObject *self, T *prm, const char *name) 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_GETDIRTREE = 0x0800, + CFEAT_INDEX2INODE = 0x1000, }; //------------------------------------------------------------------------ // 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 \ - { \ - return mixin_get_obj_id(len); \ - } \ - virtual void *get_chooser_obj() ida_override \ - { \ - return mixin_get_chooser_obj(); \ - } \ - virtual bool idaapi init() ida_override \ - { \ - return mixin_init(this); \ - } \ - virtual size_t idaapi get_count() const ida_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 \ - { \ - mixin_get_row(cols, icon_, attrs, n, this); \ - } \ - virtual void idaapi closed() ida_override \ - { \ - mixin_closed(this); \ +#define DEFINE_COMMON_CALLBACKS \ + virtual const void *get_obj_id(size_t *len) const override \ + { \ + return mixin_get_obj_id(len); \ + } \ + virtual void *get_chooser_obj() override \ + { \ + return mixin_get_chooser_obj(); \ + } \ + virtual bool idaapi init() override \ + { \ + return mixin_init(this); \ + } \ + 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 override \ + { \ + mixin_get_row(cols, icon_, attrs, n, this); \ + } \ + virtual void idaapi closed() override \ + { \ + mixin_closed(this); \ + } \ + 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); \ } @@ -89,23 +99,23 @@ struct py_chooser_props_t bool has_feature(feature_t f) const { return (features & f) == f; } 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); @@ -214,6 +224,8 @@ bool py_chooser_props_t::do_extract_from_pyobject( { S_ON_REFRESH, CFEAT_REFRESH, CH_CAN_REFRESH }, { S_ON_SELECTION_CHANGE, CFEAT_SELECT, 0 }, { S_ON_CLOSE, CFEAT_ONCLOSE, 0 }, + { S_ON_GET_DIRTREE, CFEAT_GETDIRTREE, CH_HAS_DIRTREE }, + { S_ON_INDEX_TO_INODE, CFEAT_INDEX2INODE, CH_HAS_DIRTREE }, }; // we can forbid some callbacks explicitly uint32 forbidden_cb = 0; @@ -253,6 +265,8 @@ 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) @@ -264,12 +278,14 @@ struct py_chooser_mixin_t { PYW_GIL_GET; self = newref_t(NULL); + dirspec = newref_t(NULL); + dirtree = newref_t(NULL); } 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); protected: const void *mixin_get_obj_id(size_t *len) const { *len = sizeof(self.o); return self.o; } @@ -277,12 +293,14 @@ 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); + dirtree_t *mixin_get_dirtree(const chooser_base_t *chobj); + inode_t mixin_index_to_inode(size_t n) const; void mixin_init_chooser_base_from_props(chooser_base_t *cb); }; @@ -414,6 +432,61 @@ void py_chooser_mixin_t::mixin_closed(chooser_base_t *chobj) } } +//------------------------------------------------------------------------- +dirtree_t *py_chooser_mixin_t::mixin_get_dirtree(const chooser_base_t * /*chobj*/) +{ + if ( !has_feature(CFEAT_GETDIRTREE) ) + return NULL; + PYW_GIL_GET; + + pycall_res_t pyres(PyObject_CallMethod(self.o, (char *) S_ON_GET_DIRTREE, NULL)); + if ( pyres.result == NULL ) + return NULL; + + 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 NULL; + } + + { + 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 != NULL ) + { + uint64 u64; + if ( PyW_GetNumber(pyres.result.o, &u64) ) + inode = inode_t(u64); + } + } + return inode; +} + //------------------------------------------------------------------------- void py_chooser_mixin_t::mixin_init_chooser_base_from_props( chooser_base_t *cb) @@ -472,37 +545,37 @@ 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)); } @@ -555,37 +628,37 @@ 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); diff --git a/pywraps/py_kernwin_choose.py b/pywraps/py_kernwin_choose.py index e0b0743..d777582 100644 --- a/pywraps/py_kernwin_choose.py +++ b/pywraps/py_kernwin_choose.py @@ -65,14 +65,21 @@ class Choose(object): 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 + # 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 diff --git a/pywraps/py_kernwin_cli.hpp b/pywraps/py_kernwin_cli.hpp index 4a66186..8ef6210 100644 --- a/pywraps/py_kernwin_cli.hpp +++ b/pywraps/py_kernwin_cli.hpp @@ -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( @@ -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( @@ -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( 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: - # -# -# 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 -# + @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 # diff --git a/pywraps/py_kernwin_custview.hpp b/pywraps/py_kernwin_custview.hpp index f723011..6eccfe9 100644 --- a/pywraps/py_kernwin_custview.hpp +++ b/pywraps/py_kernwin_custview.hpp @@ -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; @@ -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(); @@ -386,8 +386,8 @@ public: } bool set_range( - const place_t *minplace = NULL, - const place_t *maxplace = NULL) + const place_t *minplace = NULL, + const place_t *maxplace = NULL) { if ( widget == NULL ) return false; diff --git a/pywraps/py_kernwin_idaview.hpp b/pywraps/py_kernwin_idaview.hpp index 95ca880..776f48f 100644 --- a/pywraps/py_kernwin_idaview.hpp +++ b/pywraps/py_kernwin_idaview.hpp @@ -31,11 +31,11 @@ bool py_idaview_t::Bind(PyObject *self) // 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: diff --git a/pywraps/py_kernwin_plgform.hpp b/pywraps/py_kernwin_plgform.hpp index decaf0e..6ffd480 100644 --- a/pywraps/py_kernwin_plgform.hpp +++ b/pywraps/py_kernwin_plgform.hpp @@ -47,9 +47,9 @@ public: plgform_t() : widget(NULL) {} bool show( - PyObject *obj, - const char *caption, - int options) + PyObject *obj, + const char *caption, + int options) { const bool create_only = options == -1; diff --git a/pywraps/py_lines.hpp b/pywraps/py_lines.hpp index 1f0640e..768caa2 100644 --- a/pywraps/py_lines.hpp +++ b/pywraps/py_lines.hpp @@ -16,7 +16,7 @@ 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 @@ -34,21 +34,7 @@ static void idaapi s_py_get_user_defined_prefix( # 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 # @@ -86,22 +72,11 @@ static PyObject *py_set_user_defined_prefix(size_t width, PyObject *pycb) } //------------------------------------------------------------------------- -/* -# -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 -# -*/ -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); + tag_remove(&qbuf, str); return IDAPyStr_FromUTF8(qbuf.c_str()); } diff --git a/pywraps/py_lines.py b/pywraps/py_lines.py index 6d88ab2..e37ddd2 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 @@ -36,7 +37,7 @@ def COLSTR(str, tag): # # -COLOR_UTF8=COLOR_ADDR+10 # old value of COLOR_UTF8; shouldn't trigger anything +COLOR_UTF8=cvar.COLOR_ADDR+10 # old value of COLOR_UTF8; shouldn't trigger anything add_long_cmt=add_extra_cmt describe=add_extra_line # diff --git a/pywraps/py_lumina.hpp b/pywraps/py_lumina.hpp index 7efcc7b..7d82160 100644 --- a/pywraps/py_lumina.hpp +++ b/pywraps/py_lumina.hpp @@ -2,13 +2,13 @@ // //------------------------------------------------------------------------- -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); } 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 @@ +// + +/* +# +def find_binary(arg1, arg2, arg3, arg4, arg5): + """ + Deprecated. Please use ida_bytes.bin_search() instead. + """ + pass +# +*/ + +// diff --git a/release_api_contents2.txt b/release_api_contents2.txt index d2793e4..a375a7d 100644 --- a/release_api_contents2.txt +++ b/release_api_contents2.txt @@ -55,6 +55,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,6 +89,12 @@ '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_enum_bf_changed', 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', @@ -101,6 +108,7 @@ '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 +166,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', @@ -208,6 +218,8 @@ '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', @@ -285,17 +297,22 @@ '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_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 +326,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 +352,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', @@ -358,6 +376,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', @@ -373,6 +393,8 @@ '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', @@ -594,6 +616,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__', @@ -861,6 +889,7 @@ 'auto_is_ok', 'auto_make_code', 'auto_make_proc', + 'auto_make_step', 'auto_mark', 'auto_mark_range', 'auto_recreate_insn', @@ -871,12 +900,6 @@ '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', 'bit_bound_t_nbits_get', @@ -897,6 +920,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__', @@ -1259,6 +1306,7 @@ 'call_stack_t_size', 'call_stack_t_swap', 'call_stack_t_truncate', + 'callregs_t_by_slots', 'callregs_t_fpregs_get', 'callregs_t_fpregs_set', 'callregs_t_gpregs_get', @@ -1277,6 +1325,7 @@ 'can_define_item', 'can_exc_continue', 'cancel_exec_request', + 'cancel_thread_exec_requests', 'carg_t___eq__', 'carg_t___ge__', 'carg_t___gt__', @@ -1434,10 +1483,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 +1638,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 +1703,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 +1815,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', @@ -1926,6 +1982,7 @@ 'cloop_t_body_set', 'cloop_t_cleanup', 'close_chooser', + 'close_hexrays_waitbox', 'close_linput', 'close_pseudocode', 'close_widget', @@ -1947,6 +2004,7 @@ 'clr_lzero', 'clr_lzero0', 'clr_lzero1', + 'clr_module_data', 'clr_node_info', 'clr_noret', 'clr_notcode', @@ -1991,6 +2049,7 @@ 'codegen_t_mb_set', 'codegen_t_mba_get', 'codegen_t_mba_set', + 'codegen_t_microgen_completed', 'collect_stack_trace', 'compact_til', 'compare_tinfo', @@ -2019,6 +2078,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', @@ -2197,6 +2257,7 @@ '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_set', 'custom_viewer_jump', 'cwhile_t___eq__', 'cwhile_t___ge__', @@ -2380,6 +2441,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 +2449,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', @@ -2427,6 +2489,7 @@ 'delete_chain_t', 'delete_chain_visitor_t', 'delete_channel_redir_t', + 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', 'delete_cif_t', 'delete_cinsn_t', @@ -2456,6 +2519,12 @@ 'delete_debug_event_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,6 +2546,7 @@ 'delete_excinfo_t', 'delete_excvec_t', 'delete_extra_cmts', + 'delete_file_enumerator_t', 'delete_fixup_data_t', 'delete_fixup_info_t', 'delete_fnum_array', @@ -2517,10 +2587,15 @@ '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_lines_rendering_input_t', + 'delete_lines_rendering_output_t', 'delete_loader_input_t', 'delete_loader_t', 'delete_lochist_entry_t', @@ -2538,9 +2613,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,15 +2678,16 @@ '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_array', 'delete_regarg_t', 'delete_reginfovec_t', 'delete_register_info_t', @@ -2618,7 +2695,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', @@ -2632,6 +2708,8 @@ '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', @@ -2646,7 +2724,6 @@ 'delete_sizevec_t', 'delete_snapshot_t', 'delete_sreg_range_t', - 'delete_stkpnt_array', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -2663,12 +2740,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', @@ -2680,6 +2760,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', @@ -2701,6 +2782,7 @@ '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', @@ -2801,17 +2883,21 @@ 'disown_UI_Hooks', 'disown_View_Hooks', 'disown_aloc_visitor_t', + 'disown_argtinfo_helper_t', 'disown_cfunc_parentee_t', 'disown_chain_visitor_t', - 'disown_codegen_t', + 'disown_choose_ioport_parser_t', 'disown_const_aloc_visitor_t', 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', 'disown_enum_member_visitor_t', + 'disown_file_enumerator_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', @@ -2826,6 +2912,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', @@ -2838,6 +2925,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__', @@ -3031,6 +3148,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', @@ -3136,6 +3254,7 @@ 'f_is_word', 'f_is_yword', 'file2base', + 'file_enumerator_t_visit_file', 'find_binary', 'find_bpt', 'find_byte', @@ -3157,6 +3276,7 @@ 'find_not_func', 'find_notype', 'find_plugin', + 'find_reg_access', 'find_regvar', 'find_regvar__SWIG_0', 'find_regvar__SWIG_1', @@ -3290,6 +3410,7 @@ '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__', @@ -3441,6 +3562,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', @@ -3471,6 +3593,7 @@ 'get_archive_path', 'get_arg_addrs', 'get_array_parameters', + 'get_ash', 'get_asm_inc_file', 'get_auto_display', 'get_auto_state', @@ -3721,6 +3844,7 @@ 'get_member_type', 'get_merror_desc', 'get_min_spd_ea', + 'get_module_data', 'get_module_info', 'get_mreg_name', 'get_name', @@ -3781,6 +3905,7 @@ 'get_output_cursor', 'get_output_selected_text', 'get_path', + 'get_ph', 'get_place_class', 'get_place_class_id', 'get_place_class_template', @@ -3858,6 +3983,7 @@ 'get_str_term2', 'get_str_type', 'get_str_type_code', + 'get_str_type_prefix_length', 'get_strlist_item', 'get_strlist_options', 'get_strlist_qty', @@ -3880,6 +4006,7 @@ 'get_struc_size__SWIG_1', 'get_switch_info', 'get_switch_parent', + 'get_synced_group', 'get_tab_size', 'get_temp_regs', 'get_tev_ea', @@ -3898,6 +4025,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', @@ -4000,6 +4128,7 @@ 'has_immd', 'has_insn_feature', 'has_lname', + 'has_mcode_seloff', 'has_name', 'has_regvar', 'has_ti', @@ -4638,7 +4767,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', @@ -4706,7 +4834,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', @@ -4717,6 +4849,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', @@ -4728,6 +4862,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', @@ -4805,6 +4940,7 @@ 'invalidate_dbg_state', 'invalidate_dbgmem_config', 'invalidate_dbgmem_contents', + 'ioports_fallback_t_handle', 'is__bnot0', 'is__bnot1', 'is__invsign0', @@ -5063,6 +5199,9 @@ 'is_yword', 'is_zstroff', 'is_zword', + 'iterator___eq__', + 'iterator___ne__', + 'iterator___ref__', 'ivl_t___eq__', 'ivl_t___ge__', 'ivl_t___gt__', @@ -5118,13 +5257,78 @@ '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', + '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', @@ -5159,8 +5363,6 @@ 'loader_t_flags_set', 'loader_t_version_get', 'loader_t_version_set', - 'lochist_entry_t___eq__', - 'lochist_entry_t___ne__', 'lochist_entry_t_acquire_place', 'lochist_entry_t_is_valid', 'lochist_entry_t_place', @@ -5378,6 +5580,7 @@ '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', @@ -5409,6 +5612,7 @@ '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', @@ -5431,6 +5635,7 @@ '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', @@ -5459,6 +5664,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', @@ -5496,195 +5704,200 @@ '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_combine_blocks', + 'mba_t_common_stkvars_stkargs', + 'mba_t_consumed_argregs_get', + 'mba_t_consumed_argregs_set', + 'mba_t_copy_block', + 'mba_t_deleted_pairs', + '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_over_chains', + 'mba_t_has_passregs', + 'mba_t_idaloc2vd', + 'mba_t_idb_node_get', + 'mba_t_idb_node_set', + '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_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_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', @@ -6279,6 +6492,7 @@ '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', @@ -6315,6 +6529,7 @@ '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', @@ -6597,6 +6812,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', @@ -6610,9 +6826,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', @@ -6681,6 +6897,7 @@ 'new_chain_t__SWIG_2', 'new_chain_visitor_t', 'new_channel_redir_t', + 'new_choose_ioport_parser_t', 'new_chooser_item_attrs_t', 'new_cif_t', 'new_cif_t__SWIG_0', @@ -6705,7 +6922,6 @@ 'new_cloop_t__SWIG_1', 'new_cloop_t__SWIG_2', 'new_cnumber_t', - 'new_codegen_t', 'new_compiler_info_t', 'new_const_aloc_visitor_t', 'new_creturn_t', @@ -6733,6 +6949,12 @@ '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', @@ -6767,6 +6989,7 @@ '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', @@ -6833,12 +7056,21 @@ '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_lines_rendering_input_t', + 'new_lines_rendering_output_t', 'new_loader_input_t', 'new_loader_t', 'new_lochist_entry_t', @@ -6865,6 +7097,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', @@ -6914,7 +7147,6 @@ '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', @@ -6973,7 +7205,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', @@ -6990,8 +7221,12 @@ '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_array', 'new_regarg_t', 'new_reginfovec_t', 'new_reginfovec_t__SWIG_0', @@ -7005,7 +7240,6 @@ 'new_regval_t', 'new_regval_t__SWIG_0', 'new_regval_t__SWIG_1', - 'new_regvar_array', 'new_regvar_t', 'new_renderer_info_pos_t', 'new_renderer_info_t', @@ -7024,6 +7258,12 @@ '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', @@ -7048,7 +7288,6 @@ 'new_sizevec_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', - 'new_stkpnt_array', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', @@ -7068,6 +7307,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', @@ -7078,6 +7321,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', @@ -7096,6 +7342,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', @@ -7131,6 +7380,7 @@ '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', @@ -7259,6 +7509,7 @@ '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', @@ -7475,6 +7726,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', @@ -7499,6 +7752,10 @@ '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_set_bin_state', @@ -7537,6 +7794,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', @@ -7554,6 +7812,7 @@ 'place_t_beginning', 'place_t_clone', 'place_t_compare', + 'place_t_compare2', 'place_t_copyfrom', 'place_t_deserialize', 'place_t_ending', @@ -7684,6 +7943,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', @@ -7909,6 +8169,7 @@ 'qstrvec_t_set', 'qstrvec_t_size', 'qswap', + 'qthread_equal', 'quote_cmdline_arg', 'qvector_carg_t___eq__', 'qvector_carg_t___getitem__', @@ -8111,11 +8372,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__', @@ -8216,6 +8472,7 @@ 'rangevec_base_t_swap', 'rangevec_base_t_truncate', 'read_dbg_memory', + 'read_ioports2', 'read_range_selection', 'read_regargs', 'read_selection', @@ -8277,6 +8534,57 @@ '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', @@ -8309,11 +8617,6 @@ 'reg_write_bool', 'reg_write_int', 'reg_write_string', - 'regarg_array___getitem__', - 'regarg_array___len__', - 'regarg_array___setitem__', - 'regarg_array_count_get', - 'regarg_array_data_get', 'regarg_t_name_get', 'regarg_t_name_set', 'regarg_t_reg_get', @@ -8363,6 +8666,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,11 +8745,6 @@ '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', @@ -8545,6 +8844,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 +8880,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 +8945,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', @@ -8874,6 +9254,7 @@ 'set_member_name', 'set_member_tinfo', 'set_member_type', + 'set_module_data', 'set_name', 'set_nav_colorizer', 'set_node_info', @@ -8932,6 +9313,7 @@ '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', @@ -9048,11 +9430,6 @@ 'step_into', 'step_over', 'step_until_ret', - 'stkpnt_array___getitem__', - 'stkpnt_array___len__', - 'stkpnt_array___setitem__', - 'stkpnt_array_count_get', - 'stkpnt_array_data_get', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -9116,11 +9493,11 @@ '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_has_union', 'struc_t_id_get', 'struc_t_id_set', @@ -9255,7 +9632,44 @@ '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 +9759,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', @@ -9661,8 +10107,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', @@ -9734,7 +10188,9 @@ 'uchar_array_frompointer', 'udc_filter_t_apply', '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', @@ -10033,6 +10489,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', @@ -10134,6 +10591,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', @@ -10437,7 +10896,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_api_contents3.txt b/release_api_contents3.txt index 9ed84bc..ff55184 100644 --- a/release_api_contents3.txt +++ b/release_api_contents3.txt @@ -55,6 +55,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,6 +89,12 @@ '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_enum_bf_changed', 'IDB_Hooks_enum_cmt_changed', 'IDB_Hooks_enum_created', @@ -101,6 +108,7 @@ '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 +166,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', @@ -208,6 +218,8 @@ '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', @@ -285,17 +297,22 @@ '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_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 +326,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 +352,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', @@ -358,6 +376,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', @@ -373,6 +393,8 @@ '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', @@ -594,6 +616,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__', @@ -861,6 +889,7 @@ 'auto_is_ok', 'auto_make_code', 'auto_make_proc', + 'auto_make_step', 'auto_mark', 'auto_mark_range', 'auto_recreate_insn', @@ -871,12 +900,6 @@ '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', 'bit_bound_t_nbits_get', @@ -897,6 +920,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__', @@ -1259,6 +1306,7 @@ 'call_stack_t_size', 'call_stack_t_swap', 'call_stack_t_truncate', + 'callregs_t_by_slots', 'callregs_t_fpregs_get', 'callregs_t_fpregs_set', 'callregs_t_gpregs_get', @@ -1277,6 +1325,7 @@ 'can_define_item', 'can_exc_continue', 'cancel_exec_request', + 'cancel_thread_exec_requests', 'carg_t___eq__', 'carg_t___ge__', 'carg_t___gt__', @@ -1434,10 +1483,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 +1638,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 +1703,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 +1815,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', @@ -1926,6 +1982,7 @@ 'cloop_t_body_set', 'cloop_t_cleanup', 'close_chooser', + 'close_hexrays_waitbox', 'close_linput', 'close_pseudocode', 'close_widget', @@ -1947,6 +2004,7 @@ 'clr_lzero', 'clr_lzero0', 'clr_lzero1', + 'clr_module_data', 'clr_node_info', 'clr_noret', 'clr_notcode', @@ -1991,6 +2049,7 @@ 'codegen_t_mb_set', 'codegen_t_mba_get', 'codegen_t_mba_set', + 'codegen_t_microgen_completed', 'collect_stack_trace', 'compact_til', 'compare_tinfo', @@ -2019,6 +2078,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', @@ -2197,6 +2257,7 @@ '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_set', 'custom_viewer_jump', 'cwhile_t___eq__', 'cwhile_t___ge__', @@ -2380,6 +2441,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 +2449,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', @@ -2427,6 +2489,7 @@ 'delete_chain_t', 'delete_chain_visitor_t', 'delete_channel_redir_t', + 'delete_choose_ioport_parser_t', 'delete_chooser_item_attrs_t', 'delete_cif_t', 'delete_cinsn_t', @@ -2456,6 +2519,12 @@ 'delete_debug_event_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,6 +2546,7 @@ 'delete_excinfo_t', 'delete_excvec_t', 'delete_extra_cmts', + 'delete_file_enumerator_t', 'delete_fixup_data_t', 'delete_fixup_info_t', 'delete_fnum_array', @@ -2517,10 +2587,15 @@ '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_lines_rendering_input_t', + 'delete_lines_rendering_output_t', 'delete_loader_input_t', 'delete_loader_t', 'delete_lochist_entry_t', @@ -2538,9 +2613,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,15 +2678,16 @@ '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_array', 'delete_regarg_t', 'delete_reginfovec_t', 'delete_register_info_t', @@ -2618,7 +2695,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', @@ -2632,6 +2708,8 @@ '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', @@ -2646,7 +2724,6 @@ 'delete_sizevec_t', 'delete_snapshot_t', 'delete_sreg_range_t', - 'delete_stkpnt_array', 'delete_stkpnt_t', 'delete_stkpnts_t', 'delete_stkvar_ref_t', @@ -2663,12 +2740,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', @@ -2680,6 +2760,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', @@ -2701,6 +2782,7 @@ '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', @@ -2801,17 +2883,21 @@ 'disown_UI_Hooks', 'disown_View_Hooks', 'disown_aloc_visitor_t', + 'disown_argtinfo_helper_t', 'disown_cfunc_parentee_t', 'disown_chain_visitor_t', - 'disown_codegen_t', + 'disown_choose_ioport_parser_t', 'disown_const_aloc_visitor_t', 'disown_ctree_parentee_t', 'disown_ctree_visitor_t', 'disown_enum_member_visitor_t', + 'disown_file_enumerator_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', @@ -2826,6 +2912,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', @@ -2838,6 +2925,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__', @@ -3031,6 +3148,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', @@ -3136,6 +3254,7 @@ 'f_is_word', 'f_is_yword', 'file2base', + 'file_enumerator_t_visit_file', 'find_binary', 'find_bpt', 'find_byte', @@ -3157,6 +3276,7 @@ 'find_not_func', 'find_notype', 'find_plugin', + 'find_reg_access', 'find_regvar', 'find_regvar__SWIG_0', 'find_regvar__SWIG_1', @@ -3290,6 +3410,7 @@ '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__', @@ -3441,6 +3562,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', @@ -3471,6 +3593,7 @@ 'get_archive_path', 'get_arg_addrs', 'get_array_parameters', + 'get_ash', 'get_asm_inc_file', 'get_auto_display', 'get_auto_state', @@ -3721,6 +3844,7 @@ 'get_member_type', 'get_merror_desc', 'get_min_spd_ea', + 'get_module_data', 'get_module_info', 'get_mreg_name', 'get_name', @@ -3781,6 +3905,7 @@ 'get_output_cursor', 'get_output_selected_text', 'get_path', + 'get_ph', 'get_place_class', 'get_place_class_id', 'get_place_class_template', @@ -3858,6 +3983,7 @@ 'get_str_term2', 'get_str_type', 'get_str_type_code', + 'get_str_type_prefix_length', 'get_strlist_item', 'get_strlist_options', 'get_strlist_qty', @@ -3880,6 +4006,7 @@ 'get_struc_size__SWIG_1', 'get_switch_info', 'get_switch_parent', + 'get_synced_group', 'get_tab_size', 'get_temp_regs', 'get_tev_ea', @@ -3898,6 +4025,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', @@ -4000,6 +4128,7 @@ 'has_immd', 'has_insn_feature', 'has_lname', + 'has_mcode_seloff', 'has_name', 'has_regvar', 'has_ti', @@ -4638,7 +4767,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', @@ -4706,7 +4834,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', @@ -4717,6 +4849,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', @@ -4728,6 +4862,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', @@ -4805,6 +4940,7 @@ 'invalidate_dbg_state', 'invalidate_dbgmem_config', 'invalidate_dbgmem_contents', + 'ioports_fallback_t_handle', 'is__bnot0', 'is__bnot1', 'is__invsign0', @@ -5063,6 +5199,9 @@ 'is_yword', 'is_zstroff', 'is_zword', + 'iterator___eq__', + 'iterator___ne__', + 'iterator___ref__', 'ivl_t___eq__', 'ivl_t___ge__', 'ivl_t___gt__', @@ -5118,13 +5257,78 @@ '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', + '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', @@ -5159,8 +5363,6 @@ 'loader_t_flags_set', 'loader_t_version_get', 'loader_t_version_set', - 'lochist_entry_t___eq__', - 'lochist_entry_t___ne__', 'lochist_entry_t_acquire_place', 'lochist_entry_t_is_valid', 'lochist_entry_t_place', @@ -5378,6 +5580,7 @@ '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', @@ -5409,6 +5612,7 @@ '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', @@ -5431,6 +5635,7 @@ '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', @@ -5459,6 +5664,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', @@ -5496,195 +5704,200 @@ '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_combine_blocks', + 'mba_t_common_stkvars_stkargs', + 'mba_t_consumed_argregs_get', + 'mba_t_consumed_argregs_set', + 'mba_t_copy_block', + 'mba_t_deleted_pairs', + '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_over_chains', + 'mba_t_has_passregs', + 'mba_t_idaloc2vd', + 'mba_t_idb_node_get', + 'mba_t_idb_node_set', + '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_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_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', @@ -6279,6 +6492,7 @@ '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', @@ -6315,6 +6529,7 @@ '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', @@ -6601,6 +6816,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', @@ -6614,9 +6830,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', @@ -6685,6 +6901,7 @@ 'new_chain_t__SWIG_2', 'new_chain_visitor_t', 'new_channel_redir_t', + 'new_choose_ioport_parser_t', 'new_chooser_item_attrs_t', 'new_cif_t', 'new_cif_t__SWIG_0', @@ -6709,7 +6926,6 @@ 'new_cloop_t__SWIG_1', 'new_cloop_t__SWIG_2', 'new_cnumber_t', - 'new_codegen_t', 'new_compiler_info_t', 'new_const_aloc_visitor_t', 'new_creturn_t', @@ -6737,6 +6953,12 @@ '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', @@ -6771,6 +6993,7 @@ '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', @@ -6837,12 +7060,21 @@ '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_lines_rendering_input_t', + 'new_lines_rendering_output_t', 'new_loader_input_t', 'new_loader_t', 'new_lochist_entry_t', @@ -6869,6 +7101,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', @@ -6918,7 +7151,6 @@ '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', @@ -6977,7 +7209,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', @@ -6994,8 +7225,12 @@ '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_array', 'new_regarg_t', 'new_reginfovec_t', 'new_reginfovec_t__SWIG_0', @@ -7009,7 +7244,6 @@ 'new_regval_t', 'new_regval_t__SWIG_0', 'new_regval_t__SWIG_1', - 'new_regvar_array', 'new_regvar_t', 'new_renderer_info_pos_t', 'new_renderer_info_t', @@ -7028,6 +7262,12 @@ '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', @@ -7052,7 +7292,6 @@ 'new_sizevec_t__SWIG_1', 'new_snapshot_t', 'new_sreg_range_t', - 'new_stkpnt_array', 'new_stkpnt_t', 'new_stkpnts_t', 'new_stkvar_ref_t', @@ -7072,6 +7311,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', @@ -7082,6 +7325,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', @@ -7100,6 +7346,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', @@ -7135,6 +7384,7 @@ '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', @@ -7263,6 +7513,7 @@ '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', @@ -7479,6 +7730,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', @@ -7503,6 +7756,10 @@ '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_set_bin_state', @@ -7541,6 +7798,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', @@ -7558,6 +7816,7 @@ 'place_t_beginning', 'place_t_clone', 'place_t_compare', + 'place_t_compare2', 'place_t_copyfrom', 'place_t_deserialize', 'place_t_ending', @@ -7688,6 +7947,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', @@ -7913,6 +8173,7 @@ 'qstrvec_t_set', 'qstrvec_t_size', 'qswap', + 'qthread_equal', 'quote_cmdline_arg', 'qvector_carg_t___eq__', 'qvector_carg_t___getitem__', @@ -8115,11 +8376,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__', @@ -8220,6 +8476,7 @@ 'rangevec_base_t_swap', 'rangevec_base_t_truncate', 'read_dbg_memory', + 'read_ioports2', 'read_range_selection', 'read_regargs', 'read_selection', @@ -8281,6 +8538,57 @@ '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', @@ -8313,11 +8621,6 @@ 'reg_write_bool', 'reg_write_int', 'reg_write_string', - 'regarg_array___getitem__', - 'regarg_array___len__', - 'regarg_array___setitem__', - 'regarg_array_count_get', - 'regarg_array_data_get', 'regarg_t_name_get', 'regarg_t_name_set', 'regarg_t_reg_get', @@ -8367,6 +8670,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', @@ -8445,11 +8749,6 @@ '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', @@ -8549,6 +8848,7 @@ 'restore_user_defined_calls', 'restore_user_iflags', 'restore_user_labels', + 'restore_user_labels2', 'restore_user_lvar_settings', 'restore_user_numforms', 'restore_user_unions', @@ -8584,6 +8884,7 @@ 'save_user_defined_calls', 'save_user_iflags', 'save_user_labels', + 'save_user_labels2', 'save_user_lvar_settings', 'save_user_numforms', 'save_user_unions', @@ -8648,6 +8949,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', @@ -8878,6 +9258,7 @@ 'set_member_name', 'set_member_tinfo', 'set_member_type', + 'set_module_data', 'set_name', 'set_nav_colorizer', 'set_node_info', @@ -8936,6 +9317,7 @@ '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', @@ -9052,11 +9434,6 @@ 'step_into', 'step_over', 'step_until_ret', - 'stkpnt_array___getitem__', - 'stkpnt_array___len__', - 'stkpnt_array___setitem__', - 'stkpnt_array_count_get', - 'stkpnt_array_data_get', 'stkpnt_t___eq__', 'stkpnt_t___ge__', 'stkpnt_t___gt__', @@ -9120,11 +9497,11 @@ '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_has_union', 'struc_t_id_get', 'struc_t_id_set', @@ -9259,7 +9636,44 @@ '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', @@ -9349,6 +9763,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', @@ -9665,8 +10111,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', @@ -9738,7 +10192,9 @@ 'uchar_array_frompointer', 'udc_filter_t_apply', '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', @@ -10037,6 +10493,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', @@ -10138,6 +10595,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', @@ -10441,7 +10900,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 index 95a4663..5296665 100644 --- a/release_pydoc_injections2.txt +++ b/release_pydoc_injections2.txt @@ -1,41 +1,34 @@ 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) + auto_apply_tail(tail_ea, parent_ea) + @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) + auto_apply_type(caller, callee) + @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) + auto_cancel(ea1, ea2) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) Help on class auto_display_t in module ida_auto: @@ -79,154 +72,129 @@ class auto_display_t(__builtin__.object) 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) + auto_get(type, lowEA, highEA) -> 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) - 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) + auto_make_code(ea) + @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. + auto_make_proc(ea) + @param ea (C++: ea_t) + +Help on function auto_make_step in module ida_auto: + +auto_make_step(*args) + Analyze one address in the specified range and return true. - @param ea (C++: ea_t) + auto_make_step(ea1, ea2) -> bool + @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) - auto_mark(ea, type) - - Put single address into a queue. Queues keep addresses sorted. - - @param ea (C++: ea_t) - @param type (C++: atype_t) + auto_mark(ea, type) + @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) + auto_mark_range(start, end, type) + @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 + auto_recreate_insn(ea) -> int + @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) + auto_unmark(start, end, type) + @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) + auto_wait_range(ea1, ea2) -> ssize_t + @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 + enable_auto(enable) -> bool + @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 *) + get_auto_display(auto_display) -> bool + @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). @@ -234,150 +202,266 @@ get_auto_state(*args) 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 + peek_auto_queue(low_ea, type) -> ea_t + @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) + plan_and_wait(ea1, ea2, final_pass=True) -> int + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + @param final_pass (C++: bool) + @retval: 1 - ok + @retval: 0 - Ctrl-Break was pressed Help on function plan_ea in module ida_auto: plan_ea(*args) - plan_ea(ea) - - Plan to perform reanalysis. - - @param ea (C++: ea_t) + plan_ea(ea) + @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) + plan_range(sEA, eEA) + @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) + reanalyze_callers(ea, noret) + @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) + revert_ida_decisions(ea1, ea2) + @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 + set_auto_state(new_state) -> atype_t + @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 + set_ida_state(st) -> idastate_t + @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) + show_addr(ea) + @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) + show_auto(ea, type=AU_NONE) + @param ea: linear address being analyzed (C++: ea_t) + @param type: autoanalysis type (see Autoanalysis queues ) (C++: + atype_t) + +Help on class bitrange_t in module ida_bitrange: + +class bitrange_t(__builtin__.object) + | Proxy of C++ bitrange_t class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: bitrange_t const & + | + | __ge__(self, *args) + | __ge__(self, r) -> bool + | r: bitrange_t const & + | + | __gt__(self, *args) + | __gt__(self, r) -> bool + | r: bitrange_t const & + | + | __init__(self, *args) + | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t + | bit_ofs: uint16 + | size_in_bits: uint16 + | + | __le__(self, *args) + | __le__(self, r) -> bool + | r: bitrange_t const & + | + | __lt__(self, *args) + | __lt__(self, r) -> bool + | r: bitrange_t const & + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: bitrange_t const & + | + | __repr__ = _swig_repr(self) + | + | __str__(self, *args) + | __str__(self) -> qstring + | + | apply_mask(self, *args) + | Apply mask to a bitrange + | + | apply_mask(self, subrange) -> bool + | @param subrange: 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] (C++: const bitrange_t &) + | @return: success + | + | bitoff(self, *args) + | Get offset of 1st bit. + | + | bitsize(self, *args) + | Get size of the value in bits. + | + | bytesize(self, *args) + | Size of the value in bytes. + | + | compare(self, *args) + | compare(self, r) -> int + | r: bitrange_t const & + | + | create_union(self, *args) + | Create union of 2 ranges including the hole between them. + | + | create_union(self, r) + | @param r (C++: const bitrange_t &) + | + | empty(self, *args) + | Is the bitrange empty? + | + | extract(self, *args) + | extract(self, src, is_mf) -> bool + | src: void const * + | is_mf: bool + | + | has_common(self, *args) + | Does have common bits with another bitrange? + | + | has_common(self, r) -> bool + | @param r (C++: const bitrange_t &) + | + | init(self, *args) + | Initialize offset and size to given values. + | + | init(self, bit_ofs, size_in_bits) + | @param bit_ofs (C++: uint16) + | @param size_in_bits (C++: uint16) + | + | inject(self, *args) + | inject(self, dst, src, is_mf) -> bool + | dst: void * + | src: bytevec_t const & + | is_mf: bool + | + | intersect(self, *args) + | Intersect two ranges. + | + | intersect(self, r) + | @param r (C++: const bitrange_t &) + | + | mask64(self, *args) + | Convert to mask of 64 bits. + | + | reset(self, *args) + | Make the bitrange empty. + | + | shift_down(self, *args) + | Shift range down (left) + | + | shift_down(self, cnt) + | @param cnt (C++: uint) + | + | shift_up(self, *args) + | Shift range up (right) + | + | shift_up(self, cnt) + | @param cnt (C++: uint) + | + | sub(self, *args) + | Subtract a bitrange. + | + | sub(self, r) -> bool + | @param r (C++: const bitrange_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_bitrange_t(self) Help on function __walk_types_and_formats in module ida_bytes: @@ -387,132 +471,113 @@ __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) + add_byte(ea, value) + @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) + add_dword(ea, value) + @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 + add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + @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 + add_mapping(_from, to, size) -> bool + @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) + add_qword(ea, value) + @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) + add_word(ea, value) + @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 + append_cmt(ea, str, rptble) -> bool + @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) + attach_custom_data_format(dtid, dfid) -> bool + @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) + @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) - bin_flag() -> flags_t - - Get number flag of the base, regardless of current processor - better to use 'num_flag()' @@ -520,87 +585,75 @@ Help on function bin_search in module ida_bytes: bin_search(*args) bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + start_ea: ea_t + end_ea: ea_t + image: bytevec_t const & + imask: bytevec_t const & + step: int + flags: int 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) + bytesize(ea) -> int + @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) + calc_def_align(ea, mina, maxa) -> int + @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 + @param f (C++: flags_t) + @param force (C++: bool) 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) + calc_max_align(endea) -> int + @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'. + calc_max_item_end(ea, how=15) -> ea_t + @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) + calc_min_align(length) -> int + @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 @@ -608,353 +661,279 @@ can_define_item(*args) 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 + can_define_item(ea, length, flags) -> bool + @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 + change_storage_type(start_ea, end_ea, stt) -> error_t + @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. + chunk_size(ea) -> asize_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) - 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. + chunk_start(ea) -> ea_t + @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) + clr_lzero(ea, n) -> bool + @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 + clr_op_type(ea, n) -> bool + @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' + '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) + create_16bit_data(ea, length) -> bool + @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) + create_32bit_data(ea, length) -> bool + @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) + create_align(ea, length, alignment) -> bool + @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) + create_byte(ea, length, force=False) -> 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) - 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) + create_custdata(ea, length, dtid, fid, force=False) -> 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) - 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 + create_data(ea, dataflag, size, tid) -> bool + @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) + create_double(ea, length, force=False) -> 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) - create_dword(ea, length, force=False) -> bool - - Convert to dword. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + create_dword(ea, length, force=False) -> 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) - create_float(ea, length, force=False) -> bool - - Convert to float. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + create_float(ea, length, force=False) -> 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) - 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) + create_oword(ea, length, force=False) -> 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) - 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) + create_packed_real(ea, length, force=False) -> 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) - create_qword(ea, length, force=False) -> bool - - Convert to quadword. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + create_qword(ea, length, force=False) -> 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) - 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 + create_strlit(start, len, strtype) -> bool + @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) + create_struct(ea, length, tid, force=False) -> 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) - create_tbyte(ea, length, force=False) -> bool - - Convert to tbyte. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + create_tbyte(ea, length, force=False) -> 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) - create_word(ea, length, force=False) -> bool - - Convert to word. - - @param ea (C++: ea_t) - @param length (C++: asize_t) - @param force (C++: bool) + create_word(ea, length, force=False) -> 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) - 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) + create_yword(ea, length, force=False) -> 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) - 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) + create_zword(ea, length, force=False) -> 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) - 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: @@ -968,6 +947,13 @@ class data_format_t(__builtin__.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 + | self: PyObject * + | name: char const * + | value_size: asize_t + | menu_name: char const * + | props: int + | hotkey: char const * + | text_width: int32 | | __repr__ = _swig_repr(self) | @@ -975,7 +961,7 @@ class data_format_t(__builtin__.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) - | is_present_in_menus(self) -> bool + | Should this format be shown in UI menus | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1027,6 +1013,13 @@ class data_type_t(__builtin__.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 + | self: PyObject * + | name: char const * + | value_size: asize_t + | menu_name: char const * + | hotkey: char const * + | asm_keyword: char const * + | props: int | | __repr__ = _swig_repr(self) | @@ -1034,7 +1027,7 @@ class data_type_t(__builtin__.object) | __get_id(self) -> int | | is_present_in_menus(self, *args) - | is_present_in_menus(self) -> bool + | Should this type be shown in UI menus | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1078,558 +1071,470 @@ class data_type_t(__builtin__.object) 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 + del_hidden_range(ea) -> bool + @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 + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + @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) + del_mapping(ea) + @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) + del_value(ea) + @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) + detach_custom_data_format(dtid, dfid) -> bool + @param dtid: data type id to detach data format from (C++: int) + @param dfid: data format id to detach (C++: int) + @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) - 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 + disable_flags(start_ea, end_ea) -> error_t + @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 + enable_flags(start_ea, end_ea, stt) -> error_t + @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) + equal_bytes(ea, image, mask, len, sense_case) -> bool + @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 == nullptr, 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) + @retval: 1 - equal + @retval: 0 - not equal Help on function f_has_cmt in module ida_bytes: f_has_cmt(*args) f_has_cmt(f, arg2) -> bool + @param f (C++: flags_t) + arg2: void * 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) + f_has_dummy_name(f, arg2) -> bool + @param f (C++: flags_t) + arg2: void * Help on function f_has_extra_cmts in module ida_bytes: f_has_extra_cmts(*args) f_has_extra_cmts(f, arg2) -> bool + @param f (C++: flags_t) + arg2: void * 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) + f_has_name(f, arg2) -> bool + @param f (C++: flags_t) + arg2: void * 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) + f_has_user_name(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_has_xref(f, arg2) -> bool + @param f (C++: flags_t) + arg2: void * 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) + f_is_align(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_byte(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_code(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_custom(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_data(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_double(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_dword(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_float(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_head(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_not_tail(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_oword(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_pack_real(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_qword(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_strlit(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_struct(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_tail(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_tbyte(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_word(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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) + f_is_yword(F, arg2) -> bool + @param F (C++: flags_t) + arg2: void * 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 + find_byte(sEA, size, value, bin_search_flags) -> ea_t + @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 + find_byter(sEA, size, value, bin_search_flags) -> ea_t + @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 + find_custom_data_format(name) -> int + @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 + find_custom_data_type(name) -> int + @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 + free_chunk(bottom, size, step) -> ea_t + @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() + get_16bit(ea) -> uint32 + @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); + get_32bit(ea) -> uint32 + @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); + get_64bit(ea) -> uint64 + @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 * + @param ea (C++: ea_t *) + @param v (C++: uint32 *) + @param nbit (C++: int *) 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) + get_byte(ea) -> uchar + @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 @@ -1639,8 +1544,6 @@ 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 @@ -1651,380 +1554,305 @@ get_bytes_and_mask(*args) 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 + get_cmt(ea, rptble) -> str + @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 + get_custom_data_format(dfid) -> data_format_t + @param dfid: data format id (C++: int) + @return: data format definition or nullptr 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 + get_custom_data_formats(out, dtid) -> int + @param out: buffer for the output. may be nullptr (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 + get_custom_data_type(dtid) -> data_type_t + @param dtid: data type id (C++: int) + @return: data type definition or nullptr 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 + get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int + @param out: buffer for the output. may be nullptr (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... + get_data_elsize(ea, F, ti=None) -> asize_t + @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 nullptr). If + specified as nullptr, 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 + get_data_value(v, ea, size) -> bool + @param v: pointer to the result. may be nullptr (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) + get_db_byte(ea) -> uchar + @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) + get_dword(ea) -> uint32 + @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 + get_enum_id(ea, n) -> enum_t + @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) + get_flags(ea) -> flags_t + @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) + get_flags_by_size(size) -> flags_t + @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) + get_flags_ex(ea, how) -> flags_t + @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 + get_forced_operand(ea, n) -> str + @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 *) + get_full_data_elsize(ea, F, ti=None) -> asize_t + @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 + get_full_flags(ea) -> flags_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) - 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) + get_hidden_range(ea) -> hidden_range_t + @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) + get_hidden_range_num(ea) -> int + @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) + get_item_end(ea) -> ea_t + @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) + get_item_flag(_from, n, ea, appzero) -> flags_t + @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) + get_item_head(ea) -> ea_t + @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) + get_item_size(ea) -> asize_t + @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 + get_manual_insn(ea) -> str + @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 + get_mapping(n) -> bool + @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) + 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. + 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) + @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 + get_next_hidden_range(ea) -> hidden_range_t + @param ea: any address in the program (C++: ea_t) + @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) - 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: @@ -2038,148 +1866,124 @@ get_octet(*args) '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 *) + get_octet(ea, v, nbit) -> PyObject * + @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 + get_opinfo(buf, ea, n, flags) -> opinfo_t + @param buf: buffer to receive the result. may not be nullptr (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: nullptr 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) + get_optype_flags0(F) -> flags_t + @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) + get_optype_flags1(F) -> flags_t + @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) + get_original_byte(ea) -> uint64 + @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) + get_original_dword(ea) -> uint64 + @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) + get_original_qword(ea) -> uint64 + @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) + get_original_word(ea) -> uint64 + @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 + get_predef_insn_cmt(ins) -> str + @param ins: current instruction information - an ida_ua.insn_t, or an + address (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 + get_prev_hidden_range(ea) -> hidden_range_t + @param ea: any address in the program (C++: ea_t) + @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) - 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) + get_qword(ea) -> uint64 + @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 + get_radix(F, n) -> int + @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. @@ -2199,214 +2003,167 @@ get_strlit_contents(*args) 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 + get_stroff_path(path, delta, ea, n) -> int + @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) + get_wide_byte(ea) -> uint64 + @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) + get_wide_dword(ea) -> uint64 + @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) + get_wide_word(ea) -> uint64 + @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) + get_word(ea) -> ushort + @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 + get_zero_ranges(zranges, range) -> bool + @param zranges: pointer to the return value. cannot be nullptr (C++: + rangeset_t *) + @param range: the range of addresses to verify. can be nullptr - 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) + getn_hidden_range(n) -> hidden_range_t + @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) + has_any_name(F) -> bool + @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) + has_auto_name(F) -> bool + @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) + has_cmt(F) -> bool + @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) + has_dummy_name(F) -> bool + @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) + has_extra_cmts(F) -> bool + @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) + has_immd(F) -> bool + @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) + has_name(F) -> bool + @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) + has_user_name(F) -> bool + @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) + has_value(F) -> bool + @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) + has_xref(F) -> bool + @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()' @@ -2459,43 +2216,66 @@ class hidden_range_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -2519,830 +2299,631 @@ class hidden_range_t(ida_range.range_t) Help on function is_align in module ida_bytes: is_align(*args) + 'FF_ALIGN' + is_align(F) -> bool - - - 'FF_ALIGN' - - - @param F (C++: flags_t) + @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 + @param dtid (C++: int) + @param dfid (C++: int) 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) + is_bnot(ea, F, n) -> bool + @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) + 'FF_BYTE' + is_byte(F) -> bool - - - 'FF_BYTE' - - - @param F (C++: flags_t) + @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) + is_char(F, n) -> bool + @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) + is_char0(F) -> bool + @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) + is_char1(F) -> bool + @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) + is_code(F) -> bool + @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) + is_custfmt(F, n) -> bool + @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) + is_custfmt0(F) -> bool + @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) + is_custfmt1(F) -> bool + @param F (C++: flags_t) Help on function is_custom in module ida_bytes: is_custom(*args) + 'FF_CUSTOM' + is_custom(F) -> bool - - - 'FF_CUSTOM' - - - @param F (C++: flags_t) + @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) + is_data(F) -> bool + @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) + is_defarg(F, n) -> bool + @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) + is_defarg0(F) -> bool + @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) + is_defarg1(F) -> bool + @param F (C++: flags_t) Help on function is_double in module ida_bytes: is_double(*args) + 'FF_DOUBLE' + is_double(F) -> bool - - - 'FF_DOUBLE' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_dword in module ida_bytes: is_dword(*args) + 'FF_DWORD' + is_dword(F) -> bool - - - 'FF_DWORD' - - - @param F (C++: flags_t) + @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) + is_enum(F, n) -> bool + @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) + is_enum0(F) -> bool + @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) + is_enum1(F) -> bool + @param F (C++: flags_t) Help on function is_float in module ida_bytes: is_float(*args) + 'FF_FLOAT' + is_float(F) -> bool - - - 'FF_FLOAT' - - - @param F (C++: flags_t) + @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) + is_float0(F) -> bool + @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) + is_float1(F) -> bool + @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) + is_flow(F) -> bool + @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) + is_fltnum(F, n) -> bool + @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) + is_forced_operand(ea, n) -> bool + @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) + is_func(F) -> bool + @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) + is_head(F) -> bool + @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) + is_invsign(ea, F, n) -> bool + @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) + is_loaded(ea) -> bool + @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) + is_lzero(ea, n) -> bool + @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) + is_manual(F, n) -> bool + @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) + is_manual_insn(ea) -> bool + @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) + is_mapped(ea) -> bool + @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) + is_not_tail(F) -> bool + @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) + is_numop(F, n) -> bool + @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) + is_numop0(F) -> bool + @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) + is_numop1(F) -> bool + @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) + is_off(F, n) -> bool + @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) + is_off0(F) -> bool + @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) + is_off1(F) -> bool + @param F (C++: flags_t) Help on function is_oword in module ida_bytes: is_oword(*args) + 'FF_OWORD' + is_oword(F) -> bool - - - 'FF_OWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_pack_real in module ida_bytes: is_pack_real(*args) + 'FF_PACKREAL' + is_pack_real(F) -> bool - - - 'FF_PACKREAL' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_qword in module ida_bytes: is_qword(*args) + 'FF_QWORD' + is_qword(F) -> bool - - - 'FF_QWORD' - - - @param F (C++: flags_t) + @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) + is_same_data_type(F1, F2) -> bool + @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) + is_seg(F, n) -> bool + @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) + is_seg0(F) -> bool + @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) + is_seg1(F) -> bool + @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) + is_stkvar(F, n) -> bool + @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) + is_stkvar0(F) -> bool + @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) + is_stkvar1(F) -> bool + @param F (C++: flags_t) Help on function is_strlit in module ida_bytes: is_strlit(*args) + 'FF_STRLIT' + is_strlit(F) -> bool - - - 'FF_STRLIT' - - - @param F (C++: flags_t) + @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) + is_stroff(F, n) -> bool + @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) + is_stroff0(F) -> bool + @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) + is_stroff1(F) -> bool + @param F (C++: flags_t) Help on function is_struct in module ida_bytes: is_struct(*args) + 'FF_STRUCT' + is_struct(F) -> bool - - - 'FF_STRUCT' - - - @param F (C++: flags_t) + @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) + is_suspop(ea, F, n) -> bool + @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) + is_tail(F) -> bool + @param F (C++: flags_t) Help on function is_tbyte in module ida_bytes: is_tbyte(*args) + 'FF_TBYTE' + is_tbyte(F) -> bool - - - 'FF_TBYTE' - - - @param F (C++: flags_t) + @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) + is_unknown(F) -> bool + @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 *) + is_varsize_item(ea, F, ti=None, itemsize=None) -> int + @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 nullptr). If + specified as nullptr, will be automatically retrieved from + the database (C++: const opinfo_t *) + @param itemsize: if not nullptr and the item is varsize, itemsize will + contain the calculated item size (for struct types, + the minimal size is returned) (C++: asize_t *) + @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) + 'FF_WORD' + is_word(F) -> bool - - - 'FF_WORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_yword in module ida_bytes: is_yword(*args) + 'FF_YWORD' + is_yword(F) -> bool - - - 'FF_YWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_zword in module ida_bytes: is_zword(*args) + 'FF_ZWORD' + is_zword(F) -> bool - - - 'FF_ZWORD' - - - @param F (C++: flags_t) + @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) + leading_zero_important(ea, n) -> bool + @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 + nbits(ea) -> int + @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. + next_addr(ea) -> ea_t + @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. + next_chunk(ea) -> ea_t + @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. + next_head(ea, maxea) -> ea_t + @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) + next_inited(ea, maxea) -> 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) - next_not_tail(ea) -> ea_t - - Get address of next non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + next_not_tail(ea) -> ea_t + @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. @@ -3354,213 +2935,168 @@ next_that(*args) 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) + next_unknown(ea, maxea) -> ea_t + @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) + op_adds_xrefs(F, n) -> bool + @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) + op_bin(ea, n) -> bool + @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) + op_chr(ea, n) -> bool + @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) + op_custfmt(ea, n, fid) -> bool + @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) + op_dec(ea, n) -> bool + @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 + op_enum(ea, n, id, serial) -> bool + @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) + op_flt(ea, n) -> bool + @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) + op_hex(ea, n) -> bool + @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) + op_num(ea, n) -> bool + @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) + op_oct(ea, n) -> bool + @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 + op_seg(ea, n) -> bool + @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 + op_stkvar(ea, n) -> bool + @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 + op_stroff(insn, n, path, path_len, delta) -> bool + @param insn: the instruction - an ida_ua.insn_t, or an address (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> @@ -3575,191 +3111,175 @@ op_stroff(*args) 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) + patch_byte(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 *) + patch_bytes(ea, buf) + @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) + patch_dword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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) + patch_qword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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) + patch_word(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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. + prev_addr(ea) -> ea_t + @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. + prev_chunk(ea) -> ea_t + @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. + prev_head(ea, minea) -> ea_t + @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) + prev_inited(ea, minea) -> 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) - prev_not_tail(ea) -> ea_t - - Get address of previous non-tail byte. - @param ea (C++: ea_t) - @return: BADADDR if none exists. + prev_not_tail(ea) -> ea_t + @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 . + prev_that(ea, minea, callable) -> ea_t + @param ea: start searching from this address - 1. (C++: ea_t) + @param minea: included in the search range. (C++: ea_t) + callable: PyObject * + @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) + prev_unknown(ea, minea) -> ea_t + @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 + print_strlit_type(strtype, flags=0) -> PyObject * + @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 @@ -3767,79 +3287,67 @@ put_byte(*args) '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 + put_byte(ea, x) -> bool + @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 *) + put_bytes(ea, buf) + @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) + put_dword(ea, x) + @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) + put_qword(ea, x) + @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) + put_word(ea, x) + @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: @@ -3850,8 +3358,6 @@ 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: @@ -3885,190 +3391,153 @@ register_data_types_and_formats(formats) Help on function revert_byte in module ida_bytes: revert_byte(*args) - revert_byte(ea) -> bool - - Revert patched byte - @param ea (C++: ea_t) + revert_byte(ea) -> bool + @param ea (C++: ea_t) + @retval: true - byte was patched before and reverted now 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 + set_cmt(ea, comm, rptble) -> bool + @param ea: linear address (C++: ea_t) + @param comm: comment string nullptr: 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 + set_forced_operand(ea, n, op) -> bool + @param ea: linear address (C++: ea_t) + @param n: number of operand (0, 1, 2) (C++: int) + @param op: text of operand nullptr: 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) + set_immd(ea) -> bool + @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) + set_lzero(ea, n) -> bool + @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 *) + set_manual_insn(ea, manual_insn) + @param ea: linear address of the instruction or data item (C++: ea_t) + @param manual_insn: "" - delete manual string. nullptr - 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) + set_op_type(ea, type, n) -> bool + @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) + @retval: 1 - ok + @retval: 0 - failed (applied to a tail byte) 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 + set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool + @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) + toggle_bnot(ea, n) -> bool + @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 + @param ea (C++: ea_t) + @param n (C++: int) 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) + toggle_sign(ea, n) -> bool + @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 @@ -4077,8 +3546,6 @@ 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 @@ -4092,32 +3559,26 @@ unregister_data_types_and_formats(formats) 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 + update_hidden_range(ha) -> bool + @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 + use_mapping(ea) -> ea_t + @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 @@ -4132,25 +3593,16 @@ visit_patched_bytes(*args) 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 === @@ -4716,50 +4168,118 @@ class DBG_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> DBG_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | | dbg_bpt(self, *args) + | A user defined breakpoint was reached. + | | dbg_bpt(self, tid, bptea) -> int + | @param tid (C++: thid_t) + | @param bptea (C++: ea_t) | | dbg_bpt_changed(self, *args) + | Breakpoint has been changed. + | | dbg_bpt_changed(self, bptev_code, bpt) + | @param bptev_code: Breakpoint modification events (C++: int) + | @param bpt (C++: bpt_t *) | | dbg_exception(self, *args) | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exc_code: int + | exc_can_cont: bool + | exc_ea: ea_t + | exc_info: char const * | | dbg_finished_loading_bpts(self, *args) - | dbg_finished_loading_bpts(self) + | Finished loading breakpoint info from idb. | | dbg_information(self, *args) | dbg_information(self, pid, tid, ea, info) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | info: char const * | | dbg_library_load(self, *args) | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_library_unload(self, *args) | dbg_library_unload(self, pid, tid, ea, info) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | info: char const * | | dbg_process_attach(self, *args) + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_process_detach(self, *args) + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_detach(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | ea: ea_t | | dbg_process_exit(self, *args) + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_exit(self, pid, tid, ea, exit_code) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exit_code: int | | dbg_process_start(self, *args) + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_request_error(self, *args) + | An error occurred during the processing of a request. + | | dbg_request_error(self, failed_command, failed_dbg_notification) + | @param failed_command (C++: ui_notification_t) + | @param failed_dbg_notification (C++: dbg_notification_t) | | dbg_run_to(self, *args) | dbg_run_to(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | ea: ea_t | | dbg_started_loading_bpts(self, *args) - | dbg_started_loading_bpts(self) + | Started loading breakpoint info from idb. | | dbg_step_into(self, *args) | dbg_step_into(self) @@ -4771,16 +4291,32 @@ class DBG_Hooks(__builtin__.object) | dbg_step_until_ret(self) | | dbg_suspend_process(self, *args) - | dbg_suspend_process(self) + | The process is now suspended.This event notification is also an + | asynchronous function result notification for 'suspend_process()' ! | | dbg_thread_exit(self, *args) | dbg_thread_exit(self, pid, tid, ea, exit_code) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exit_code: int | | dbg_thread_start(self, *args) | dbg_thread_start(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | ea: ea_t | | dbg_trace(self, *args) + | A step occurred (one instruction was executed). This event + | notification is only generated if step tracing is enabled. + | | dbg_trace(self, tid, ip) -> int + | @param tid: thread ID (C++: thid_t) + | @param ip: current instruction pointer. usually points after the + | executed instruction (C++: ea_t) + | @retval: 1 - do not log this trace event + | @retval: 0 - log it | | hook(self, *args) | hook(self) -> bool @@ -4809,54 +4345,64 @@ class DBG_Hooks(__builtin__.object) 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) + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @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) + + + add_bpt(bpt) -> bool + bpt: bpt_t const & Help on function add_path_mapping in module ida_dbg: add_path_mapping(*args) add_path_mapping(src, dst) + @param src (C++: const char *) + @param dst (C++: const char *) Help on function add_virt_module in module ida_dbg: add_virt_module(*args) add_virt_module(mod) -> bool + @param mod (C++: const modinfo_t *) 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) + attach_process(pid=pid_t(-1), event_id=-1) -> int + @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) + @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: @@ -4867,62 +4413,90 @@ class bpt_location_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: bpt_location_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: bpt_location_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: bpt_location_t const & | | __init__(self, *args) | __init__(self) -> bpt_location_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: bpt_location_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: bpt_location_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: bpt_location_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) + | 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. + | | compare(self, r) -> int + | @param r (C++: const bpt_location_t &) | | ea(self, *args) - | ea(self) -> ea_t + | Get address ( 'BPLT_ABS' ) | | is_empty_path(self, *args) - | is_empty_path(self) -> bool + | No path/filename specified? ( 'BPLT_REL' , 'BPLT_SRC' ) | | lineno(self, *args) - | lineno(self) -> int + | Get line number ( 'BPLT_SRC' ) | | offset(self, *args) - | offset(self) -> uval_t + | Get offset ( 'BPLT_REL' , 'BPLT_SYM' ) | | path(self, *args) - | path(self) -> char const * + | Get path/filename ( 'BPLT_REL' , 'BPLT_SRC' ) | | set_abs_bpt(self, *args) + | Specify an absolute address location. + | | set_abs_bpt(self, a) + | @param a (C++: ea_t) | | set_rel_bpt(self, *args) + | Specify a relative address location. + | | set_rel_bpt(self, mod, _offset) + | @param mod (C++: const char *) + | @param _offset (C++: uval_t) | | set_src_bpt(self, *args) + | Specify a source level location. + | | set_src_bpt(self, fn, _lineno) + | @param fn (C++: const char *) + | @param _lineno (C++: int) | | set_sym_bpt(self, *args) + | Specify a symbolic location. + | | set_sym_bpt(self, _symbol, _offset=0) + | @param _symbol (C++: const char *) + | @param _offset (C++: uval_t) | | symbol(self, *args) - | symbol(self) -> char const * + | Get symbol name ( 'BPLT_SYM' ) | | type(self, *args) - | type(self) -> bpt_loctype_t + | Get bpt type. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -4964,76 +4538,95 @@ class bpt_t(__builtin__.object) | __repr__ = _swig_repr(self) | | badbpt(self, *args) - | badbpt(self) -> bool + | Failed to write bpt to process memory? | | enabled(self, *args) - | enabled(self) -> bool + | Is breakpoint enabled? | | get_cnd_elang_idx(self, *args) | get_cnd_elang_idx(self) -> size_t | | get_size(self, *args) - | get_size(self) -> int + | Get bpt size. | | is_absbpt(self, *args) - | is_absbpt(self) -> bool + | Is absolute address breakpoint? | | is_active(self, *args) - | is_active(self) -> bool + | Written completely to process? | | is_compiled(self, *args) - | is_compiled(self) -> bool + | Condition has been compiled? | | is_hwbpt(self, *args) - | is_hwbpt(self) -> bool + | Is hardware breakpoint? | | is_inactive(self, *args) - | is_inactive(self) -> bool + | Not written to process at all? | | is_low_level(self, *args) - | is_low_level(self) -> bool + | Is bpt condition calculated at low level? | | is_page_bpt(self, *args) - | is_page_bpt(self) -> bool + | Page breakpoint? | | is_partially_active(self, *args) - | is_partially_active(self) -> bool + | Written partially to process? | | is_relbpt(self, *args) - | is_relbpt(self) -> bool + | Is relative address breakpoint? | | is_srcbpt(self, *args) - | is_srcbpt(self) -> bool + | Is source level breakpoint? | | is_symbpt(self, *args) - | is_symbpt(self) -> bool + | Is symbolic breakpoint? | | is_tracemodebpt(self, *args) - | is_tracemodebpt(self) -> bool + | Does breakpoint trace anything? | | is_traceoffbpt(self, *args) - | is_traceoffbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing disabled? | | is_traceonbpt(self, *args) - | is_traceonbpt(self) -> bool + | Is this a tracing breakpoint, and is tracing enabled? | | listbpt(self, *args) - | listbpt(self) -> bool + | Include in the bpt list? | | set_abs_bpt(self, *args) + | Set bpt location to an absolute address. + | | set_abs_bpt(self, a) + | @param a (C++: ea_t) | | set_rel_bpt(self, *args) + | Set bpt location to a relative address. + | | set_rel_bpt(self, mod, o) + | @param mod (C++: const char *) + | @param o (C++: uval_t) | | set_src_bpt(self, *args) + | Set bpt location to a source line. + | | set_src_bpt(self, fn, lineno) + | @param fn (C++: const char *) + | @param lineno (C++: int) | | set_sym_bpt(self, *args) + | Set bpt location to a symbol. + | | set_sym_bpt(self, sym, o) + | @param sym (C++: const char *) + | @param o (C++: uval_t) | | set_trace_action(self, *args) + | Configure tracing options. + | | set_trace_action(self, enable, trace_types) -> bool + | @param enable (C++: bool) + | @param trace_types (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -5101,10 +4694,11 @@ class bpt_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> bpt_t + | i: size_t | | __init__(self, *args) | __init__(self) -> bpt_vec_t - | __init__(self, x) -> bpt_vec_t + | x: qvector< bpt_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -5116,9 +4710,12 @@ class bpt_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: bpt_t const & | | at(self, *args) | at(self, _idx) -> bpt_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -5142,7 +4739,12 @@ class bpt_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> bpt_t + | it: qvector< bpt_t >::iterator + | + | | erase(self, first, last) -> bpt_t + | first: qvector< bpt_t >::iterator + | last: qvector< bpt_t >::iterator | | extract(self, *args) | extract(self) -> bpt_t @@ -5152,35 +4754,47 @@ class bpt_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=bpt_t()) + | x: bpt_t const & | | inject(self, *args) | inject(self, s, len) + | s: bpt_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> bpt_t + | it: qvector< bpt_t >::iterator + | x: bpt_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> bpt_t + | x: bpt_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: bpt_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< bpt_t > & | | truncate(self, *args) | truncate(self) @@ -5211,28 +4825,20 @@ bring_debugger_to_front(*args) 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 + check_bpt(ea) -> int + @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. @@ -5240,9 +4846,6 @@ clear_requests_queue(*args) 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)} @@ -5250,13 +4853,12 @@ Help on function collect_stack_trace in module ida_dbg: collect_stack_trace(*args) collect_stack_trace(tid, trace) -> bool + @param tid (C++: thid_t) + @param trace (C++: call_stack_t *) 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 @@ -5270,133 +4872,116 @@ continue_process(*args) 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) + create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * + @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 + dbg_add_bpt_tev(tid, ea, bp) -> bool + @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) + dbg_add_call_tev(tid, caller, callee) + @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 *) + dbg_add_debug_event(event) + @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 + dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool + @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 + dbg_add_many_tevs(new_tevs) -> bool + @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) + dbg_add_ret_tev(tid, ret_insn, return_to) + @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) + dbg_add_tev(type, tid, address) + @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) + dbg_add_thread(tid) + @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 + @param start_ea (C++: ea_t) + @param end_ea (C++: ea_t) + @param data (C++: const compiled_binpat_vec_t &) + @param srch_flags (C++: int) 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 @@ -5408,78 +4993,72 @@ dbg_can_query(*args) 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) + dbg_del_thread(tid) + @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 + define_exception(code, name, desc, flags) -> char const * + @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) + del_bpt(ea) -> bool + @param ea: any address in the breakpoint range (C++: ea_t) + + + del_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function del_bptgrp in module ida_dbg: del_bptgrp(*args) del_bptgrp(name) -> bool + @param name (C++: const char *) Help on function del_virt_module in module ida_dbg: del_virt_module(*args) del_virt_module(base) -> bool + @param base (C++: const ea_t) 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'. + + diff_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function disable_bblk_trace in module ida_dbg: @@ -5490,7 +5069,11 @@ Help on function disable_bpt in module ida_dbg: disable_bpt(*args) disable_bpt(ea) -> bool + @param ea (C++: ea_t) + + disable_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function disable_func_trace in module ida_dbg: @@ -5516,32 +5099,43 @@ Help on function enable_bblk_trace in module ida_dbg: enable_bblk_trace(*args) enable_bblk_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_bpt in module ida_dbg: enable_bpt(*args) enable_bpt(ea, enable=True) -> bool + @param ea (C++: ea_t) + @param enable (C++: bool) + + enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: bool) Help on function enable_func_trace in module ida_dbg: enable_func_trace(*args) enable_func_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_insn_trace in module ida_dbg: enable_insn_trace(*args) enable_insn_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_manual_regions in module ida_dbg: enable_manual_regions(*args) enable_manual_regions(enable) + @param enable (C++: bool) Help on function enable_step_trace in module ida_dbg: enable_step_trace(*args) - enable_step_trace(enable=True) -> bool + enable_step_trace(enable=1) -> bool + @param enable (C++: int) Help on class eval_ctx_t in module ida_dbg: @@ -5552,6 +5146,7 @@ class eval_ctx_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _ea) -> eval_ctx_t + | _ea: ea_t | | __repr__ = _swig_repr(self) | @@ -5579,41 +5174,30 @@ class eval_ctx_t(__builtin__.object) 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) + exist_bpt(ea) -> bool + @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 *) + find_bpt(bptloc, bpt) -> bool + @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)} @@ -5621,37 +5205,30 @@ get_bblk_trace_options(*args) 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 + get_bpt(ea, bpt) -> bool + @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 + @param bptloc (C++: const bpt_location_t &) 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 @@ -5660,33 +5237,29 @@ get_bpt_tev_ea(*args) 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. + get_bpt_tev_ea(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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) + get_bptloc_string(i) -> char const * + @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. + get_call_tev_callee(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -5701,47 +5274,38 @@ get_current_source_line(*args) 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 + get_dbg_byte(x, ea) -> bool + @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 + @param ranges (C++: meminfo_vec_t *) 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 *) + get_dbg_reg_info(regname, ri) -> bool + @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: @@ -5753,13 +5317,11 @@ Help on function get_first_module in module ida_dbg: get_first_module(*args) get_first_module(modinfo) -> bool + @param modinfo (C++: modinfo_t *) 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)} @@ -5767,66 +5329,63 @@ Help on function get_global_var in module ida_dbg: get_global_var(*args) get_global_var(prov, ea, name, out) -> bool + @param prov (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param name (C++: const char *) + @param out (C++: source_item_ptr *) Help on function get_grp_bpts in module ida_dbg: get_grp_bpts(*args) get_grp_bpts(bpts, grp_name) -> ssize_t + @param bpts (C++: bpt_vec_t *) + @param grp_name (C++: const char *) 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 + get_insn_tev_reg_mem(n, memmap) -> bool + @param n: number of trace event, is in range 0.. get_tev_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. + get_insn_tev_reg_result(n, regname, regval) -> bool + @param n: number of trace event, is in range 0.. get_tev_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. + get_insn_tev_reg_val(n, regname, regval) -> bool + @param n: number of trace event, is in range 0.. get_tev_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)} @@ -5834,9 +5393,6 @@ get_insn_trace_options(*args) 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. @@ -5844,19 +5400,23 @@ Help on function get_local_var in module ida_dbg: get_local_var(*args) get_local_var(prov, ea, name, out) -> bool + @param prov (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param name (C++: const char *) + @param out (C++: source_item_ptr *) Help on function get_local_vars in module ida_dbg: get_local_vars(*args) get_local_vars(prov, ea, out) -> bool + @param prov (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param out (C++: source_items_t *) 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) @@ -5864,105 +5424,91 @@ Help on function get_module_info in module ida_dbg: get_module_info(*args) get_module_info(ea, modinfo) -> bool + @param ea (C++: ea_t) + @param modinfo (C++: modinfo_t *) Help on function get_next_module in module ida_dbg: get_next_module(*args) get_next_module(modinfo) -> bool + @param modinfo (C++: modinfo_t *) 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 + get_processes(proclist) -> ssize_t + @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 *) + get_reg_val(regname, regval) -> bool + @param regname (C++: const char *) + @param regval (C++: regval_t *) + + + get_reg_val(regname, ival) -> bool + @param regname (C++: const char *) + ival: uint64 * + + + get_reg_val(regname) -> PyObject * + @param regname (C++: const char *) Help on function get_reg_vals in module ida_dbg: get_reg_vals(*args) get_reg_vals(tid, clsmask, values) -> int + @param tid (C++: thid_t) + @param clsmask (C++: int) + @param values (C++: regval_t *) 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. + get_ret_tev_return(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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. @@ -5970,74 +5516,62 @@ Help on function get_srcinfo_provider in module ida_dbg: get_srcinfo_provider(*args) get_srcinfo_provider(name) -> srcinfo_provider_t * + @param name (C++: const char *) 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 + @param n (C++: int) 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". + get_tev_event(n, d) -> bool + @param n: number of trace event, is in range 0.. get_tev_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 + get_tev_info(n, tev_info) -> bool + @param n: number of trace event, is in range 0.. get_tev_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". + get_tev_memory_info(n, mi) -> bool + @param n: number of trace event, is in range 0.. get_tev_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)} @@ -6061,103 +5595,92 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) get_tev_tid(n) -> int + @param n (C++: int) Help on function get_tev_type in module ida_dbg: get_tev_type(*args) get_tev_type(n) -> int + @param n (C++: 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)} + +Help on function get_trace_dynamic_register_set in module ida_dbg: + +get_trace_dynamic_register_set(*args) + Get dynamic register set of current trace. - @return: the base address of the currently loaded trace + get_trace_dynamic_register_set(idaregs) + @param idaregs (C++: dynamic_register_set_t *) 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 *) + get_trace_file_desc(filename) -> str + @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 + getn_bpt(n, bpt) -> bool + @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. + getn_thread(n) -> thid_t + @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. + getn_thread_name(n) -> char const * + @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 + @param ev (C++: const debug_event_t *) + @param rqflags (C++: int) Help on function hide_all_bpts in module ida_dbg: @@ -6168,8 +5691,6 @@ 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. @@ -6178,25 +5699,24 @@ Help on function internal_ioctl in module ida_dbg: internal_ioctl(*args) internal_ioctl(fn, buf, poutbuf, poutsize) -> int + @param fn (C++: int) + @param buf (C++: const void *) + @param poutbuf (C++: void **) + @param poutsize (C++: ssize_t *) 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 ) + invalidate_dbg_state(dbginv) -> int + @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) @@ -6204,16 +5724,14 @@ invalidate_dbgmem_config(*args) 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) + invalidate_dbgmem_contents(ea, size) + @param ea (C++: ea_t) + @param size (C++: asize_t) Help on function is_bblk_trace_enabled in module ida_dbg: @@ -6223,9 +5741,6 @@ is_bblk_trace_enabled(*args) 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 @@ -6235,123 +5750,96 @@ is_debugger_busy(*args) 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) + is_debugger_memory(ea) -> bool + @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 + 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) - 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 *) + is_reg_custom(regname) -> bool + @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 *) + is_reg_float(regname) -> bool + @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 *) + is_reg_integer(regname) -> bool + @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 *) + is_valid_trace_file(filename) -> bool + @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 * + @param bptgrps (C++: qstrvec_t *) Help on function load_debugger in module ida_dbg: load_debugger(*args) load_debugger(dbgname, use_remote) -> bool + @param dbgname (C++: const char *) + @param use_remote (C++: 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 *) + load_trace_file(filename) -> str + @param filename (C++: const char *) Help on class memreg_info_t in module ida_dbg: @@ -6401,10 +5889,11 @@ class memreg_infos_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> memreg_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> memreg_infos_t - | __init__(self, x) -> memreg_infos_t + | 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. @@ -6416,9 +5905,12 @@ class memreg_infos_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: memreg_info_t const & | | at(self, *args) | at(self, _idx) -> memreg_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -6442,7 +5934,12 @@ class memreg_infos_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> memreg_info_t + | it: qvector< memreg_info_t >::iterator + | + | | erase(self, first, last) -> memreg_info_t + | first: qvector< memreg_info_t >::iterator + | last: qvector< memreg_info_t >::iterator | | extract(self, *args) | extract(self) -> memreg_info_t @@ -6452,35 +5949,47 @@ class memreg_infos_t(__builtin__.object) | | grow(self, *args) | grow(self, x=memreg_info_t()) + | x: memreg_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: memreg_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> memreg_info_t + | it: qvector< memreg_info_t >::iterator + | x: memreg_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> memreg_info_t + | x: memreg_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: memreg_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< memreg_info_t > & | | truncate(self, *args) | truncate(self) @@ -6507,33 +6016,30 @@ 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 + put_dbg_byte(ea, x) -> bool + @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 + @param ea (C++: ea_t) + @param buffer (C++: void *) + @param size (C++: size_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 @@ -6541,68 +6047,58 @@ Help on function rename_bptgrp in module ida_dbg: rename_bptgrp(*args) rename_bptgrp(old_name, new_name) -> bool + @param old_name (C++: const char *) + @param new_name (C++: const char *) 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. + request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @param ea (C++: ea_t) + @param size (C++: asize_t) + @param type (C++: bpttype_t) - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) + + request_add_bpt(bpt) -> bool + bpt: bpt_t const & 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) + request_attach_process(pid, event_id) -> 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) - 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. + request_del_bpt(ea) -> bool + @param ea (C++: ea_t) - @param ea (C++: ea_t) + + request_del_bpt(bptloc) -> bool + bptloc: bpt_location_t const & 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: @@ -6614,7 +6110,11 @@ Help on function request_disable_bpt in module ida_dbg: request_disable_bpt(*args) request_disable_bpt(ea) -> bool + @param ea (C++: ea_t) + + request_disable_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function request_disable_func_trace in module ida_dbg: @@ -6635,211 +6135,172 @@ Help on function request_enable_bblk_trace in module ida_dbg: request_enable_bblk_trace(*args) request_enable_bblk_trace(enable=True) -> bool + @param enable (C++: bool) Help on function request_enable_bpt in module ida_dbg: request_enable_bpt(*args) request_enable_bpt(ea, enable=True) -> bool + @param ea (C++: ea_t) + @param enable (C++: bool) + + request_enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: bool) Help on function request_enable_func_trace in module ida_dbg: request_enable_func_trace(*args) request_enable_func_trace(enable=True) -> bool + @param enable (C++: bool) Help on function request_enable_insn_trace in module ida_dbg: request_enable_insn_trace(*args) request_enable_insn_trace(enable=True) -> bool + @param enable (C++: bool) Help on function request_enable_step_trace in module ida_dbg: request_enable_step_trace(*args) - request_enable_step_trace(enable=True) -> bool + request_enable_step_trace(enable=1) -> bool + @param enable (C++: int) 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) + request_resume_thread(tid) -> int + @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) + request_run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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) + request_select_thread(tid) -> bool + @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) + request_set_bblk_trace_options(options) + @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) + request_set_func_trace_options(options) + @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) + request_set_insn_trace_options(options) + @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 *) + request_set_reg_val(regname, o) -> PyObject * + @param regname (C++: const char *) + o: PyObject * 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) + request_set_resume_mode(tid, mode) -> bool + @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) + request_set_step_trace_options(options) + @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 *) + request_start_process(path=None, args=None, sdir=None) -> int + @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) + request_suspend_thread(tid) -> int + @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) + resume_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @retval: -1 - network error + @retval: 0 - failed + @retval: 1 - ok 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 @@ -6848,24 +6309,15 @@ retrieve_exceptions(*args) 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) @@ -6873,37 +6325,33 @@ run_to(*args) 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) + run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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 *) + save_trace_file(filename, description) -> bool + @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. + select_thread(tid) -> bool + @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: @@ -6919,113 +6367,100 @@ send_dbg_command(command) 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) + set_bblk_trace_options(options) + @param options (C++: int) Help on function set_bpt_group in module ida_dbg: set_bpt_group(*args) set_bpt_group(bpt, grp_name) + @param bpt (C++: bpt_t &) + @param grp_name (C++: const char *) Help on function set_bptloc_group in module ida_dbg: set_bptloc_group(*args) set_bptloc_group(bptloc, grp_name) -> bool + @param bptloc (C++: const bpt_location_t &) + @param grp_name (C++: const char *) 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 *) + set_bptloc_string(s) -> int + @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) + set_debugger_event_cond(evcond) + @param evcond (C++: const char *) 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 + set_debugger_options(options) -> 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) - set_func_trace_options(options) - - Modify function tracing options. \sq{Type, Synchronous function - available as request, Notification, none (synchronous function)} - @param options (C++: int) + set_func_trace_options(options) + @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) + set_highlight_trace_options(hilight, color, diff) + @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) + set_insn_trace_options(options) + @param options (C++: int) Help on function set_manual_regions in module ida_dbg: set_manual_regions(*args) set_manual_regions(ranges) + @param ranges (C++: const meminfo_vec_t *) 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) + set_process_options(path, args, sdir, host, _pass, port) + @param path (C++: const char *) + @param args (C++: const char *) + @param sdir (C++: const char *) + @param host (C++: const char *) + pass: char const * + @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 @@ -7036,112 +6471,110 @@ set_process_state(*args) 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 ) + set_process_state(newstate, p_thid, dbginv) -> int + @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 *) + set_reg_val(regname, o) -> PyObject + @param regname (C++: const char *) + o: PyObject * + + + set_reg_val(tid, regidx, o) -> PyObject * + tid: thid_t + regidx: int + o: PyObject * 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) + set_remote_debugger(host, _pass, port=-1) + @param host: If empty, IDA will use local debugger. If NULL, the host + will not be set. (C++: const char *) + pass: char const * + @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) + set_resume_mode(tid, mode) -> bool + @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) + set_step_trace_options(options) + @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) + set_trace_base_address(ea) + @param ea (C++: ea_t) + +Help on function set_trace_dynamic_register_set in module ida_dbg: + +set_trace_dynamic_register_set(*args) + Set dynamic register set of current trace. + + set_trace_dynamic_register_set(idaregs) + @param idaregs (C++: dynamic_register_set_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 *) + set_trace_file_desc(filename, description) -> bool + @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 *) + set_trace_platform(platform) + @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) + set_trace_size(size) -> bool + @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: @@ -7176,9 +6609,6 @@ srcdbg_step_until_ret(*args) 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 @@ -7186,16 +6616,17 @@ start_process(*args) 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 *) + start_process(path=None, args=None, sdir=None) -> int + @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 *) + @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) - 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' } @@ -7203,9 +6634,6 @@ step_into(*args) 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' } @@ -7213,9 +6641,6 @@ step_over(*args) 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, @@ -7224,18 +6649,12 @@ step_until_ret(*args) 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 @@ -7248,15 +6667,16 @@ suspend_process(*args) 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) + suspend_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @retval: -1 - network error + @retval: 0 - failed + @retval: 1 - ok Help on class tev_info_reg_t in module ida_dbg: @@ -7342,6 +6762,8 @@ class tev_reg_value_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t + | _reg_idx: int + | _value: uint64 | | __repr__ = _swig_repr(self) | @@ -7378,10 +6800,11 @@ class tev_reg_values_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> tev_reg_value_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tev_reg_values_t - | __init__(self, x) -> tev_reg_values_t + | 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. @@ -7393,9 +6816,12 @@ class tev_reg_values_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: tev_reg_value_t const & | | at(self, *args) | at(self, _idx) -> tev_reg_value_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -7419,7 +6845,12 @@ class tev_reg_values_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> tev_reg_value_t + | it: qvector< tev_reg_value_t >::iterator + | + | | erase(self, first, last) -> tev_reg_value_t + | first: qvector< tev_reg_value_t >::iterator + | last: qvector< tev_reg_value_t >::iterator | | extract(self, *args) | extract(self) -> tev_reg_value_t @@ -7429,35 +6860,47 @@ class tev_reg_values_t(__builtin__.object) | | grow(self, *args) | grow(self, x=tev_reg_value_t()) + | x: tev_reg_value_t const & | | inject(self, *args) | inject(self, s, len) + | s: tev_reg_value_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> tev_reg_value_t + | it: qvector< tev_reg_value_t >::iterator + | x: tev_reg_value_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> tev_reg_value_t + | x: tev_reg_value_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: tev_reg_value_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< tev_reg_value_t > & | | truncate(self, *args) | truncate(self) @@ -7489,10 +6932,11 @@ class tevinforeg_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> tev_info_reg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tevinforeg_vec_t - | __init__(self, x) -> tevinforeg_vec_t + | 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. @@ -7504,9 +6948,12 @@ class tevinforeg_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: tev_info_reg_t const & | | at(self, *args) | at(self, _idx) -> tev_info_reg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -7530,7 +6977,12 @@ class tevinforeg_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> tev_info_reg_t + | it: qvector< tev_info_reg_t >::iterator + | + | | erase(self, first, last) -> tev_info_reg_t + | first: qvector< tev_info_reg_t >::iterator + | last: qvector< tev_info_reg_t >::iterator | | extract(self, *args) | extract(self) -> tev_info_reg_t @@ -7540,35 +6992,47 @@ class tevinforeg_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=tev_info_reg_t()) + | x: tev_info_reg_t const & | | inject(self, *args) | inject(self, s, len) + | s: tev_info_reg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> tev_info_reg_t + | it: qvector< tev_info_reg_t >::iterator + | x: tev_info_reg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> tev_info_reg_t + | x: tev_info_reg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: tev_info_reg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< tev_info_reg_t > & | | truncate(self, *args) | truncate(self) @@ -7594,9 +7058,6 @@ class tevinforeg_vec_t(__builtin__.object) 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 @@ -7611,28 +7072,30 @@ update_bpt(*args) '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 *) + update_bpt(bpt) -> bool + @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) + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + @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 + @param ea (C++: ea_t) + py_buf: PyObject * + @param size (C++: size_t) === ida_dbg EPYDOC INJECTIONS === ida_dbg.BKPT_ACTIVE @@ -7773,6 +7236,9 @@ refresh the memory layout and contents before evaluating bpt condition ida_dbg.BT_LOG_INSTS """ +specific options for basic block tracing (see +'set_bblk_trace_options()' ) + log all instructions in the current basic block """ @@ -7918,12 +7384,19 @@ display for unknown exceptions ida_dbg.FT_LOG_RET """ +specific options for function tracing (see 'set_func_trace_options()' +) + function tracing will log returning instructions """ ida_dbg.IT_LOG_SAME_IP """ -instruction tracing will log instructions whose IP doesn't change +specific options for instruction tracing (see +'set_insn_trace_options()' ) + +instruction tracing will log new instructions even when IP doesn't +change """ ida_dbg.ST_ALREADY_LOGGED @@ -7933,7 +7406,7 @@ step tracing will be disabled when IP is already logged ida_dbg.ST_DIFFERENTIAL """ -tracing: log only new instructions +tracing: log only new instructions (not previously logged) """ ida_dbg.ST_OPTIONS_MASK @@ -7991,61 +7464,102 @@ ida_dbg.WFNE_USEC timeout is specified in microseconds """ === ida_dbg EPYDOC INJECTIONS END === +Help on function choose_ioport_device2 in module ida_diskio: + +choose_ioport_device2(*args) + choose_ioport_device2(_device, file, parse_params) -> bool + @param _device (C++: qstring *) + @param file (C++: const char *) + @param parse_params (C++: choose_ioport_parser_t *) + +Help on class choose_ioport_parser_t in module ida_diskio: + +class choose_ioport_parser_t(__builtin__.object) + | Proxy of C++ choose_ioport_parser_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> choose_ioport_parser_t + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | parse(self, *args) + | parse(self, param, line) -> bool + | @param param (C++: qstring *) + | @param line (C++: const char *) + | @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 + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for 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_choose_ioport_parser_t(self) + Help on function close_linput in module ida_diskio: close_linput(*args) - close_linput(li) - - Close loader input. - - @param li (C++: linput_t *) + close_linput(li) + @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. + + create_bytearray_linput(s) -> linput_t * + s: qstring const & 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 - *) + create_generic_linput(gl) -> linput_t * + @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) + create_memory_linput(start, size) -> linput_t * + @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) + @param fp (C++: FILE *) 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 @@ -8056,73 +7570,108 @@ enumerate_files(*args) 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) + enumerate_files2(answer, answer_size, path, fname, fv) -> int + @param answer (C++: char *) + @param answer_size (C++: size_t) + @param path (C++: const char *) + @param fname (C++: const char *) + @param fv (C++: file_enumerator_t &) + +Help on class file_enumerator_t in module ida_diskio: + +class file_enumerator_t(__builtin__.object) + | Proxy of C++ file_enumerator_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> file_enumerator_t + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | visit_file(self, *args) + | visit_file(self, file) -> int + | @param file (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for 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_file_enumerator_t(self) + 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 + fopenA(file) -> FILE * + @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 + fopenM(file) -> FILE * + @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 + fopenRB(file) -> FILE * + @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 + fopenRT(file) -> FILE * + @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 + fopenWB(file) -> FILE * + @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 + fopenWT(file) -> FILE * + @param file (C++: const char *) + @return: NULL if failure Help on class generic_linput_t in module ida_diskio: @@ -8137,6 +7686,9 @@ class generic_linput_t(__builtin__.object) | | read(self, *args) | read(self, off, buffer, nbytes) -> ssize_t + | @param off (C++: qoff64_t) + | @param buffer (C++: void *) + | @param nbytes (C++: size_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8165,47 +7717,37 @@ class generic_linput_t(__builtin__.object) 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' + get_ida_subdirs(subdir, flags=0) -> int + @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 *) + get_linput_type(li) -> linput_type_t + @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) + get_special_folder(csidl) -> str + @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: @@ -8216,51 +7758,89 @@ get_user_idadir(*args) 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. + getsysfile(filename, subdir) -> str + @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 *) + idadir(subdir) -> char const * + @param subdir (C++: const char *) + +Help on class ioports_fallback_t in module ida_diskio: + +class ioports_fallback_t(__builtin__.object) + | Proxy of C++ ioports_fallback_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> ioports_fallback_t + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | handle(self, *args) + | handle(self, ports, line) -> bool + | @param ports (C++: const ioports_t &) + | @param line (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for 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_ioports_fallback_t(self) 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) + open_linput(file, remote) -> linput_t * + @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) + qlgetz(li, fpos) -> str + @param li (C++: linput_t *) + @param fpos (C++: int64) + +Help on function read_ioports2 in module ida_diskio: + +read_ioports2(*args) + read_ioports2(ports, device, file, callback=None) -> ssize_t + @param ports (C++: ioports_t *) + @param device (C++: qstring *) + @param file (C++: const char *) + @param callback (C++: ioports_fallback_t *) === ida_diskio EPYDOC INJECTIONS === ida_diskio.IDA_SUBDIR_IDADIR_FIRST @@ -8281,103 +7861,86 @@ only existing directories will be present 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) + add_entry(ord, ea, name, makecode, flags=0) -> bool + @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 + get_entry(ord) -> ea_t + @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 + get_entry_forwarder(ord) -> str + @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 + get_entry_name(ord) -> str + @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. + get_entry_ordinal(idx) -> uval_t + @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 + rename_entry(ord, name, flags=0) -> bool + @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 + set_entry_forwarder(ord, name, flags=0) -> bool + @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 @@ -8401,54 +7964,44 @@ the name is given in UTF-8 (default) 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) + add_enum(idx, name, flag) -> enum_t + @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 + add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int + @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) + del_enum(id) + @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) + del_enum_member(id, value, serial, bmask) -> bool + @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: @@ -8461,11 +8014,17 @@ class enum_member_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> enum_member_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_enum_member(self, *args) + | Implements action to take when enum member is visited. + | | visit_enum_member(self, cid, value) -> int + | @param cid (C++: const_t) + | @param value (C++: uval_t) + | @return: nonzero to stop the iteration | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8488,533 +8047,452 @@ class enum_member_visitor_t(__builtin__.object) 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 &) + for_all_enum_members(id, cv) -> int + @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 + @param id (C++: enum_t) + @param bmask (C++: bmask_t) + @param repeatable (C++: bool) Help on function get_bmask_name in module ida_enum: get_bmask_name(*args) get_bmask_name(id, bmask) -> str + @param id (C++: enum_t) + @param bmask (C++: bmask_t) 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 *) + get_enum(name) -> enum_t + @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) + get_enum_cmt(id, repeatable) -> str + @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) + get_enum_flag(id) -> flags_t + @param id (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) + Get the index in the list of enums. + 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) + @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) + get_enum_member(id, value, serial, mask) -> const_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) - get_enum_member_bmask(id) -> bmask_t - - Get bitmask of an enum member. - - @param id (C++: const_t) + get_enum_member_bmask(id) -> bmask_t + @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 *) + get_enum_member_by_name(name) -> const_t + @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) + get_enum_member_cmt(id, repeatable) -> str + @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) + get_enum_member_enum(id) -> enum_t + @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) + get_enum_member_name(id) -> str + @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) + get_enum_member_serial(cid) -> uchar + @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) + get_enum_member_value(id) -> uval_t + @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) + get_enum_name(id) -> str + @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) + get_enum_name2(id, flags=0) -> str + @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) + get_enum_size(id) -> size_t + @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) + get_enum_type_ordinal(id) -> int32 + @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) + get_enum_width(id) -> size_t + @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 + get_first_bmask(id) -> bmask_t + @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 + @param id (C++: enum_t) + @param bmask (C++: bmask_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 + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: bmask_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 + get_last_bmask(id) -> bmask_t + @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 + @param id (C++: enum_t) + @param bmask (C++: bmask_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 + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: bmask_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 + get_next_bmask(id, bmask) -> bmask_t + @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 + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: bmask_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 + @param in_out_serial (C++: uchar *) + @param first_cid (C++: 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 + get_prev_bmask(id, bmask) -> bmask_t + @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 + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: bmask_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 + @param in_out_serial (C++: uchar *) + @param first_cid (C++: const_t) Help on function getn_enum in module ida_enum: getn_enum(*args) - getn_enum(n) -> 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) + getn_enum(idx) -> enum_t + @param idx (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) + is_bf(id) -> bool + @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) + is_enum_fromtil(id) -> bool + @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) + is_enum_hidden(id) -> bool + @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) + is_ghost_enum(id) -> bool + @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) + is_one_bit_mask(mask) -> bool + @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 + @param id (C++: enum_t) + @param bmask (C++: bmask_t) + @param cmt (C++: const char *) + @param repeatable (C++: bool) Help on function set_bmask_name in module ida_enum: set_bmask_name(*args) set_bmask_name(id, bmask, name) -> bool + @param id (C++: enum_t) + @param bmask (C++: bmask_t) + @param name (C++: const char *) 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) + set_enum_bf(id, bf) -> bool + @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) + set_enum_cmt(id, cmt, repeatable) -> bool + @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) + set_enum_flag(id, flag) -> bool + @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) + set_enum_fromtil(id, fromtil) -> bool + @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) + set_enum_ghost(id, ghost) -> bool + @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) + set_enum_hidden(id, hidden) -> bool + @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) + set_enum_idx(id, idx) -> bool + @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) + set_enum_member_cmt(id, cmt, repeatable) -> bool + @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 *) + set_enum_member_name(id, name) -> bool + @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 *) + set_enum_name(id, name) -> bool + @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) + set_enum_type_ordinal(id, ord) + @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) + set_enum_width(id, width) -> bool + @param id (C++: enum_t) + @param width (C++: int) === ida_enum EPYDOC INJECTIONS === ida_enum.DEFMASK @@ -9077,132 +8555,100 @@ class _IdcFunction(__builtin__.object) 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. + add_idc_class(name, super=None) -> idc_class_t * + @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 +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 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 defvals: default argument values (optional) + @param flags: IDC function flags. A combination of EXTFUN_XXX constants (optional) - @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 + @return: Boolean 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. + add_idc_gvar(name) -> idc_value_t + @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 + nonnul_line: char const * 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) + compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str + @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) + @retval: true - ok + @retval: false - error, see errbuf Help on function compile_idc_text in module ida_expr: compile_idc_text(*args) compile_idc_text(nonnul_line) -> str + nonnul_line: char const * 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 &) + copy_idcv(dst, src) -> error_t + @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 + create_idcv_ref(ref, v) -> bool + @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 &) + deep_copy_idcv(dst, src) -> error_t + @param dst (C++: idc_value_t *) + @param src (C++: const idc_value_t &) Help on function del_idc_func in module ida_expr: @@ -9212,199 +8658,181 @@ del_idc_func(name) @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 + del_idcv_attr(obj, attr) -> error_t + @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" + deref_idcv(v, vref_flags) -> idc_value_t + @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 *) + eval_expr(rv, where, line) -> str + @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 *) + @retval: true - ok + @retval: false - error, see errbuf 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) + eval_idc_expr(rv, where, line) -> str + @param rv (C++: idc_value_t *) + @param where (C++: ea_t) + line: char const * 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) + exec_idc_script(result, path, func, args, argsnum) -> str + @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) + @retval: true - ok + @retval: false - error, see errbuf 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) + exec_system_script(file, complain_if_no_file=True) -> bool + @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) + @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) - 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() + find_idc_class(name) -> idc_class_t * + @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 + @param prefix (C++: const char *) + @param n (C++: int) 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 + find_idc_gvar(name) -> idc_value_t + @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 * + @param obj (C++: const idc_value_t *) 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 *) + free_idcv(v) + @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 + get_idc_filename(file) -> str + @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 + get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t + @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 + get_idcv_class_name(obj) -> str + @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 + get_idcv_slice(res, v, i1, i2, flags=0) -> error_t + @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: @@ -9417,6 +8845,7 @@ class highlighter_cbs_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> highlighter_cbs_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -9428,9 +8857,13 @@ class highlighter_cbs_t(__builtin__.object) | | set_block_state(self, *args) | set_block_state(self, arg0) + | arg0: int32 | | set_style(self, *args) | set_style(self, arg0, arg1, arg2) + | arg0: int32 + | arg1: int32 + | arg2: enum syntax_highlight_style | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9459,7 +8892,7 @@ class idc_global_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> idc_global_t - | __init__(self, n) -> idc_global_t + | n: char const * | | __repr__ = _swig_repr(self) | @@ -9496,8 +8929,15 @@ class idc_value_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=0) -> idc_value_t + | n: sval_t + | + | | __init__(self, r) -> idc_value_t + | r: idc_value_t const & + | + | | __init__(self, _str) -> idc_value_t + | _str: char const * | | __repr__ = _swig_repr(self) | @@ -9508,48 +8948,60 @@ class idc_value_t(__builtin__.object) | __get_e(self) -> wrapped_array_t< ushort,6 > | | c_str(self, *args) - | c_str(self) -> char const * + | 'VT_STR' | | clear(self, *args) - | clear(self) + | See 'free_idcv()' | | create_empty_string(self, *args) | create_empty_string(self) | | is_convertible(self, *args) - | is_convertible(self) -> bool + | Convertible types are 'VT_LONG' , 'VT_FLOAT' , 'VT_INT64' , and + | 'VT_STR' . | | is_integral(self, *args) - | is_integral(self) -> bool + | Does value represent a whole number? | | is_zero(self, *args) - | is_zero(self) -> bool + | Does value represent the integer 0? | | qstr(self, *args) - | qstr(self) -> qstring - | qstr(self) -> qstring const & + | 'VT_STR' | | set_float(self, *args) | set_float(self, f) + | f: ushort const [6] | | set_int64(self, *args) | set_int64(self, v) + | v: int64 | | set_long(self, *args) | set_long(self, v) + | v: sval_t | | set_pvoid(self, *args) | set_pvoid(self, p) + | p: void * | | set_string(self, *args) | set_string(self, _str, len) + | _str: char const * + | len: size_t + | + | | set_string(self, _str) + | _str: char const * | | swap(self, *args) + | Set this = r and v = this. + | | swap(self, v) + | @param v (C++: idc_value_t &) | | u_str(self, *args) - | u_str(self) -> uchar const * + | 'VT_STR' | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9604,10 +9056,11 @@ class idc_values_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> idc_value_t + | i: size_t | | __init__(self, *args) | __init__(self) -> idc_values_t - | __init__(self, x) -> idc_values_t + | 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. @@ -9619,9 +9072,12 @@ class idc_values_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: idc_value_t const & | | at(self, *args) | at(self, _idx) -> idc_value_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -9645,7 +9101,12 @@ class idc_values_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> idc_value_t + | it: qvector< idc_value_t >::iterator + | + | | erase(self, first, last) -> idc_value_t + | first: qvector< idc_value_t >::iterator + | last: qvector< idc_value_t >::iterator | | extract(self, *args) | extract(self) -> idc_value_t @@ -9655,35 +9116,47 @@ class idc_values_t(__builtin__.object) | | grow(self, *args) | grow(self, x=idc_value_t()) + | x: idc_value_t const & | | inject(self, *args) | inject(self, s, len) + | s: idc_value_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> idc_value_t + | it: qvector< idc_value_t >::iterator + | x: idc_value_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> idc_value_t + | x: idc_value_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: idc_value_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< idc_value_t > & | | truncate(self, *args) | truncate(self) @@ -9709,120 +9182,111 @@ class idc_values_t(__builtin__.object) 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 *) + idcv_float(v) -> error_t + @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 + idcv_int64(v) -> error_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) - 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 + idcv_long(v) -> error_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) - 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 + idcv_num(v) -> error_t + @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 + idcv_object(v, icls=None) -> error_t + @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 *) + idcv_string(v) -> error_t + @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 * + @param obj (C++: const idc_value_t *) 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 *) + move_idcv(dst, src) -> error_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) next_idcv_attr(obj, attr) -> char const * + @param obj (C++: const idc_value_t *) + @param attr (C++: const char *) Help on function prev_idcv_attr in module ida_expr: prev_idcv_attr(*args) prev_idcv_attr(obj, attr) -> char const * + @param obj (C++: const idc_value_t *) + @param attr (C++: const char *) 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) + print_idcv(v, name=None, indent=0) -> str + @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 + name: char const * + fp_ptr: size_t + args: char const * + defvals: idc_values_t const & + flags: int Help on function py_get_call_idc_func in module ida_expr: @@ -9833,87 +9297,85 @@ Help on function pyw_convert_defvals in module ida_expr: pyw_convert_defvals(*args) pyw_convert_defvals(out, py_seq) -> bool + out: idc_values_t * + py_seq: PyObject * 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 + name: char const * + args: char const * + py_fp: PyObject * Help on function pyw_unregister_idc_func in module ida_expr: pyw_unregister_idc_func(*args) pyw_unregister_idc_func(ctxptr) -> bool + ctxptr: size_t 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) + set_header_path(path, add) -> bool + @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) + @retval: true - success + @retval: false - no memory 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 + set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t + @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 + set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t + @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) + in: idc_value_t const & + @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 *) + swap_idcvs(v1, v2) + @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 + throw_idc_exception(r, desc) -> error_t + @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 @@ -10011,58 +9473,46 @@ See return value of 'idc_func_t' . 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) + calc_fixup_size(type) -> int + @param type (C++: fixup_type_t) + @retval: -1 - means error 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) + contains_fixups(ea, size) -> bool + @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) + del_fixup(source) + @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) + exists_fixup(source) -> bool + @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 + find_custom_fixup(name) -> fixup_type_t + @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: @@ -10073,12 +9523,13 @@ class fixup_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> fixup_data_t - | __init__(self, type_, flags_=0) -> fixup_data_t + | type_: fixup_type_t + | flags_: uint32 | | __repr__ = _swig_repr(self) | | calc_size(self, *args) - | calc_size(self) -> int + | 'calc_fixup_size()' | | clr_extdef(self, *args) | clr_extdef(self) @@ -10087,31 +9538,41 @@ class fixup_data_t(__builtin__.object) | clr_unused(self) | | get(self, *args) + | 'get_fixup()' + | | get(self, source) -> bool + | @param source (C++: ea_t) | | get_base(self, *args) - | get_base(self) -> ea_t + | Get base of fixup.The target is calculated as 'get_base()' + off. + | 'get_base()' + off 'FIXUPF_REL' | | get_desc(self, *args) + | 'get_fixup_desc()' + | | get_desc(self, source) -> char const * + | @param source (C++: ea_t) | | get_flags(self, *args) - | get_flags(self) -> uint32 + | Fixup flags 'Fixup flags' . | | get_handler(self, *args) - | get_handler(self) -> fixup_handler_t const * + | 'get_fixup_handler()' | | get_type(self, *args) - | get_type(self) -> fixup_type_t + | Fixup type 'Types of fixups' . | | get_value(self, *args) + | 'get_fixup_value()' + | | get_value(self, ea) -> uval_t + | @param ea (C++: ea_t) | | has_base(self, *args) - | has_base(self) -> bool + | Is fixup relative? | | is_custom(self, *args) - | is_custom(self) -> bool + | 'is_fixup_custom()' | | is_extdef(self, *args) | is_extdef(self) -> bool @@ -10120,34 +9581,49 @@ class fixup_data_t(__builtin__.object) | is_unused(self) -> bool | | patch_value(self, *args) + | 'patch_fixup_value()' + | | patch_value(self, ea) -> bool + | @param ea (C++: ea_t) | | set(self, *args) + | 'set_fixup()' + | | set(self, source) + | @param source (C++: ea_t) | | set_base(self, *args) + | Set base of fixup. The target should be set before a call of this + | function. + | | set_base(self, new_base) + | @param new_base (C++: ea_t) | | set_extdef(self, *args) | set_extdef(self) | | set_sel(self, *args) | set_sel(self, seg) + | @param seg (C++: const segment_t *) | | set_target_sel(self, *args) - | 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) | set_type(self, type_) + | @param type_ (C++: fixup_type_t) | | set_type_and_flags(self, *args) | set_type_and_flags(self, type_, flags_=0) + | @param type_ (C++: fixup_type_t) + | @param flags_ (C++: uint32) | | set_unused(self, *args) | set_unused(self) | | was_created(self, *args) - | was_created(self) -> bool + | Is fixup artificial? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -10215,9 +9691,6 @@ class fixup_info_t(__builtin__.object) 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 @@ -10226,61 +9699,45 @@ gen_fix_fixups(*args) 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) + gen_fix_fixups(_from, to, size) + @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) + get_fixup(fd, source) -> bool + @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 &) + get_fixup_desc(source, fd) -> str + @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) + get_fixup_handler(type) -> fixup_handler_t const * + @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()' . @@ -10290,76 +9747,73 @@ get_fixup_value(*args) 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) + get_fixup_value(ea, type) -> uval_t + @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) + @retval: operand - value Help on function get_fixups in module ida_fixup: get_fixups(*args) get_fixups(out, ea, size) -> bool + @param out (C++: fixups_t *) + @param ea (C++: ea_t) + @param size (C++: asize_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 + get_next_fixup_ea(ea) -> ea_t + @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 + get_prev_fixup_ea(ea) -> ea_t + @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) + is_fixup_custom(type) -> bool + @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 &) + patch_fixup_value(ea, fd) -> bool + @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 &) + @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) - 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 &) + set_fixup(source, fd) + @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 @@ -10403,9 +9857,6 @@ class qfile_t(__builtin__.object) | | __init__(self, *args) | __init__(self, rhs) -> qfile_t - | __init__(self, pycapsule=None) -> qfile_t - | - | | Closes the file | | __repr__ = _swig_repr(self) @@ -10418,8 +9869,6 @@ class qfile_t(__builtin__.object) | | 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) @@ -10430,14 +9879,10 @@ class qfile_t(__builtin__.object) | | 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 @@ -10446,32 +9891,26 @@ class qfile_t(__builtin__.object) | | opened(self, *args) | opened(self) -> bool - | - | | Checks if the file is opened or not | | put_char(self, *args) | put_char(self, chr) -> int + | chr: char | | puts(self, *args) | puts(self, str) -> int + | str: char const * | | 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!) | @@ -10480,20 +9919,14 @@ class qfile_t(__builtin__.object) | | 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 | | ---------------------------------------------------------------------- @@ -10501,14 +9934,14 @@ class qfile_t(__builtin__.object) | | from_capsule(*args) | from_capsule(pycapsule) -> qfile_t + | pycapsule: PyObject * | | from_fp(*args) | from_fp(fp) -> qfile_t + | fp: FILE * | | tmpfile(*args) | tmpfile() -> qfile_t - | - | | A static method to construct an instance using a temporary file | | ---------------------------------------------------------------------- @@ -10536,11 +9969,13 @@ Help on function qfile_t_from_capsule in module ida_fpro: qfile_t_from_capsule(*args) qfile_t_from_capsule(pycapsule) -> qfile_t + pycapsule: PyObject * Help on function qfile_t_from_fp in module ida_fpro: qfile_t_from_fp(*args) qfile_t_from_fp(fp) -> qfile_t + fp: FILE * Help on function qfile_t_tmpfile in module ida_fpro: @@ -10550,361 +9985,322 @@ qfile_t_tmpfile(*args) 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 + add_auto_stkpnt(pfn, ea, delta) -> bool + @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) + add_frame(pfn, frsize, frregs, argsize) -> bool + @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) + @retval: 1 - ok + @retval: 0 - failed (no function, frame already exists) 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 + add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int + @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 + add_user_stkpnt(ea, delta) -> bool + @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 + build_stkvar_name(pfn, v) -> str + @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 *) + build_stkvar_xrefs(out, pfn, mptr) + @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) + calc_stkvar_struc_offset(pfn, insn, n) -> ea_t + @param pfn: pointer to function (can't be NULL!) (C++: func_t *) + @param insn: the instruction - an ida_ua.insn_t, or an address (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 + define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool + @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 + del_frame(pfn) -> bool + @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 + del_regvar(pfn, ea1, ea2, canon) -> int + @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 + del_stkpnt(pfn, ea) -> bool + @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 + @param pfn (C++: func_t *) Help on function delete_wrong_stkvar_ops in module ida_frame: delete_wrong_stkvar_ops(*args) delete_wrong_stkvar_ops(pfn) -> int + @param pfn (C++: func_t *) 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 + find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t + @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 + + + find_regvar(pfn, ea, canon) -> regvar_t + @param pfn: function in question (C++: func_t *) + ea: ea_t + @param canon: name of a general 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 *) + frame_off_args(pfn) -> ea_t + @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 *) + frame_off_lvars(pfn) -> ea_t + @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 *) + frame_off_retaddr(pfn) -> ea_t + @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 *) + frame_off_savregs(pfn) -> ea_t + @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 + get_effective_spd(pfn, ea) -> sval_t + @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 *) + get_frame(pfn) -> struc_t + @param pfn: pointer to function structure (C++: const func_t *) + + + get_frame(ea) -> struc_t * + ea: ea_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) + get_frame_part(range, pfn, part) + @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 *) + get_frame_retsize(pfn) -> int + @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 + get_frame_size(pfn) -> asize_t + @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 + get_func_by_frame(frame_id) -> ea_t + @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 + @param pfn (C++: func_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. + get_sp_delta(pfn, ea) -> sval_t + @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. + get_spd(pfn, ea) -> sval_t + @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) @@ -10916,80 +10312,29 @@ get_stkvar(*args) 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) + has_regvar(pfn, ea) -> bool + @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) + pfn: func_t const * + frameoff: uval_t 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) + pfn: func_t const * + frameoff: 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 @@ -10998,7 +10343,10 @@ recalc_spd(*args) current instruction doesn't pass the execution flow to the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + recalc_spd(cur_ea) -> bool + @param cur_ea: linear address of the current instruction (C++: ea_t) + @retval: 1 - new stkpnt is added + @retval: 0 - nothing is changed Help on class regvar_t in module ida_frame: @@ -11043,43 +10391,66 @@ class regvar_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11103,77 +10474,67 @@ class regvar_t(ida_range.range_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 + rename_regvar(pfn, v, user) -> int + @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 + set_frame_size(pfn, frsize, frregs, argsize) -> bool + @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 + set_purged(ea, nbytes, override_old_value) -> bool + @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 + set_regvar_cmt(pfn, v, cmt) -> int + @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) + soff_to_fpoff(pfn, soff) -> sval_t + @param pfn (C++: func_t *) + @param soff (C++: uval_t) Help on class stkpnt_t in module ida_frame: @@ -11184,29 +10545,36 @@ class stkpnt_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: stkpnt_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: stkpnt_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: stkpnt_t const & | | __init__(self, *args) | __init__(self) -> stkpnt_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: stkpnt_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: stkpnt_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: stkpnt_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11241,29 +10609,36 @@ class stkpnts_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: stkpnts_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: stkpnts_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: stkpnts_t const & | | __init__(self, *args) | __init__(self) -> stkpnts_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: stkpnts_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: stkpnts_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: stkpnts_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: stkpnts_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11286,15 +10661,13 @@ class stkpnts_t(__builtin__.object) 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 + update_fpd(pfn, fpd) -> bool + @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: @@ -11305,15 +10678,37 @@ class xreflist_entry_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __ge__(self, *args) + | __ge__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __gt__(self, *args) + | __gt__(self, r) -> bool + | r: xreflist_entry_t const & | | __init__(self, *args) | __init__(self) -> xreflist_entry_t | + | __le__(self, *args) + | __le__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __lt__(self, *args) + | __lt__(self, r) -> bool + | r: xreflist_entry_t const & + | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: xreflist_entry_t const & | | __repr__ = _swig_repr(self) | + | compare(self, *args) + | compare(self, r) -> int + | r: xreflist_entry_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -11350,13 +10745,15 @@ class xreflist_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< xreflist_entry_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> xreflist_entry_t + | i: size_t | | __init__(self, *args) | __init__(self) -> xreflist_t - | __init__(self, x) -> xreflist_t + | 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. @@ -11366,20 +10763,26 @@ class xreflist_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< xreflist_entry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: xreflist_entry_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: xreflist_entry_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: xreflist_entry_t const & | | at(self, *args) | at(self, _idx) -> xreflist_entry_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -11403,52 +10806,74 @@ class xreflist_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> xreflist_entry_t + | it: qvector< xreflist_entry_t >::iterator + | + | | erase(self, first, last) -> xreflist_entry_t + | first: qvector< xreflist_entry_t >::iterator + | last: qvector< xreflist_entry_t >::iterator | | extract(self, *args) | extract(self) -> xreflist_entry_t | | find(self, *args) | find(self, x) -> xreflist_entry_t + | x: xreflist_entry_t const & + | + | | find(self, x) -> xreflist_entry_t + | x: xreflist_entry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=xreflist_entry_t()) + | x: xreflist_entry_t const & | | has(self, *args) | has(self, x) -> bool + | x: xreflist_entry_t const & | | inject(self, *args) | inject(self, s, len) + | s: xreflist_entry_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> xreflist_entry_t + | it: qvector< xreflist_entry_t >::iterator + | x: xreflist_entry_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> xreflist_entry_t + | x: xreflist_entry_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: xreflist_entry_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< xreflist_entry_t > & | | truncate(self, *args) | truncate(self) @@ -11502,210 +10927,465 @@ variable size 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 + add_func(ea1, ea2=BADADDR) -> bool + @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 + add_func_ex(pfn) -> bool + @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) + @param pfn (C++: func_t *) + @param reg (C++: int) + @param tif (C++: const tinfo_t &) + @param name (C++: const char *) 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) + append_func_tail(pfn, ea1, ea2) -> bool + @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 + apply_idasgn_to(signame, ea, is_startup) -> int + @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 + apply_startup_sig(ea, startup) -> bool + @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 *) + calc_func_size(pfn) -> asize_t + @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 + calc_idasgn_state(n) -> int + @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 + calc_thunk_func_target(pfn) -> ea_t + @param pfn: pointer to function (may not be nullptr) (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 + del_func(ea) -> bool + @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 + del_idasgn(n) -> int + @param n: number of signature in the list (0.. get_idasgn_qty() -1) + (C++: int) + @return: IDASGN_OK , IDASGN_BADARG , IDASGN_APPLIED + +Help on class dyn_ea_array in module ida_funcs: + +class dyn_ea_array(__builtin__.object) + | Proxy of C++ dynamic_wrapped_array_t< ea_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) + | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_ea_array + | _data: unsigned-ea-like-numeric-type *↗ + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: unsigned-ea-like-numeric-type const &↗ + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_ea_array_count_get(self) -> size_t + | + | data + | dyn_ea_array_data_get(self) -> unsigned-ea-like-numeric-type *↗ + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_ea_array(self) + +Help on class dyn_range_array in module ida_funcs: + +class dyn_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 + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_range_array + | _data: range_t * + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: range_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_range_array_count_get(self) -> size_t + | + | data + | dyn_range_array_data_get(self) -> range_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_range_array(self) + +Help on class dyn_regarg_array in module ida_funcs: + +class dyn_regarg_array(__builtin__.object) + | Proxy of C++ dynamic_wrapped_array_t< regarg_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) + | __getitem__(self, i) -> regarg_t + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regarg_array + | _data: regarg_t * + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: regarg_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_regarg_array_count_get(self) -> size_t + | + | data + | dyn_regarg_array_data_get(self) -> regarg_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_regarg_array(self) + +Help on class dyn_regvar_array in module ida_funcs: + +class dyn_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 & + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regvar_array + | _data: regvar_t * + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: regvar_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_regvar_array_count_get(self) -> size_t + | + | data + | dyn_regvar_array_data_get(self) -> regvar_t * + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_regvar_array(self) + +Help on class dyn_stkpnt_array in module ida_funcs: + +class dyn_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 & + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_stkpnt_array + | _data: stkpnt_t * + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: stkpnt_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_stkpnt_array_count_get(self) -> size_t + | + | data + | dyn_stkpnt_array_data_get(self) -> stkpnt_t * + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_stkpnt_array(self) Help on function f_any in module ida_funcs: f_any(*args) - f_any(arg1, arg2) -> bool - - Helper function to accept any address. + + f_any(arg1, arg2) -> bool + arg1: flags_t + arg2: void * 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 + find_func_bounds(nfn, flags) -> int + @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) + func_contains(pfn, ea) -> bool + @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) + func_does_return(callee) -> bool + @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 + fii: func_item_iterator_t * + visited: eavec_t * + p_farref: bool * + out: insn_t * 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 + fii: func_item_iterator_t * + out: insn_t * Help on function func_item_iterator_next in module ida_funcs: func_item_iterator_next(*args) func_item_iterator_next(fii, testf, ud) -> bool + fii: func_item_iterator_t * + testf: testf_t * + ud: void * Help on function func_item_iterator_prev in module ida_funcs: func_item_iterator_prev(*args) func_item_iterator_prev(fii, testf, ud) -> bool + fii: func_item_iterator_t * + testf: testf_t * + ud: void * Help on class func_item_iterator_t in module ida_funcs: @@ -11716,10 +11396,13 @@ class func_item_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_item_iterator_t - | __init__(self, pfn, _ea=BADADDR) -> func_item_iterator_t + | pfn: func_t * + | _ea: ea_t | | __next__(self, *args) | __next__(self, func, ud) -> bool + | func: testf_t * + | ud: void * | | __repr__ = _swig_repr(self) | @@ -11731,9 +11414,13 @@ class func_item_iterator_t(__builtin__.object) | | decode_preceding_insn(self, *args) | decode_preceding_insn(self, visited, p_farref, out) -> bool + | @param visited (C++: eavec_t *) + | @param p_farref (C++: bool *) + | @param out (C++: insn_t *) | | decode_prev_insn(self, *args) | decode_prev_insn(self, out) -> bool + | @param out (C++: insn_t *) | | first(self, *args) | first(self) -> bool @@ -11760,6 +11447,8 @@ class func_item_iterator_t(__builtin__.object) | | prev(self, *args) | prev(self, func, ud) -> bool + | @param func (C++: testf_t *) + | @param ud (C++: void *) | | prev_addr(self, *args) | prev_addr(self) -> bool @@ -11777,10 +11466,19 @@ class func_item_iterator_t(__builtin__.object) | prev_not_tail(self) -> bool | | set(self, *args) + | Set a function range. if pfn == nullptr then a segment range will be + | set. + | | set(self, pfn, _ea=BADADDR) -> bool + | @param pfn (C++: func_t *) + | @param _ea (C++: ea_t) | | set_range(self, *args) + | Set an arbitrary range. + | | set_range(self, ea1, ea2) -> bool + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11804,6 +11502,8 @@ Help on function func_parent_iterator_set in module ida_funcs: func_parent_iterator_set(*args) func_parent_iterator_set(fpi, pfn) -> bool + fpi: func_parent_iterator_t * + pfn: func_t * Help on class func_parent_iterator_t in module ida_funcs: @@ -11814,7 +11514,7 @@ class func_parent_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_parent_iterator_t - | __init__(self, _fnt) -> func_parent_iterator_t + | _fnt: func_t * | | __next__(self, *args) | __next__(self) -> bool @@ -11837,9 +11537,11 @@ class func_parent_iterator_t(__builtin__.object) | | reset_fnt(self, *args) | reset_fnt(self, _fnt) + | @param _fnt (C++: func_t *) | | set(self, *args) | set(self, _fnt) -> bool + | @param _fnt (C++: func_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11872,33 +11574,39 @@ class func_t(ida_range.range_t) | Methods defined here: | | __get_points__(self, *args) - | __get_points__(self) -> stkpnt_array + | __get_points__(self) -> dyn_stkpnt_array + | + | __get_referers__(self, *args) + | __get_referers__(self) -> dyn_ea_array | | __get_regargs__(self, *args) - | __get_regargs__(self) -> regarg_array + | __get_regargs__(self) -> dyn_regarg_array | | __get_regvars__(self, *args) - | __get_regvars__(self) -> regvar_array + | __get_regvars__(self) -> dyn_regvar_array | | __get_tails__(self, *args) - | __get_tails__(self) -> range_array + | __get_tails__(self) -> dyn_range_array | | __init__(self, *args) | __init__(self, start=0, end=0, f=0) -> func_t + | start: ea_t + | end: ea_t + | f: flags_t | | __repr__ = _swig_repr(self) | | analyzed_sp(self, *args) - | analyzed_sp(self) -> bool + | Has SP-analysis been performed? | | does_return(self, *args) - | does_return(self) -> bool + | Does function return? | | is_far(self, *args) - | is_far(self) -> bool + | Is a far function? | | need_prolog_analysis(self, *args) - | need_prolog_analysis(self) -> bool + | Needs prolog analysis? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11931,10 +11639,10 @@ class func_t(ida_range.range_t) | func_t_pntqty_get(self) -> uint32 | | 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 @@ -11943,19 +11651,19 @@ class func_t(ida_range.range_t) | func_t_regargqty_get(self) -> int | | regargs - | __get_regargs__(self) -> regarg_array + | __get_regargs__(self) -> dyn_regarg_array | | regvarqty | func_t_regvarqty_get(self) -> int | | regvars - | __get_regvars__(self) -> regvar_array + | __get_regvars__(self) -> dyn_regvar_array | | tailqty | func_t_tailqty_get(self) -> int | | tails - | __get_tails__(self) -> range_array + | __get_tails__(self) -> dyn_range_array | | thisown | The membership flag @@ -11971,43 +11679,66 @@ class func_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -12032,16 +11763,22 @@ Help on function func_t__from_ptrval__ in module ida_funcs: func_t__from_ptrval__(*args) func_t__from_ptrval__(ptrval) -> func_t + ptrval: size_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 + fti: func_tail_iterator_t * + pfn: func_t * + ea: ea_t 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 + fti: func_tail_iterator_t * + ea: ea_t Help on class func_tail_iterator_t in module ida_funcs: @@ -12052,7 +11789,8 @@ class func_tail_iterator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> func_tail_iterator_t - | __init__(self, _pfn, ea=BADADDR) -> func_tail_iterator_t + | _pfn: func_t * + | ea: ea_t | | __next__(self, *args) | __next__(self) -> bool @@ -12078,12 +11816,17 @@ class func_tail_iterator_t(__builtin__.object) | | set(self, *args) | set(self, _pfn, ea=BADADDR) -> bool + | @param _pfn (C++: func_t *) + | @param ea (C++: ea_t) | | set_ea(self, *args) | set_ea(self, ea) -> bool + | @param ea (C++: ea_t) | | set_range(self, *args) | set_range(self, ea1, ea2) -> bool + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12106,169 +11849,140 @@ class func_tail_iterator_t(__builtin__.object) 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. + get_fchunk(ea) -> func_t + @param ea: any address in a function chunk (C++: ea_t) + @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) - 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'. + get_fchunk_num(ea) -> int + @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 + ea: ea_t + idx: size_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. + get_func(ea) -> func_t + @param ea: any address in a function (C++: ea_t) + @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) - get_func_bitness(pfn) -> int - - Get function bitness (which is equal to the function segment bitness). - pfn==NULL => returns 0 + pfn==nullptr => returns 0 - @param pfn (C++: const func_t *) + get_func_bitness(pfn) -> int + @param pfn (C++: const func_t *) + @retval: 0 - 16 + @retval: 1 - 32 + @retval: 2 - 64 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 *) + get_func_bits(pfn) -> int + @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 *) + get_func_bytes(pfn) -> int + @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) + get_func_chunknum(pfn, ea) -> int + @param pfn (C++: func_t *) + @param ea (C++: ea_t) + @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 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. + get_func_cmt(pfn, repeatable) -> str + @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 + get_func_name(ea) -> str + @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'. + get_func_num(ea) -> int + @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) + get_func_ranges(ranges, pfn) -> ea_t + @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) @@ -12281,8 +11995,6 @@ 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) @@ -12292,173 +12004,140 @@ get_idasgn_desc_with_matches(*args) 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 + get_idasgn_title(name) -> str + @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 + get_next_fchunk(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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) - 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 + get_next_func(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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) get_next_func_addr(pfn, ea) -> ea_t + @param pfn (C++: func_t *) + @param ea (C++: 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 + get_prev_fchunk(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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) - 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 + get_prev_func(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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) get_prev_func_addr(pfn, ea) -> ea_t + @param pfn (C++: func_t *) + @param ea (C++: 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. + getn_fchunk(n) -> func_t + @param n: number of function chunk, is in range 0.. get_fchunk_qty() + -1 (C++: int) + @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) - 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. + getn_func(n) -> func_t + @param n: number of function, is in range 0.. get_func_qty() -1 (C++: + size_t) + @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) - is_finally_visible_func(pfn) -> bool - - Is the function visible (event after considering 'SCF_SHHID_FUNC' )? - - @param pfn (C++: func_t *) + is_finally_visible_func(pfn) -> bool + @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 *) + is_func_entry(pfn) -> bool + @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 *) + is_func_locked(pfn) -> bool + @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 *) + is_func_tail(pfn) -> bool + @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) + is_same_func(ea1, ea2) -> bool + @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 *) + is_visible_func(pfn) -> bool + @param pfn (C++: func_t *) Help on class lock_func in module ida_funcs: @@ -12469,6 +12148,7 @@ class lock_func(__builtin__.object) | | __init__(self, *args) | __init__(self, _pfn) -> lock_func + | _pfn: func_t const * | | __repr__ = _swig_repr(self) | @@ -12493,158 +12173,55 @@ class lock_func(__builtin__.object) 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) + lock_func_range(pfn, lock) + @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) + plan_to_apply_idasgn(fname) -> int + @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 read_regargs in module ida_funcs: read_regargs(*args) read_regargs(pfn) + @param pfn (C++: func_t *) 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) + reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) + @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_array in module ida_funcs: - -class regarg_array(__builtin__.object) - | Proxy of C++ dynamic_wrapped_array_t< regarg_t > class. - | - | Methods defined here: - | - | __getitem__(self, *args) - | __getitem__(self, i) -> regarg_t - | - | __init__(self, *args) - | __init__(self, _data, _count) -> regarg_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 - | regarg_array_count_get(self) -> size_t - | - | data - | regarg_array_data_get(self) -> regarg_t - | - | thisown - | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __swig_destroy__ = - | delete_regarg_array(self) + reanalyze_noret_flag(ea) -> bool + @param ea (C++: ea_t) Help on class regarg_t in module ida_funcs: @@ -12685,233 +12262,117 @@ class regarg_t(__builtin__.object) | __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) + remove_func_tail(pfn, tail_ea) -> bool + @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) + set_func_cmt(pfn, cmt, repeatable) -> bool + @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 + set_func_end(ea, newend) -> bool + @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 + set_func_name_if_jumpfunc(pfn, oldname) -> int + @param pfn: pointer to function (may be nullptr) (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 nullptr. (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 + set_func_start(ea, newstart) -> int + @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 + set_noret_insn(insn_ea, noret) -> 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) - 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) + set_tail_owner(fnt, func_start) -> bool + @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) + set_visible_func(pfn, visible) + @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) - 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 + try_to_add_libfunc(ea) -> int + @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 + update_func(pfn) -> bool + @param pfn: ptr to function structure (C++: func_t *) + @return: success === ida_funcs EPYDOC INJECTIONS === ida_funcs.FIND_FUNC_DEFINE @@ -13160,7 +12621,7 @@ class FlowChart(__builtin__.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) | @@ -13183,112 +12644,95 @@ class FlowChart(__builtin__.object) 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 + display_gdl(fname) -> int + @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 + gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool + @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 + gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool + @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 *) + gen_gdl(g, fname) + @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 + gen_simple_call_chart(filename, wait, title, gflags) -> bool + @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) + is_noret_block(btype) -> bool + @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) + is_ret_block(btype) -> bool + @param btype (C++: fc_block_type_t) Help on class node_iterator in module ida_gdl: @@ -13299,12 +12743,16 @@ class node_iterator(__builtin__.object) | | __eq__(self, *args) | __eq__(self, n) -> bool + | n: node_iterator const & | | __init__(self, *args) | __init__(self, _g, n) -> node_iterator + | _g: gdl_graph_t const * + | n: int | | __ne__(self, *args) | __ne__(self, n) -> bool + | n: node_iterator const & | | __ref__(self, *args) | __ref__(self) -> int @@ -13363,43 +12811,66 @@ class qbasic_block_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -13429,46 +12900,75 @@ class qflow_chart_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, n) -> qbasic_block_t + | n: int | | __init__(self, *args) | __init__(self) -> qflow_chart_t - | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | _title: char const * + | _pfn: func_t * + | _ea1: ea_t + | _ea2: ea_t + | _flags: int | | __repr__ = _swig_repr(self) | | append_to_flowchart(self, *args) | append_to_flowchart(self, ea1, ea2) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | calc_block_type(self, *args) | calc_block_type(self, blknum) -> fc_block_type_t + | @param blknum (C++: size_t) | | create(self, *args) | create(self, _title, _pfn, _ea1, _ea2, _flags) + | @param _title (C++: const char *) + | @param _pfn (C++: func_t *) + | @param _ea1 (C++: ea_t) + | @param _ea2 (C++: ea_t) + | @param _flags (C++: int) + | + | | create(self, _title, ranges, _flags) + | @param _title (C++: const char *) + | ranges: rangevec_t const & + | @param _flags (C++: int) | | get_node_label(self, *args) | get_node_label(self, arg2, arg3, arg4) -> char * + | arg2: char * + | arg3: int + | arg4: int | | is_noret_block(self, *args) | is_noret_block(self, blknum) -> bool + | @param blknum (C++: size_t) | | is_ret_block(self, *args) | is_ret_block(self, blknum) -> bool + | @param blknum (C++: size_t) | | npred(self, *args) | npred(self, node) -> int + | @param node (C++: int) | | nsucc(self, *args) | nsucc(self, node) -> int + | @param node (C++: int) | | pred(self, *args) | pred(self, node, i) -> int + | @param node (C++: int) + | @param i (C++: int) | | print_names(self, *args) | print_names(self) -> bool | | print_node_attributes(self, *args) | print_node_attributes(self, arg2, arg3) + | arg2: FILE * + | arg3: int | | refresh(self, *args) | refresh(self) @@ -13478,6 +12978,8 @@ class qflow_chart_t(__builtin__.object) | | succ(self, *args) | succ(self, node, i) -> int + | @param node (C++: int) + | @param i (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13579,6 +13081,11 @@ ida_gdl.FC_APPND multirange flowchart (set by append_to_flowchart) """ +ida_gdl.FC_CALL_ENDS +""" +call instructions terminate basic blocks +""" + ida_gdl.FC_CHKBREAK """ build_qflow_chart() may be aborted by user @@ -13592,9 +13099,9 @@ targets of those outgoing jumps will be present in the flow chart under the form of one-instruction blocks """ -ida_gdl.FC_PREDS +ida_gdl.FC_NOPREDS """ -compute predecessor lists +do not compute predecessor lists """ ida_gdl.FC_PRINT @@ -13805,7 +13312,10 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_kernwin.View_Hooks: @@ -13834,25 +13344,33 @@ class TPointDouble(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: TPointDouble const & | | __init__(self, *args) | __init__(self) -> TPointDouble - | __init__(self, a, b) -> TPointDouble + | a: double + | b: double + | + | | __init__(self, r) -> TPointDouble + | r: point_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: TPointDouble const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, r) + | @param r (C++: const TPointDouble &) | | negate(self, *args) | negate(self) | | sub(self, *args) | sub(self, r) + | @param r (C++: const TPointDouble &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13881,106 +13399,88 @@ class TPointDouble(__builtin__.object) 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) + calc_dist(p, q) -> double + @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) + clr_node_info(gid, node, flags) + @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'. + create_disasm_graph(ea) -> mutable_graph_t + @param ea (C++: ea_t) - @param ea (C++: ea_t) + + create_disasm_graph(ranges) -> mutable_graph_t + ranges: rangevec_t const & 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 + create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * + @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) + create_mutable_graph(id) -> mutable_graph_t + @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) + create_user_graph_place(node, lnnum) -> user_graph_place_t + @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) + del_node_info(gid, 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 *) + delete_mutable_graph(g) + @param g (C++: mutable_graph_t *) Help on class edge_info_t in module ida_graph: @@ -14068,19 +13568,26 @@ class edge_layout_point_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: edge_layout_point_t const & | | __init__(self, *args) | __init__(self) -> edge_layout_point_t - | __init__(self, r) -> edge_layout_point_t + | r: edge_layout_point_t const & + | + | | __init__(self, _e, _pidx) -> edge_layout_point_t + | _e: edge_t const & + | _pidx: int | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: edge_layout_point_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | @param r (C++: const edge_layout_point_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14118,6 +13625,7 @@ class edge_segment_t(__builtin__.object) | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: edge_segment_t const & | | __repr__ = _swig_repr(self) | @@ -14166,16 +13674,20 @@ class edge_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, y) -> bool + | y: edge_t const & | | __init__(self, *args) | __init__(self) -> edge_t - | __init__(self, x, y) -> edge_t + | x: int + | y: int | | __lt__(self, *args) | __lt__(self, y) -> bool + | y: edge_t const & | | __ne__(self, *args) | __ne__(self, y) -> bool + | y: edge_t const & | | __repr__ = _swig_repr(self) | @@ -14206,37 +13718,29 @@ class edge_t(__builtin__.object) 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 *) + get_graph_viewer(parent) -> graph_viewer_t * + @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 + get_node_info(out, gid, node) -> bool + @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 *) + get_viewer_graph(gv) -> mutable_graph_t + @param gv (C++: graph_viewer_t *) Help on class graph_item_t in module ida_graph: @@ -14303,23 +13807,37 @@ class graph_node_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_node_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | is_forbidden_edge(self, *args) + | Should the edge between 'n' and 'm' be ignored? + | | is_forbidden_edge(self, arg0, arg1) -> bool + | arg0: int + | arg1: int | | is_visited(self, *args) + | Have we already visited the given node? + | | is_visited(self, n) -> bool + | @param n (C++: int) | | reinit(self, *args) - | reinit(self) + | Reset visited nodes. | | set_visited(self, *args) + | Mark node as visited. + | | set_visited(self, n) + | @param n (C++: int) | | visit_node(self, *args) + | Implements action to take when a node is visited. + | | visit_node(self, arg0) -> int + | arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14350,14 +13868,17 @@ class graph_path_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_path_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | walk_backward(self, *args) | walk_backward(self, arg0) -> int + | arg0: int | | walk_forward(self, *args) | walk_forward(self, arg0) -> int + | arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14394,14 +13915,19 @@ class graph_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> graph_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_edge(self, *args) | visit_edge(self, arg2, arg3) -> int + | arg2: edge_t + | arg3: edge_info_t * | | visit_node(self, *args) | visit_node(self, arg2, arg3) -> int + | arg2: int + | arg3: rect_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14466,34 +13992,44 @@ class interval_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: interval_t const & | | __init__(self, *args) | __init__(self) -> interval_t - | __init__(self, y0, y1) -> interval_t + | y0: int + | y1: int + | + | | __init__(self, s) -> interval_t + | s: edge_segment_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: interval_t const & | | __repr__ = _swig_repr(self) | | contains(self, *args) | contains(self, x) -> bool + | @param x (C++: int) | | empty(self, *args) | empty(self) -> bool | | intersect(self, *args) | intersect(self, r) + | @param r (C++: const interval_t &) | | length(self, *args) | length(self) -> int | | make_union(self, *args) | make_union(self, r) + | @param r (C++: const interval_t &) | | move_by(self, *args) | move_by(self, shift) + | @param shift (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14534,9 +14070,12 @@ class mutable_graph_t(__builtin__.object) | | calc_group_ea(self, *args) | calc_group_ea(self, arg0) -> ea_t + | arg0: intvec_t const & | | change_group_visibility(self, *args) | change_group_visibility(self, group, expand) -> bool + | @param group (C++: int) + | @param expand (C++: bool) | | clear(self, *args) | clear(self) @@ -14546,88 +14085,115 @@ class mutable_graph_t(__builtin__.object) | | create_group(self, *args) | create_group(self, nodes) -> int + | @param nodes (C++: const intvec_t &) | | del_custom_layout(self, *args) | del_custom_layout(self) | | delete_group(self, *args) | delete_group(self, group) -> bool + | @param group (C++: int) | | empty(self, *args) | empty(self) -> bool | | exists(self, *args) | exists(self, node) -> bool + | @param node (C++: int) | | get_custom_layout(self, *args) | get_custom_layout(self) -> bool | | get_edge(self, *args) | get_edge(self, e) -> edge_info_t + | @param e (C++: edge_t) | | get_first_subgraph_node(self, *args) | get_first_subgraph_node(self, group) -> int + | @param group (C++: 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 + | @param group (C++: int) + | @param current (C++: int) | | get_node_group(self, *args) | get_node_group(self, node) -> int + | @param node (C++: int) | | get_node_representative(self, *args) | get_node_representative(self, node) -> int + | @param node (C++: int) | | is_collapsed_node(self, *args) | is_collapsed_node(self, node) -> bool + | @param node (C++: int) | | is_deleted_node(self, *args) | is_deleted_node(self, node) -> bool + | @param node (C++: int) | | is_displayable_node(self, *args) | is_displayable_node(self, node) -> bool + | @param node (C++: int) | | is_dot_node(self, *args) | is_dot_node(self, node) -> bool + | @param node (C++: int) | | is_group_node(self, *args) | is_group_node(self, node) -> bool + | @param node (C++: int) | | is_simple_node(self, *args) | is_simple_node(self, node) -> bool + | @param node (C++: int) | | is_subgraph_node(self, *args) | is_subgraph_node(self, node) -> bool + | @param node (C++: int) | | is_uncollapsed_node(self, *args) | is_uncollapsed_node(self, node) -> bool + | @param node (C++: int) | | is_user_graph(self, *args) | is_user_graph(self) -> bool | | is_visible_node(self, *args) | is_visible_node(self, node) -> bool + | @param node (C++: int) | | node_qty(self, *args) | node_qty(self) -> int | | npred(self, *args) | npred(self, b) -> int + | @param b (C++: int) | | nrect(self, *args) | nrect(self, n) -> rect_t + | @param n (C++: int) + | + | | nrect(self, n) -> rect_t + | @param n (C++: int) | | nsucc(self, *args) | nsucc(self, b) -> int + | @param b (C++: int) | | pred(self, *args) | pred(self, b, i) -> int + | @param b (C++: int) + | @param i (C++: int) | | predset(self, *args) | predset(self, b) -> intvec_t const & + | @param b (C++: int) | | reset(self, *args) | reset(self) @@ -14637,24 +14203,32 @@ class mutable_graph_t(__builtin__.object) | | set_deleted_node(self, *args) | set_deleted_node(self, node) + | @param node (C++: int) | | set_edge(self, *args) | set_edge(self, e, ei) -> bool + | @param e (C++: edge_t) + | @param ei (C++: const edge_info_t *) | | set_graph_groups(self, *args) | set_graph_groups(self) | | set_node_group(self, *args) | set_node_group(self, node, group) + | @param node (C++: int) + | @param group (C++: int) | | size(self, *args) | size(self) -> int | | succ(self, *args) | succ(self, b, i) -> int + | @param b (C++: int) + | @param i (C++: int) | | succset(self, *args) | succset(self, b) -> intvec_t const & + | @param b (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14714,22 +14288,23 @@ class node_info_t(__builtin__.object) | __repr__ = _swig_repr(self) | | get_flags_for_valid(self, *args) - | get_flags_for_valid(self) -> uint32 + | Get combination of 'Node info flags' describing which attributes are + | valid. | | valid_bg_color(self, *args) - | valid_bg_color(self) -> bool + | Has valid 'bg_color' ? | | valid_ea(self, *args) - | valid_ea(self) -> bool + | Has valid 'ea' ? | | valid_flags(self, *args) - | valid_flags(self) -> bool + | Has valid 'flags' ? | | valid_frame_color(self, *args) - | valid_frame_color(self) -> bool + | Has valid 'frame_color' ? | | valid_text(self, *args) - | valid_text(self) -> bool + | Has non-empty 'text' ? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14773,13 +14348,15 @@ class node_layout_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< rect_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> rect_t + | i: size_t | | __init__(self, *args) | __init__(self) -> node_layout_t - | __init__(self, x) -> node_layout_t + | x: qvector< rect_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -14789,20 +14366,26 @@ class node_layout_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< rect_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: rect_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: rect_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: rect_t const & | | at(self, *args) | at(self, _idx) -> rect_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -14826,52 +14409,74 @@ class node_layout_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> rect_t + | it: qvector< rect_t >::iterator + | + | | erase(self, first, last) -> rect_t + | first: qvector< rect_t >::iterator + | last: qvector< rect_t >::iterator | | extract(self, *args) | extract(self) -> rect_t | | find(self, *args) | find(self, x) -> rect_t + | x: rect_t const & + | + | | find(self, x) -> rect_t + | x: rect_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=rect_t()) + | x: rect_t const & | | has(self, *args) | has(self, x) -> bool + | x: rect_t const & | | inject(self, *args) | inject(self, s, len) + | s: rect_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> rect_t + | it: qvector< rect_t >::iterator + | x: rect_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> rect_t + | x: rect_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: rect_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< rect_t > & | | truncate(self, *args) | truncate(self) @@ -14911,12 +14516,16 @@ class node_ordering_t(__builtin__.object) | | node(self, *args) | node(self, _order) -> int + | @param _order (C++: size_t) | | resize(self, *args) | resize(self, n) + | @param n (C++: int) | | set(self, *args) | set(self, _node, num) + | @param _node (C++: int) + | @param num (C++: int) | | size(self, *args) | size(self) -> size_t @@ -14948,24 +14557,29 @@ class point_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: point_t const & | | __init__(self, *args) | __init__(self) -> point_t - | __init__(self, _x, _y) -> point_t + | _x: int + | _y: int | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: point_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, r) -> point_t + | @param r (C++: const point_t &) | | negate(self, *args) | negate(self) | | sub(self, *args) | sub(self, r) -> point_t + | @param r (C++: const point_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15025,9 +14639,11 @@ class pointseq_t(pointvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< point_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> point_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15037,18 +14653,24 @@ class pointseq_t(pointvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< point_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: point_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: point_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: point_t const & | | at(self, *args) | at(self, _idx) -> point_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15072,52 +14694,74 @@ class pointseq_t(pointvec_t) | | erase(self, *args) | erase(self, it) -> point_t + | it: qvector< point_t >::iterator + | + | | erase(self, first, last) -> point_t + | first: qvector< point_t >::iterator + | last: qvector< point_t >::iterator | | extract(self, *args) | extract(self) -> point_t | | find(self, *args) | find(self, x) -> point_t + | x: point_t const & + | + | | find(self, x) -> point_t + | x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=point_t()) + | x: point_t const & | | has(self, *args) | has(self, x) -> bool + | x: point_t const & | | inject(self, *args) | inject(self, s, len) + | s: point_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> point_t + | it: qvector< point_t >::iterator + | x: point_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> point_t + | x: point_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: point_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< point_t > & | | truncate(self, *args) | truncate(self) @@ -15140,13 +14784,15 @@ class pointvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< point_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> point_t + | i: size_t | | __init__(self, *args) | __init__(self) -> pointvec_t - | __init__(self, x) -> pointvec_t + | x: qvector< point_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15156,20 +14802,26 @@ class pointvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< point_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: point_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: point_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: point_t const & | | at(self, *args) | at(self, _idx) -> point_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15193,52 +14845,74 @@ class pointvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> point_t + | it: qvector< point_t >::iterator + | + | | erase(self, first, last) -> point_t + | first: qvector< point_t >::iterator + | last: qvector< point_t >::iterator | | extract(self, *args) | extract(self) -> point_t | | find(self, *args) | find(self, x) -> point_t + | x: point_t const & + | + | | find(self, x) -> point_t + | x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=point_t()) + | x: point_t const & | | has(self, *args) | has(self, x) -> bool + | x: point_t const & | | inject(self, *args) | inject(self, s, len) + | s: point_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> point_t + | it: qvector< point_t >::iterator + | x: point_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> point_t + | x: point_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: point_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< point_t > & | | truncate(self, *args) | truncate(self) @@ -15265,16 +14939,20 @@ Help on function pyg_close in module ida_graph: pyg_close(*args) pyg_close(_self) + self: PyObject * Help on function pyg_select_node in module ida_graph: pyg_select_node(*args) pyg_select_node(_self, nid) + self: PyObject * + nid: int Help on function pyg_show in module ida_graph: pyg_show(*args) pyg_show(_self) -> bool + self: PyObject * Help on class rect_t in module ida_graph: @@ -15285,14 +14963,23 @@ class rect_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: rect_t const & | | __init__(self, *args) | __init__(self) -> rect_t - | __init__(self, l, t, r, b) -> rect_t + | l: int + | t: int + | r: int + | b: int + | + | | __init__(self, p0, p1) -> rect_t + | p0: point_t const & + | p1: point_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: rect_t const & | | __repr__ = _swig_repr(self) | @@ -15307,30 +14994,37 @@ class rect_t(__builtin__.object) | | contains(self, *args) | contains(self, p) -> bool + | @param p (C++: const point_t &) | | empty(self, *args) | empty(self) -> bool | | grow(self, *args) | grow(self, delta) + | @param delta (C++: int) | | height(self, *args) | height(self) -> int | | intersect(self, *args) | intersect(self, r) + | @param r (C++: const rect_t &) | | is_intersection_empty(self, *args) | is_intersection_empty(self, r) -> bool + | @param r (C++: const rect_t &) | | make_union(self, *args) | make_union(self, r) + | @param r (C++: const rect_t &) | | move_by(self, *args) | move_by(self, p) + | @param p (C++: const point_t &) | | move_to(self, *args) | move_to(self, p) + | @param p (C++: const point_t &) | | topleft(self, *args) | topleft(self) -> point_t @@ -15371,13 +15065,10 @@ class rect_t(__builtin__.object) 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 *) + refresh_viewer(gv) + @param gv (C++: graph_viewer_t *) Help on class row_info_t in module ida_graph: @@ -15430,13 +15121,15 @@ class screen_graph_selection_base_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> selection_item_t + | i: size_t | | __init__(self, *args) | __init__(self) -> screen_graph_selection_base_t - | __init__(self, x) -> screen_graph_selection_base_t + | 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. @@ -15446,20 +15139,26 @@ class screen_graph_selection_base_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: selection_item_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: selection_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: selection_item_t const & | | at(self, *args) | at(self, _idx) -> selection_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15483,52 +15182,74 @@ class screen_graph_selection_base_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | + | | erase(self, first, last) -> selection_item_t + | first: qvector< selection_item_t >::iterator + | last: qvector< selection_item_t >::iterator | | extract(self, *args) | extract(self) -> selection_item_t | | find(self, *args) | find(self, x) -> selection_item_t + | x: selection_item_t const & + | + | | find(self, x) -> selection_item_t + | x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=selection_item_t()) + | x: selection_item_t const & | | has(self, *args) | has(self, x) -> bool + | x: selection_item_t const & | | inject(self, *args) | inject(self, s, len) + | s: selection_item_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | x: selection_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> selection_item_t + | x: selection_item_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: selection_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< selection_item_t > & | | truncate(self, *args) | truncate(self) @@ -15570,24 +15291,33 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | add(self, *args) | add(self, s) + | @param s (C++: const screen_graph_selection_t &) | | add_node(self, *args) | add_node(self, node) + | @param node (C++: int) | | add_point(self, *args) | add_point(self, e, idx) + | @param e (C++: edge_t) + | @param idx (C++: int) | | del_node(self, *args) | del_node(self, node) + | @param node (C++: int) | | del_point(self, *args) | del_point(self, e, idx) + | @param e (C++: edge_t) + | @param idx (C++: int) | | has(self, *args) | has(self, item) -> bool + | @param item (C++: const selection_item_t &) | | items_count(self, *args) | items_count(self, look_for_nodes) -> size_t + | @param look_for_nodes (C++: bool) | | nodes_count(self, *args) | nodes_count(self) -> size_t @@ -15597,6 +15327,7 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | sub(self, *args) | sub(self, s) + | @param s (C++: const screen_graph_selection_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15615,9 +15346,11 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> selection_item_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15627,18 +15360,24 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: selection_item_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: selection_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: selection_item_t const & | | at(self, *args) | at(self, _idx) -> selection_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15662,49 +15401,70 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | erase(self, *args) | erase(self, it) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | + | | erase(self, first, last) -> selection_item_t + | first: qvector< selection_item_t >::iterator + | last: qvector< selection_item_t >::iterator | | extract(self, *args) | extract(self) -> selection_item_t | | find(self, *args) | find(self, x) -> selection_item_t + | x: selection_item_t const & + | + | | find(self, x) -> selection_item_t + | x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=selection_item_t()) + | x: selection_item_t const & | | inject(self, *args) | inject(self, s, len) + | s: selection_item_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | x: selection_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> selection_item_t + | x: selection_item_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: selection_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< selection_item_t > & | | truncate(self, *args) | truncate(self) @@ -15727,23 +15487,34 @@ class selection_item_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: selection_item_t const & | | __init__(self, *args) | __init__(self) -> selection_item_t - | __init__(self, n) -> selection_item_t + | n: int + | + | | __init__(self, _elp) -> selection_item_t + | _elp: edge_layout_point_t & + | + | | __init__(self, e, idx) -> selection_item_t + | e: edge_t + | idx: int | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: selection_item_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: selection_item_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | @param r (C++: const selection_item_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15775,28 +15546,23 @@ class selection_item_t(__builtin__.object) 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) + set_node_info(gid, node, ni, flags) + @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 *) + set_viewer_graph(gv, g) + @param gv (C++: graph_viewer_t *) + @param g (C++: mutable_graph_t *) Help on class user_graph_place_t in module ida_graph: @@ -15833,34 +15599,26 @@ class user_graph_place_t(__builtin__.object) 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 + viewer_attach_menu_item(g, name) -> bool + @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) + viewer_center_on(gv, 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 @@ -15870,151 +15628,123 @@ viewer_create_groups(*args) 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 &) + viewer_create_groups(gv, out_group_nodes, gi) -> bool + @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) + viewer_del_node_info(gv, n) + @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) + viewer_delete_groups(gv, groups, new_current=-1) -> bool + @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 *) + viewer_fit_window(gv) + @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 *) + viewer_get_curnode(gv) -> int + @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) + viewer_get_gli(out, gv, flags=0) -> bool + @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) + viewer_get_node_info(gv, out, n) -> bool + @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 *) + viewer_get_selection(gv, sgs) -> bool + @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) + viewer_set_gli(gv, gli, flags=0) + @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) + viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool + @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) + viewer_set_node_info(gv, n, ni, flags) + @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) + viewer_set_titlebar_height(gv, height) -> int + @param gv (C++: graph_viewer_t *) + @param height (C++: int) === ida_graph EPYDOC INJECTIONS === ida_graph.GLICTL_CENTER @@ -16041,27 +15771,27 @@ slowing down significantly (see MAX_VISIBLE_NODE_AREA) ida_graph.NIF_BG_COLOR """ - 'node_info_t::bg_color' +'node_info_t::bg_color' """ ida_graph.NIF_EA """ - 'node_info_t::ea' +'node_info_t::ea' """ ida_graph.NIF_FLAGS """ - 'node_info_t::flags' +'node_info_t::flags' """ ida_graph.NIF_FRAME_COLOR """ - 'node_info_t::frame_color' +'node_info_t::frame_color' """ ida_graph.NIF_TEXT """ - 'node_info_t::text' +'node_info_t::text' """ === ida_graph EPYDOC INJECTIONS END === Help on class DecompilationFailure in module ida_hexrays: @@ -16146,104 +15876,245 @@ class Hexrays_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> Hexrays_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | | close_pseudocode(self, *args) + | Pseudocode view is being closed. + | | close_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | cmt_changed(self, *args) + | Comment got changed. + | | cmt_changed(self, cfunc, loc, cmt) -> int + | @param cfunc (C++: cfunc_t *) + | @param loc (C++: const treeloc_t *) + | @param cmt (C++: const char *) | | combine(self, *args) + | Trying to combine instructions of basic block. + | | combine(self, blk, insn) -> int + | @param blk (C++: mblock_t *) + | @param insn: Should return: 1 if combined the current instruction with + | a preceding one (C++: minsn_t *) | | create_hint(self, *args) + | Create a hint for the current item. + | | create_hint(self, vu) -> PyObject * + | @param vu (C++: vdui_t *) | | curpos(self, *args) + | Current cursor position has been changed. (for example, by left- + | clicking or using keyboard) + | | curpos(self, vu) -> int + | @param vu (C++: vdui_t *) | | double_click(self, *args) + | Mouse double click. + | | double_click(self, vu, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | flowchart(self, *args) + | Flowchart has been generated. + | | flowchart(self, fc) -> int + | @param fc (C++: qflow_chart_t *) | | func_printed(self, *args) + | Function text has been generated. Plugins may modify the text in + | 'cfunc_t::sv' . + | | func_printed(self, cfunc) -> int + | @param cfunc (C++: cfunc_t *) | | glbopt(self, *args) + | Global optimization has been finished. If microcode is modified, + | MERR_LOOP must be returned. It will cause a complete restart of the + | optimization. + | | glbopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | hook(self, *args) | hook(self) -> bool | | interr(self, *args) + | Internal error has occurred. + | | interr(self, errcode) -> int + | @param errcode (C++: int ) | | keyboard(self, *args) + | Keyboard has been hit. + | | keyboard(self, vu, key_code, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param key_code: VK_... (C++: int) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | locopt(self, *args) + | Basic block level optimization has been finished. + | | locopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | lvar_cmt_changed(self, *args) + | Local variable comment got changed. + | | lvar_cmt_changed(self, vu, v, cmt) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param cmt: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | char *) | | lvar_mapping_changed(self, *args) + | Local variable mapping got changed. + | | lvar_mapping_changed(self, vu, frm, to) -> int + | @param vu (C++: vdui_t *) + | @param frm (C++: lvar_t *) + | @param to: Please note that it is possible to read/write user settings + | for lvars directly from the idb. (C++: lvar_t *) | | lvar_name_changed(self, *args) + | Local variable got renamed. + | | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param name (C++: const char *) + | @param is_user_name: Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | (C++: bool) | | lvar_type_changed(self, *args) + | Local variable type got changed. + | | lvar_type_changed(self, vu, v, tinfo) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param tinfo: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | tinfo_t *) | | maturity(self, *args) + | Ctree maturity level is being changed. + | | maturity(self, cfunc, new_maturity) -> int + | @param cfunc (C++: cfunc_t *) + | @param new_maturity (C++: ctree_maturity_t) | | microcode(self, *args) + | Microcode has been generated. + | | microcode(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | open_pseudocode(self, *args) + | New pseudocode view has been opened. + | | open_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | populating_popup(self, *args) + | Populating popup menu. We can add menu items now. + | | populating_popup(self, widget, popup_handle, vu) -> int + | @param widget (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param vu (C++: vdui_t *) | | prealloc(self, *args) + | Local variables: preallocation step begins. + | | prealloc(self, mba) -> int + | @param mba: This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error + | codes error codes (C++: mba_t *) | | preoptimized(self, *args) + | Microcode has been preoptimized. + | | preoptimized(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | print_func(self, *args) + | Printing ctree and generating text. + | | print_func(self, cfunc, vp) -> int + | @param cfunc (C++: cfunc_t *) + | @param vp: Returns: 1 if text has been generated by the plugin (C++: + | vc_printer_t *) | | prolog(self, *args) + | Prolog analysis has been finished. + | | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | @param mba (C++: mba_t *) + | @param fc (C++: qflow_chart_t *) + | @param reachable_blocks (C++: bitset_t *) + | @param decomp_flags: return Microcode error codes code (C++: int) | | refresh_pseudocode(self, *args) + | Existing pseudocode text has been refreshed. Adding/removing + | pseudocode lines is forbidden in this event. + | | refresh_pseudocode(self, vu) -> int + | @param vu: See also hxe_text_ready, which happens earlier (C++: + | vdui_t *) | | resolve_stkaddrs(self, *args) + | The optimizer is about to resolve stack addresses. + | | resolve_stkaddrs(self, mba) -> int + | @param mba (C++: mba_t *) | | right_click(self, *args) + | Mouse right click. Use hxe_populating_popup instead, in case you want + | to add items in the popup menu. + | | right_click(self, vu) -> int + | @param vu (C++: vdui_t *) | | stkpnts(self, *args) + | SP change points have been calculated. + | | stkpnts(self, mba, _sps) -> int + | @param mba (C++: mba_t *) + | _sps: stkpnts_t * | | structural(self, *args) + | Structural analysis has been finished. + | | structural(self, ct) -> int + | @param ct (C++: control_graph_t *) | | switch_pseudocode(self, *args) + | Existing pseudocode view has been reloaded with a new function. Its + | text has not been refreshed yet, only cfunc and mba pointers are + | ready. + | | switch_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | text_ready(self, *args) + | Decompiled text is ready. + | | text_ready(self, vu) -> int + | @param vu: This event can be used to modify the output text (sv). The + | text uses regular color codes (see lines.hpp) COLOR_ADDR is + | used to store pointers to ctree elements (C++: vdui_t *) | | unhook(self, *args) | unhook(self) -> bool @@ -16321,55 +16192,131 @@ class __cbhooks_t(Hexrays_Hooks) | __repr__ = _swig_repr(self) | | cmt_changed(self, *args) + | Comment got changed. + | | cmt_changed(self, cfunc, loc, cmt) -> int + | @param cfunc (C++: cfunc_t *) + | @param loc (C++: const treeloc_t *) + | @param cmt (C++: const char *) | | combine(self, *args) + | Trying to combine instructions of basic block. + | | combine(self, blk, insn) -> int + | @param blk (C++: mblock_t *) + | @param insn: Should return: 1 if combined the current instruction with + | a preceding one (C++: minsn_t *) | | flowchart(self, *args) + | Flowchart has been generated. + | | flowchart(self, fc) -> int + | @param fc (C++: qflow_chart_t *) | | glbopt(self, *args) + | Global optimization has been finished. If microcode is modified, + | MERR_LOOP must be returned. It will cause a complete restart of the + | optimization. + | | glbopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | hook(self, *args) | hook(self) -> bool | | locopt(self, *args) + | Basic block level optimization has been finished. + | | locopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | lvar_cmt_changed(self, *args) + | Local variable comment got changed. + | | lvar_cmt_changed(self, vu, v, cmt) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param cmt: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | char *) | | lvar_mapping_changed(self, *args) + | Local variable mapping got changed. + | | lvar_mapping_changed(self, vu, frm, to) -> int + | @param vu (C++: vdui_t *) + | @param frm (C++: lvar_t *) + | @param to: Please note that it is possible to read/write user settings + | for lvars directly from the idb. (C++: lvar_t *) | | lvar_name_changed(self, *args) + | Local variable got renamed. + | | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param name (C++: const char *) + | @param is_user_name: Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | (C++: bool) | | lvar_type_changed(self, *args) + | Local variable type got changed. + | | lvar_type_changed(self, vu, v, tinfo) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param tinfo: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | tinfo_t *) | | microcode(self, *args) + | Microcode has been generated. + | | microcode(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | prealloc(self, *args) + | Local variables: preallocation step begins. + | | prealloc(self, mba) -> int + | @param mba: This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error + | codes error codes (C++: mba_t *) | | preoptimized(self, *args) + | Microcode has been preoptimized. + | | preoptimized(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | prolog(self, *args) + | Prolog analysis has been finished. + | | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | @param mba (C++: mba_t *) + | @param fc (C++: qflow_chart_t *) + | @param reachable_blocks (C++: bitset_t *) + | @param decomp_flags: return Microcode error codes code (C++: int) | | resolve_stkaddrs(self, *args) + | The optimizer is about to resolve stack addresses. + | | resolve_stkaddrs(self, mba) -> int + | @param mba (C++: mba_t *) | | stkpnts(self, *args) + | SP change points have been calculated. + | | stkpnts(self, mba, _sps) -> int + | @param mba (C++: mba_t *) + | _sps: stkpnts_t * | | structural(self, *args) + | Structural analysis has been finished. + | | structural(self, ct) -> int + | @param ct (C++: control_graph_t *) | | unhook(self, *args) | unhook(self) -> bool @@ -16397,40 +16344,58 @@ 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) - _kludge_use_TPopupMenu(m) +_kludge_force_declare_TPopupMenu(*args) + _kludge_force_declare_TPopupMenu(arg1) + arg1: TPopupMenu const * Help on function _ll_call_helper in module ida_hexrays: _ll_call_helper(*args) _ll_call_helper(rettype, args, format) -> cexpr_t + rettype: tinfo_t const & + args: carglist_t * + format: char const * Help on function _ll_create_helper in module ida_hexrays: _ll_create_helper(*args) _ll_create_helper(standalone, type, format) -> cexpr_t + standalone: bool + type: tinfo_t const & + format: char const * Help on function _ll_dereference in module ida_hexrays: _ll_dereference(*args) _ll_dereference(e, ptrsize, is_flt=False) -> cexpr_t + e: cexpr_t * + ptrsize: int + is_flt: bool Help on function _ll_lnot in module ida_hexrays: _ll_lnot(*args) _ll_lnot(e) -> cexpr_t + 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 + 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) _ll_make_ref(e) -> cexpr_t + e: cexpr_t * Help on function _ll_new_block in module ida_hexrays: @@ -16445,32 +16410,27 @@ _map_as_dict(maptype, name, keytype, valuetype) 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) + accepts_small_udts(op) -> bool + @param op (C++: ctype_t) Help on function accepts_udts in module ida_hexrays: accepts_udts(*args) accepts_udts(op) -> bool + @param op (C++: ctype_t) 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) + arglocs_overlap(loc1, w1, loc2, w2) -> bool + @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: @@ -16481,13 +16441,15 @@ class array_of_bitsets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< bitset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> bitset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_bitsets - | __init__(self, x) -> array_of_bitsets + | x: qvector< bitset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16497,20 +16459,26 @@ class array_of_bitsets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< bitset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: bitset_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: bitset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: bitset_t const & | | at(self, *args) | at(self, _idx) -> bitset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -16534,52 +16502,74 @@ class array_of_bitsets(__builtin__.object) | | erase(self, *args) | erase(self, it) -> bitset_t + | it: qvector< bitset_t >::iterator + | + | | erase(self, first, last) -> bitset_t + | first: qvector< bitset_t >::iterator + | last: qvector< bitset_t >::iterator | | extract(self, *args) | extract(self) -> bitset_t | | find(self, *args) | find(self, x) -> bitset_t + | x: bitset_t const & + | + | | find(self, x) -> bitset_t + | x: bitset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=bitset_t()) + | x: bitset_t const & | | has(self, *args) | has(self, x) -> bool + | x: bitset_t const & | | inject(self, *args) | inject(self, s, len) + | s: bitset_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> bitset_t + | it: qvector< bitset_t >::iterator + | x: bitset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> bitset_t + | x: bitset_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: bitset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< bitset_t > & | | truncate(self, *args) | truncate(self) @@ -16611,13 +16601,15 @@ class array_of_ivlsets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< ivlset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ivlset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_ivlsets - | __init__(self, x) -> array_of_ivlsets + | x: qvector< ivlset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16627,20 +16619,26 @@ class array_of_ivlsets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< ivlset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: ivlset_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: ivlset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: ivlset_t const & | | at(self, *args) | at(self, _idx) -> ivlset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -16664,52 +16662,74 @@ class array_of_ivlsets(__builtin__.object) | | erase(self, *args) | erase(self, it) -> ivlset_t + | it: qvector< ivlset_t >::iterator + | + | | erase(self, first, last) -> ivlset_t + | first: qvector< ivlset_t >::iterator + | last: qvector< ivlset_t >::iterator | | extract(self, *args) | extract(self) -> ivlset_t | | find(self, *args) | find(self, x) -> ivlset_t + | x: ivlset_t const & + | + | | find(self, x) -> ivlset_t + | x: ivlset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ivlset_t()) + | x: ivlset_t const & | | has(self, *args) | has(self, x) -> bool + | x: ivlset_t const & | | inject(self, *args) | inject(self, s, len) + | s: ivlset_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> ivlset_t + | it: qvector< ivlset_t >::iterator + | x: ivlset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> ivlset_t + | x: ivlset_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: ivlset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< ivlset_t > & | | truncate(self, *args) | truncate(self) @@ -16735,27 +16755,22 @@ class array_of_ivlsets(__builtin__.object) 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) + asgop(cop) -> ctype_t + @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. + asgop_revert(cop) -> ctype_t + @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: @@ -16766,6 +16781,8 @@ class bit_bound_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=0, s=0) -> bit_bound_t + | n: int + | s: int | | __repr__ = _swig_repr(self) | @@ -16802,58 +16819,75 @@ class bitset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: bitset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: bitset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: bitset_t const & | | __init__(self, *args) | __init__(self) -> bitset_t - | __init__(self, m) -> bitset_t + | m: bitset_t const & | | __iter__(self) | | __le__(self, *args) | __le__(self, r) -> bool + | r: bitset_t const & | | __len__ = count(self, *args) | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: bitset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: bitset_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, bit) -> bool + | @param bit (C++: int) + | + | | add(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | add(self, ml) -> bool + | ml: bitset_t const & | | back(self, *args) | back(self) -> int | | begin(self, *args) - | begin(self) -> bitset_t::iterator + | begin(self) -> iterator | | clear(self, *args) | clear(self) | | compare(self, *args) | compare(self, r) -> int + | r: bitset_t const & | | copy(self, *args) | copy(self, m) -> bitset_t + | @param m (C++: const bitset_t &) | | count(self, *args) | count(self) -> int - | count(self, bit) -> int + | bit: int | | cut_at(self, *args) | cut_at(self, maxbit) -> bool + | @param maxbit (C++: int) | | dstr(self, *args) | dstr(self) -> char const * @@ -16862,57 +16896,81 @@ class bitset_t(__builtin__.object) | empty(self) -> bool | | end(self, *args) - | end(self) -> bitset_t::iterator + | end(self) -> iterator | | fill_with_ones(self, *args) | fill_with_ones(self, maxbit) + | @param maxbit (C++: int) | | front(self, *args) | front(self) -> int | | has(self, *args) | has(self, bit) -> bool + | @param bit (C++: int) | | has_all(self, *args) | has_all(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_any(self, *args) | has_any(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_common(self, *args) | has_common(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | inc(self, *args) | inc(self, p, n=1) + | @param p (C++: iterator &) + | @param n (C++: int) | | includes(self, *args) | includes(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | intersect(self, *args) | intersect(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | is_subset_of(self, *args) | is_subset_of(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | itat(self, *args) - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | @param n (C++: int) | | itv(self, *args) | itv(self, it) -> int + | it: bitset_t::const_iterator | | last(self, *args) | last(self) -> int | | shift_down(self, *args) | shift_down(self, shift) + | @param shift (C++: int) | | sub(self, *args) | sub(self, bit) -> bool + | @param bit (C++: int) + | + | | sub(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | sub(self, ml) -> bool + | ml: bitset_t const & | | swap(self, *args) | swap(self, r) + | @param r (C++: bitset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16935,93 +16993,69 @@ class bitset_t(__builtin__.object) 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 *) + block_chains_begin(set) -> block_chains_iterator_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 *) + block_chains_clear(set) + @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 *) + block_chains_end(set) -> block_chains_iterator_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) + block_chains_erase(set, p) + @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 &) + block_chains_find(set, val) -> block_chains_iterator_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 *) + block_chains_free(set) + @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) + block_chains_get(p) -> chain_t + @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 &) + block_chains_insert(set, val) -> block_chains_iterator_t + @param set (C++: block_chains_t *) + @param val (C++: const chain_t &) Help on class block_chains_iterator_t in module ida_hexrays: @@ -17032,12 +17066,14 @@ class block_chains_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: block_chains_iterator_t const & | | __init__(self, *args) | __init__(self) -> block_chains_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: block_chains_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -17065,43 +17101,31 @@ class block_chains_iterator_t(__builtin__.object) 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) + block_chains_next(p) -> 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_prev(p) -> block_chains_iterator_t - - Move to the previous element. - - @param p (C++: block_chains_iterator_t) + block_chains_prev(p) -> 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) - block_chains_size(set) -> size_t - - Get size of 'block_chains_t' . - - @param set (C++: block_chains_t *) + block_chains_size(set) -> size_t + @param set (C++: block_chains_t *) Help on class block_chains_t in module ida_hexrays: @@ -17122,18 +17146,50 @@ class block_chains_t(__builtin__.object) | dstr(self) -> char const * | | get_chain(self, *args) + | Get chain for the specified value offset. + | | get_chain(self, k, width=1) -> chain_t + | @param k: value offset (register number or stack offset) (C++: const + | voff_t &) + | @param width: size of value in bytes (C++: int) + | + | | get_chain(self, k, width=1) -> chain_t + | @param k: value offset (register number or stack offset) (C++: const + | voff_t &) + | @param width: size of value in bytes (C++: int) + | + | | get_chain(self, ch) -> chain_t + | ch: chain_t const & + | + | | get_chain(self, ch) -> chain_t + | ch: chain_t const & | | get_reg_chain(self, *args) + | Get chain for the specified register + | | get_reg_chain(self, reg, width=1) -> chain_t + | @param reg: register number (C++: mreg_t) + | @param width: size of register in bytes (C++: int) + | + | | get_reg_chain(self, reg, width=1) -> chain_t + | @param reg: register number (C++: mreg_t) + | @param width: size of register in bytes (C++: int) | | get_stk_chain(self, *args) + | Get chain for the specified stack offset + | | get_stk_chain(self, off, width=1) -> chain_t + | @param off: stack offset (C++: sval_t) + | @param width: size of stack value in bytes (C++: int) + | + | | get_stk_chain(self, off, width=1) -> chain_t + | @param off: stack offset (C++: sval_t) + | @param width: size of stack value in bytes (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17162,10 +17218,11 @@ class block_chains_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> block_chains_t + | i: size_t | | __init__(self, *args) | __init__(self) -> block_chains_vec_t - | __init__(self, x) -> block_chains_vec_t + | 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. @@ -17177,9 +17234,12 @@ class block_chains_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: block_chains_t const & | | at(self, *args) | at(self, _idx) -> block_chains_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -17203,7 +17263,12 @@ class block_chains_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | + | | erase(self, first, last) -> block_chains_t + | first: qvector< block_chains_t >::iterator + | last: qvector< block_chains_t >::iterator | | extract(self, *args) | extract(self) -> block_chains_t @@ -17213,35 +17278,47 @@ class block_chains_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=block_chains_t()) + | x: block_chains_t const & | | inject(self, *args) | inject(self, s, len) + | s: block_chains_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | x: block_chains_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> block_chains_t + | x: block_chains_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: block_chains_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< block_chains_t > & | | truncate(self, *args) | truncate(self) @@ -17267,94 +17344,70 @@ class block_chains_vec_t(__builtin__.object) 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 *) + boundaries_begin(map) -> boundaries_iterator_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 *) + boundaries_clear(map) + @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 *) + boundaries_end(map) -> boundaries_iterator_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) + boundaries_erase(map, p) + @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 *&) + boundaries_find(map, key) -> boundaries_iterator_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) + boundaries_first(p) -> cinsn_t + @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 *) + boundaries_free(map) + @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 &) + boundaries_insert(map, key, val) -> boundaries_iterator_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: @@ -17365,12 +17418,14 @@ class boundaries_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: boundaries_iterator_t const & | | __init__(self, *args) | __init__(self) -> boundaries_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: boundaries_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -17398,54 +17453,39 @@ class boundaries_iterator_t(__builtin__.object) 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) + boundaries_next(p) -> boundaries_iterator_t + @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) + boundaries_prev(p) -> boundaries_iterator_t + @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) + boundaries_second(p) -> rangeset_t + @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 *) + boundaries_size(map) -> size_t + @param map (C++: boundaries_t *) Help on class boundaries_t in module ida_hexrays: @@ -17479,6 +17519,7 @@ class boundaries_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> rangeset_t + | _Keyval: cinsn_t *const & | | begin lambda self, *args | @@ -17544,33 +17585,77 @@ class boundaries_t(__builtin__.object) | | __begin = | boundaries_begin(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * | | __clear = | boundaries_clear(map) + | + | Parameters + | ---------- + | map: boundaries_t * | | __end = | boundaries_end(map) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * | | __erase = | boundaries_erase(map, p) + | + | Parameters + | ---------- + | map: boundaries_t * + | p: boundaries_iterator_t | | __find = | boundaries_find(map, key) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t const * + | key: cinsn_t const * | | __first = | boundaries_first(p) -> cinsn_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __insert = | boundaries_insert(map, key, val) -> boundaries_iterator_t + | + | Parameters + | ---------- + | map: boundaries_t * + | key: cinsn_t const * + | val: rangeset_t const & | | __next = | boundaries_next(p) -> boundaries_iterator_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __second = | boundaries_second(p) -> rangeset_t + | + | Parameters + | ---------- + | p: boundaries_iterator_t | | __size = | boundaries_size(map) -> size_t + | + | Parameters + | ---------- + | map: boundaries_t * | | __swig_destroy__ = | delete_boundaries_t(self) @@ -17600,32 +17685,40 @@ class carg_t(cexpr_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: carg_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: carg_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: carg_t const & | | __init__(self, *args) | __init__(self) -> carg_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: carg_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: carg_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: carg_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: carg_t const & | | consume_cexpr(self, *args) | consume_cexpr(self, e) + | @param e (C++: cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17695,119 +17788,194 @@ class carg_t(cexpr_t) | | _replace_by(self, *args) | _replace_by(self, r) + | r: cexpr_t * | | _set_a(self, *args) | _set_a(self, _v) + | _v: carglist_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_helper(self, *args) | _set_helper(self, _v) + | _v: char * | | _set_insn(self, *args) | _set_insn(self, _v) + | _v: cinsn_t * | | _set_m(self, *args) | _set_m(self, _v) + | _v: int | | _set_n(self, *args) | _set_n(self, _v) + | _v: cnumber_t * | | _set_obj_ea(self, *args) | _set_obj_ea(self, _v) + | _v: ea_t | | _set_ptrsize(self, *args) | _set_ptrsize(self, _v) + | _v: int | | _set_refwidth(self, *args) | _set_refwidth(self, _v) + | _v: int | | _set_string(self, *args) | _set_string(self, _v) + | _v: char * | | _set_x(self, *args) | _set_x(self, _v) + | _v: cexpr_t * | | _set_y(self, *args) | _set_y(self, _v) + | _v: cexpr_t * | | _set_z(self, *args) | _set_z(self, _v) + | _v: cexpr_t * | | assign(self, *args) | assign(self, r) -> cexpr_t + | @param r (C++: const cexpr_t &) | | calc_type(self, *args) + | Calculate the type of the expression. Use this function to calculate + | the expression type when a new expression is built + | | calc_type(self, recursive) + | @param recursive: if true, types of all children expression will be + | calculated before calculating our type (C++: bool) | | cleanup(self, *args) - | cleanup(self) + | Cleanup the expression. This function properly deletes all children + | and sets the item type to cot_empty. | | contains_comma(self, *args) + | Does the expression contain a comma operator? + | | contains_comma(self, times=1) -> bool + | @param times (C++: int) | | contains_comma_or_insn_or_label(self, *args) + | Does the expression contain a comma operator or an embedded statement + | operator or a label? + | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | @param maxcommas (C++: int) | | contains_insn(self, *args) + | Does the expression contain an embedded statement operator? + | | contains_insn(self, times=1) -> bool + | @param times (C++: int) | | contains_insn_or_label(self, *args) - | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) + | Check if the expression contains the specified operator. + | | contains_operator(self, needed_op, times=1) -> bool + | @param needed_op: operator code to search for (C++: ctype_t) + | @param times: how many times the operator code should be present (C++: + | int) + | @return: true if the expression has at least TIMES children with + | NEEDED_OP | | cpadone(self, *args) - | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) + | 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. + | | equal_effect(self, r) -> bool + | @param r: the expression to compare against the current expression + | (C++: const cexpr_t &) + | @return: true expressions can be considered equal | | find_num_op(self, *args) - | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t + | Find the operand with a numeric value. | | find_op(self, *args) + | Find the child with the specified operator. + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) + | + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) | | get_1num_op(self, *args) + | Get pointers to operands. at last one operand should be a number o1 + | will be pointer to the number + | | get_1num_op(self, o1, o2) -> bool + | @param o1 (C++: cexpr_t **) + | @param o2 (C++: cexpr_t **) | | get_const_value(self, *args) - | get_const_value(self) -> bool + | Get expression value. | | get_high_nbit_bound(self, *args) - | 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) - | 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) - | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. | | get_type_sign(self, *args) - | get_type_sign(self) -> type_sign_t + | Get expression sign. | | get_v(self, *args) | get_v(self) -> var_ref_t | | has_side_effects(self, *args) - | 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) + | Is call argument? + | | is_call_arg_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is a call argument of the specified + | parent expression. | | is_call_object_of(self, *args) + | Is call object? + | | is_call_object_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is the call object of the specified + | parent expression. | | is_child_of(self, *args) + | Verify if the specified item is our parent. + | | is_child_of(self, parent) -> bool + | @param parent: possible parent item (C++: const citem_t *) + | @return: true if the specified item is our parent | | is_const_value(self, *args) + | Check if the expression is a number with the specified value. + | | is_const_value(self, _v) -> bool + | @param _v (C++: uint64) | | is_cstr(self, *args) | is_cstr(self) -> bool @@ -17819,28 +17987,30 @@ class carg_t(cexpr_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) - | is_negative_const(self) -> bool + | Check if the expression is a negative number. | | is_nice_cond(self, *args) - | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean + | type. | | is_nice_expr(self, *args) - | 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) - | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) - | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) - | is_type_signed(self) -> bool + | Is expression signed? | | is_type_unsigned(self, *args) - | is_type_unsigned(self) -> bool + | Is expression unsigned? | | is_undef_val(self, *args) | is_undef_val(self) -> bool @@ -17849,38 +18019,63 @@ class carg_t(cexpr_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) - | is_zero_const(self) -> bool + | Check if the expression is a zero. | | maybe_ptr(self, *args) - | maybe_ptr(self) -> bool + | May the expression be a pointer? | | numval(self, *args) - | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only + | on cot_num expressions! | | print1(self, *args) + | Print expression into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | put_number(self, *args) + | Assign a number to the expression. + | | put_number(self, func, value, nbytes, sign=no_sign) + | @param func: current function (C++: cfunc_t *) + | @param value: number value (C++: uint64) + | @param nbytes: size of the number in bytes (C++: int) + | @param sign: number sign (C++: type_sign_t) | | requires_lvalue(self, *args) + | Check if the expression requires an lvalue. + | | requires_lvalue(self, child) -> bool + | @param child: The function will check if this child of our expression + | must be an lvalue. (C++: const cexpr_t *) + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) | set_cpadone(self) | | set_v(self, *args) | set_v(self, v) + | v: var_ref_t const * | | set_vftable(self, *args) | set_vftable(self) | | swap(self, *args) | swap(self, r) + | @param r (C++: cexpr_t &) | | theother(self, *args) + | Get the other operand. This function returns the other operand (not + | the specified one) for binary expressions. + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) + | + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from cexpr_t: @@ -17960,22 +18155,37 @@ class carg_t(cexpr_t) | | _set_op(self, *args) | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | contains_label(self, *args) - | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t + | @param _ea (C++: ea_t) | | find_parent_of(self, *args) + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -18028,30 +18238,38 @@ class carglist_t(qvector_carg_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: carglist_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: carglist_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: carglist_t const & | | __init__(self, *args) | __init__(self) -> carglist_t - | __init__(self, ftype, fl=0) -> carglist_t + | ftype: tinfo_t const & + | fl: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: carglist_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: carglist_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: carglist_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: carglist_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18076,6 +18294,7 @@ class carglist_t(qvector_carg_t) | | __getitem__(self, *args) | __getitem__(self, i) -> carg_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18085,19 +18304,24 @@ class carglist_t(qvector_carg_t) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: carg_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: carg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: carg_t const & | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | at = __getitem__(self, *args) | __getitem__(self, i) -> carg_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18121,52 +18345,74 @@ class carglist_t(qvector_carg_t) | | erase(self, *args) | erase(self, it) -> carg_t + | it: qvector< carg_t >::iterator + | + | | erase(self, first, last) -> carg_t + | first: qvector< carg_t >::iterator + | last: qvector< carg_t >::iterator | | extract(self, *args) | extract(self) -> carg_t | | find(self, *args) | find(self, x) -> carg_t + | x: carg_t const & + | + | | find(self, x) -> carg_t + | x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=carg_t()) + | x: carg_t const & | | has(self, *args) | has(self, x) -> bool + | x: carg_t const & | | inject(self, *args) | inject(self, s, len) + | s: carg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> carg_t + | it: qvector< carg_t >::iterator + | x: carg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: carg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< carg_t > & | | truncate(self, *args) | truncate(self) @@ -18194,30 +18440,41 @@ class casm_t(ida_pro.eavec_t)↗ | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: casm_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: casm_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: casm_t const & | | __init__(self, *args) | __init__(self, ea) -> casm_t + | ea: ea_t + | + | | __init__(self, r) -> casm_t + | r: casm_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: casm_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: casm_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: casm_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: casm_t const & | | one_insn(self, *args) | one_insn(self) -> bool @@ -18239,6 +18496,7 @@ class casm_t(ida_pro.eavec_t)↗ | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18248,19 +18506,24 @@ class casm_t(ida_pro.eavec_t)↗ | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: unsigned-ea-like-numeric-type const &↗ | | _del(self, *args) | _del(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | x: unsigned-ea-like-numeric-type const &↗ | | at = __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18284,49 +18547,70 @@ class casm_t(ida_pro.eavec_t)↗ | | erase(self, *args) | erase(self, it) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | 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↗ + | x: unsigned-ea-like-numeric-type const &↗ + | + | | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | x: unsigned-ea-like-numeric-type const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | inject(self, *args) | inject(self, s, len) + | s: unsigned-ea-like-numeric-type *↗ + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | x: unsigned-ea-like-numeric-type const &↗ | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | x: unsigned-ea-like-numeric-type const &↗ | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned-ea-like-numeric-type const &↗ + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< unsigned-ea-like-numeric-type > &↗ | | truncate(self, *args) | truncate(self) @@ -18354,24 +18638,30 @@ class cblock_t(qlist_cinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cblock_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cblock_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cblock_t const & | | __init__(self, *args) | __init__(self) -> cblock_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: cblock_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cblock_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cblock_t const & | | __repr__ = _swig_repr(self) | @@ -18380,6 +18670,7 @@ class cblock_t(qlist_cinsn_t) | | compare(self, *args) | compare(self, r) -> int + | r: cblock_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18398,6 +18689,7 @@ class cblock_t(qlist_cinsn_t) | | __getitem__(self, *args) | __getitem__(self, i) -> cinsn_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18407,6 +18699,8 @@ class cblock_t(qlist_cinsn_t) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: cinsn_t const & | | at(self, index) | @@ -18427,8 +18721,16 @@ class cblock_t(qlist_cinsn_t) | | erase(self, *args) | erase(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | erase(self, p1, p2) + | p1: qlist< cinsn_t >::iterator + | p2: qlist< cinsn_t >::iterator + | + | | erase(self, p) + | p: qlist_cinsn_t_iterator | | find(self, item) | @@ -18439,9 +18741,22 @@ class cblock_t(qlist_cinsn_t) | | insert(self, *args) | insert(self, p, x) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | x: cinsn_t const & + | + | | insert(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | insert(self, i, v) + | i: size_t + | v: cinsn_t const & + | + | | insert(self, p, x) -> qlist_cinsn_t_iterator + | p: qlist_cinsn_t_iterator + | x: cinsn_t const & | | pop_back(self, *args) | pop_back(self) @@ -18451,10 +18766,11 @@ class cblock_t(qlist_cinsn_t) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> cinsn_t + | x: cinsn_t const & | | push_front(self, *args) | push_front(self, x) + | x: cinsn_t const & | | rbegin(self, *args) | rbegin(self) -> qlist< cinsn_t >::reverse_iterator @@ -18462,6 +18778,7 @@ class cblock_t(qlist_cinsn_t) | | remove(self, *args) | remove(self, v) -> bool + | v: cinsn_t const & | | rend(self, *args) | rend(self) -> qlist< cinsn_t >::reverse_iterator @@ -18472,6 +18789,7 @@ class cblock_t(qlist_cinsn_t) | | swap(self, *args) | swap(self, x) + | x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from qlist_cinsn_t: @@ -18497,35 +18815,43 @@ class ccase_t(cinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ccase_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ccase_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ccase_t const & | | __init__(self, *args) | __init__(self) -> ccase_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: ccase_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ccase_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ccase_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: ccase_t const & | | size(self, *args) | size(self) -> size_t | | value(self, *args) | value(self, i) -> uint64 const & + | @param i (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18580,89 +18906,145 @@ class ccase_t(cinsn_t) | | _print(self, *args) | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) | _register(self) | | _replace_by(self, *args) | _replace_by(self, r) + | r: cinsn_t * | | _set_casm(self, *args) | _set_casm(self, _v) + | _v: casm_t * | | _set_cblock(self, *args) | _set_cblock(self, _v) + | _v: cblock_t * | | _set_cdo(self, *args) | _set_cdo(self, _v) + | _v: cdo_t * | | _set_cexpr(self, *args) | _set_cexpr(self, _v) + | _v: cexpr_t * | | _set_cfor(self, *args) | _set_cfor(self, _v) + | _v: cfor_t * | | _set_cgoto(self, *args) | _set_cgoto(self, _v) + | _v: cgoto_t * | | _set_cif(self, *args) | _set_cif(self, _v) + | _v: cif_t * | | _set_creturn(self, *args) | _set_creturn(self, _v) + | _v: creturn_t * | | _set_cswitch(self, *args) | _set_cswitch(self, _v) + | _v: cswitch_t * | | _set_cwhile(self, *args) | _set_cwhile(self, _v) + | _v: cwhile_t * | | assign(self, *args) | assign(self, r) -> cinsn_t + | @param r (C++: const cinsn_t &) | | cleanup(self, *args) - | cleanup(self) + | Cleanup the statement. This function properly deletes all children and + | sets the item type to cit_empty. | | collect_free_breaks(self, *args) + | 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. + | | collect_free_breaks(self, breaks) -> bool + | @param breaks: pointer to the variable where the vector of all found + | free break statements is returned. This argument can + | be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) + | 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. + | | collect_free_continues(self, continues) -> bool + | @param continues: pointer to the variable where the vector of all + | found free continue statements is returned. This + | argument can be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free continue statements have been found | | contains_free_break(self, *args) - | contains_free_break(self) -> bool + | Check if the statement has free 'break' statements. | | contains_free_continue(self, *args) - | contains_free_continue(self) -> bool + | Check if the statement has free 'continue' statements. | | contains_insn(self, *args) + | Check if the statement contains a statement of the specified type. + | | contains_insn(self, type, times=1) -> bool + | @param type: statement opcode to look for (C++: ctype_t) + | @param times: how many times TYPE should be present (C++: int) + | @return: true if the statement has at least TIMES children with opcode + | == TYPE | | create_if(self, *args) + | Create a new if-statement. The current statement must be a block. The + | new statement will be appended to it. + | | create_if(self, cnd) -> cif_t + | @param cnd: if condition. It will be deleted after being copied. (C++: + | cexpr_t *) | | is_epilog(self) | | is_ordinary_flow(self, *args) - | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. | | new_insn(self, *args) + | Create a new statement. The current statement must be a block. The new + | statement will be appended to it. + | | new_insn(self, insn_ea) -> cinsn_t + | @param insn_ea: statement address (C++: ea_t) | | print1(self, *args) + | Print the statement into one line. Currently this function is not + | available. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | swap(self, *args) | swap(self, r) + | @param r (C++: cinsn_t &) | | zero(self, *args) - | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- | Static methods inherited from cinsn_t: | | insn_is_epilog(*args) | insn_is_epilog(insn) -> bool + | insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cinsn_t: @@ -18728,22 +19110,37 @@ class ccase_t(cinsn_t) | | _set_op(self, *args) | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | contains_label(self, *args) - | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t + | @param _ea (C++: ea_t) | | find_parent_of(self, *args) + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -18793,29 +19190,36 @@ class ccases_t(qvector_ccase_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ccases_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ccases_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ccases_t const & | | __init__(self, *args) | __init__(self) -> ccases_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: ccases_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ccases_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ccases_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: ccases_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18834,6 +19238,7 @@ class ccases_t(qvector_ccase_t) | | __getitem__(self, *args) | __getitem__(self, i) -> ccase_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18843,19 +19248,24 @@ class ccases_t(qvector_ccase_t) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: ccase_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: ccase_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: ccase_t const & | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | at = __getitem__(self, *args) | __getitem__(self, i) -> ccase_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18879,52 +19289,74 @@ class ccases_t(qvector_ccase_t) | | erase(self, *args) | erase(self, it) -> ccase_t + | it: qvector< ccase_t >::iterator + | + | | erase(self, first, last) -> ccase_t + | first: qvector< ccase_t >::iterator + | last: qvector< ccase_t >::iterator | | extract(self, *args) | extract(self) -> ccase_t | | find(self, *args) | find(self, x) -> ccase_t + | x: ccase_t const & + | + | | find(self, x) -> ccase_t + | x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ccase_t()) + | x: ccase_t const & | | has(self, *args) | has(self, x) -> bool + | x: ccase_t const & | | inject(self, *args) | inject(self, s, len) + | s: ccase_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> ccase_t + | it: qvector< ccase_t >::iterator + | x: ccase_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: ccase_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< ccase_t > & | | truncate(self, *args) | truncate(self) @@ -18946,8 +19378,12 @@ class cdg_insn_iterator_t(__builtin__.object) | Methods defined here: | | __init__(self, *args) - | __init__(self) -> cdg_insn_iterator_t + | __init__(self, mba_) -> cdg_insn_iterator_t + | mba_: mba_t const * + | + | | __init__(self, r) -> cdg_insn_iterator_t + | r: cdg_insn_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -18957,14 +19393,19 @@ class cdg_insn_iterator_t(__builtin__.object) | has_dslot(self, *args) | has_dslot(self) -> bool | + | is_severed_dslot(self, *args) + | is_severed_dslot(self) -> bool + | | next(self, *args) | next(self, ins) -> merror_t + | @param ins (C++: insn_t *) | | ok(self, *args) | ok(self) -> bool | | start(self, *args) | start(self, rng) + | @param rng (C++: const range_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18990,8 +19431,11 @@ class cdg_insn_iterator_t(__builtin__.object) | 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 + | mba + | cdg_insn_iterator_t_mba_get(self) -> mba_t + | + | severed_branch + | cdg_insn_iterator_t_severed_branch_get(self) -> ea_t | | thisown | The membership flag @@ -19017,29 +19461,36 @@ class cdo_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cdo_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cdo_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cdo_t const & | | __init__(self, *args) | __init__(self) -> cdo_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: cdo_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cdo_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cdo_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: cdo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19058,6 +19509,7 @@ class cdo_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) | cleanup(self) @@ -19132,28 +19584,49 @@ class cexpr_t(citem_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cexpr_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cexpr_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cexpr_t const & | | __init__(self, *args) | __init__(self) -> cexpr_t - | __init__(self, cop, _x) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | + | | __init__(self, cop, _x, _y) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | _y: cexpr_t * + | + | | __init__(self, cop, _x, _y, _z) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | _y: cexpr_t * + | _z: cexpr_t * + | + | | __init__(self, r) -> cexpr_t + | r: cexpr_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: cexpr_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cexpr_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cexpr_t const & | | __repr__ = _swig_repr(self) | @@ -19204,122 +19677,198 @@ class cexpr_t(citem_t) | | _replace_by(self, *args) | _replace_by(self, r) + | r: cexpr_t * | | _set_a(self, *args) | _set_a(self, _v) + | _v: carglist_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_helper(self, *args) | _set_helper(self, _v) + | _v: char * | | _set_insn(self, *args) | _set_insn(self, _v) + | _v: cinsn_t * | | _set_m(self, *args) | _set_m(self, _v) + | _v: int | | _set_n(self, *args) | _set_n(self, _v) + | _v: cnumber_t * | | _set_obj_ea(self, *args) | _set_obj_ea(self, _v) + | _v: ea_t | | _set_ptrsize(self, *args) | _set_ptrsize(self, _v) + | _v: int | | _set_refwidth(self, *args) | _set_refwidth(self, _v) + | _v: int | | _set_string(self, *args) | _set_string(self, _v) + | _v: char * | | _set_x(self, *args) | _set_x(self, _v) + | _v: cexpr_t * | | _set_y(self, *args) | _set_y(self, _v) + | _v: cexpr_t * | | _set_z(self, *args) | _set_z(self, _v) + | _v: cexpr_t * | | assign(self, *args) | assign(self, r) -> cexpr_t + | @param r (C++: const cexpr_t &) | | calc_type(self, *args) + | Calculate the type of the expression. Use this function to calculate + | the expression type when a new expression is built + | | calc_type(self, recursive) + | @param recursive: if true, types of all children expression will be + | calculated before calculating our type (C++: bool) | | cleanup(self, *args) - | cleanup(self) + | Cleanup the expression. This function properly deletes all children + | and sets the item type to cot_empty. | | compare(self, *args) | compare(self, r) -> int + | r: cexpr_t const & | | contains_comma(self, *args) + | Does the expression contain a comma operator? + | | contains_comma(self, times=1) -> bool + | @param times (C++: int) | | contains_comma_or_insn_or_label(self, *args) + | Does the expression contain a comma operator or an embedded statement + | operator or a label? + | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | @param maxcommas (C++: int) | | contains_insn(self, *args) + | Does the expression contain an embedded statement operator? + | | contains_insn(self, times=1) -> bool + | @param times (C++: int) | | contains_insn_or_label(self, *args) - | contains_insn_or_label(self) -> bool + | Does the expression contain an embedded statement operator or a label? | | contains_operator(self, *args) + | Check if the expression contains the specified operator. + | | contains_operator(self, needed_op, times=1) -> bool + | @param needed_op: operator code to search for (C++: ctype_t) + | @param times: how many times the operator code should be present (C++: + | int) + | @return: true if the expression has at least TIMES children with + | NEEDED_OP | | cpadone(self, *args) - | cpadone(self) -> bool + | Pointer arithmetic correction done for this expression? | | equal_effect(self, *args) + | 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. + | | equal_effect(self, r) -> bool + | @param r: the expression to compare against the current expression + | (C++: const cexpr_t &) + | @return: true expressions can be considered equal | | find_num_op(self, *args) - | find_num_op(self) -> cexpr_t - | find_num_op(self) -> cexpr_t + | Find the operand with a numeric value. | | find_op(self, *args) + | Find the child with the specified operator. + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) + | + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) | | get_1num_op(self, *args) + | Get pointers to operands. at last one operand should be a number o1 + | will be pointer to the number + | | get_1num_op(self, o1, o2) -> bool + | @param o1 (C++: cexpr_t **) + | @param o2 (C++: cexpr_t **) | | get_const_value(self, *args) - | get_const_value(self) -> bool + | Get expression value. | | get_high_nbit_bound(self, *args) - | 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) - | 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) - | get_ptr_or_array(self) -> cexpr_t + | Find pointer or array child. | | get_type_sign(self, *args) - | get_type_sign(self) -> type_sign_t + | Get expression sign. | | get_v(self, *args) | get_v(self) -> var_ref_t | | has_side_effects(self, *args) - | 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) + | Is call argument? + | | is_call_arg_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is a call argument of the specified + | parent expression. | | is_call_object_of(self, *args) + | Is call object? + | | is_call_object_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is the call object of the specified + | parent expression. | | is_child_of(self, *args) + | Verify if the specified item is our parent. + | | is_child_of(self, parent) -> bool + | @param parent: possible parent item (C++: const citem_t *) + | @return: true if the specified item is our parent | | is_const_value(self, *args) + | Check if the expression is a number with the specified value. + | | is_const_value(self, _v) -> bool + | @param _v (C++: uint64) | | is_cstr(self, *args) | is_cstr(self) -> bool @@ -19331,28 +19880,30 @@ class cexpr_t(citem_t) | is_jumpout(self) -> bool | | is_negative_const(self, *args) - | is_negative_const(self) -> bool + | Check if the expression is a negative number. | | is_nice_cond(self, *args) - | is_nice_cond(self) -> bool + | Is nice condition?. Nice condition is a nice expression of the boolean + | type. | | is_nice_expr(self, *args) - | 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) - | is_non_negative_const(self) -> bool + | Check if the expression is a non-negative number. | | is_non_zero_const(self, *args) - | is_non_zero_const(self) -> bool + | Check if the expression is a non-zero number. | | is_odd_lvalue(self, *args) | is_odd_lvalue(self) -> bool | | is_type_signed(self, *args) - | is_type_signed(self) -> bool + | Is expression signed? | | is_type_unsigned(self, *args) - | is_type_unsigned(self) -> bool + | Is expression unsigned? | | is_undef_val(self, *args) | is_undef_val(self) -> bool @@ -19361,38 +19912,63 @@ class cexpr_t(citem_t) | is_vftable(self) -> bool | | is_zero_const(self, *args) - | is_zero_const(self) -> bool + | Check if the expression is a zero. | | maybe_ptr(self, *args) - | maybe_ptr(self) -> bool + | May the expression be a pointer? | | numval(self, *args) - | numval(self) -> uint64 + | Get numeric value of the expression. This function can be called only + | on cot_num expressions! | | print1(self, *args) + | Print expression into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | put_number(self, *args) + | Assign a number to the expression. + | | put_number(self, func, value, nbytes, sign=no_sign) + | @param func: current function (C++: cfunc_t *) + | @param value: number value (C++: uint64) + | @param nbytes: size of the number in bytes (C++: int) + | @param sign: number sign (C++: type_sign_t) | | requires_lvalue(self, *args) + | Check if the expression requires an lvalue. + | | requires_lvalue(self, child) -> bool + | @param child: The function will check if this child of our expression + | must be an lvalue. (C++: const cexpr_t *) + | @return: true if child must be an lvalue. | | set_cpadone(self, *args) | set_cpadone(self) | | set_v(self, *args) | set_v(self, v) + | v: var_ref_t const * | | set_vftable(self, *args) | set_vftable(self) | | swap(self, *args) | swap(self, r) + | @param r (C++: cexpr_t &) | | theother(self, *args) + | Get the other operand. This function returns the other operand (not + | the specified one) for binary expressions. + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) + | + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19478,22 +20054,37 @@ class cexpr_t(citem_t) | | _set_op(self, *args) | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | contains_label(self, *args) - | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t + | @param _ea (C++: ea_t) | | find_parent_of(self, *args) + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -19547,29 +20138,36 @@ class cfor_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cfor_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cfor_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cfor_t const & | | __init__(self, *args) | __init__(self) -> cfor_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: cfor_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cfor_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cfor_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: cfor_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19594,6 +20192,7 @@ class cfor_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) | cleanup(self) @@ -19633,11 +20232,24 @@ class cfunc_parentee_t(ctree_parentee_t) | | __init__(self, *args) | __init__(self, f, post=False) -> cfunc_parentee_t + | f: cfunc_t * + | post: bool | | __repr__ = _swig_repr(self) | | calc_rvalue_type(self, *args) + | 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. + | | calc_rvalue_type(self, target, e) -> bool + | @param target: 'best' type of the expression will be returned here + | (C++: tinfo_t *) + | @param e: expression to determine the desired type (C++: const + | cexpr_t *) + | @return: false if failed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19658,61 +20270,112 @@ class cfunc_parentee_t(ctree_parentee_t) | Methods inherited from ctree_parentee_t: | | recalc_parent_types(self, *args) - | recalc_parent_types(self) -> bool + | Recalculate types of parent node. 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 it is + | recommended to restart the traversal because the information about + | parent nodes is stale. | | ---------------------------------------------------------------------- | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) + | Traverse only expressions. The traversal will start at the specified + | item and continue until of one the visit_...() functions return a non- + | zero value. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | clr_prune(self) + | Do not prune children. This is an internal function, no need to call + | it. | | clr_restart(self, *args) - | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) - | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) + | 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. + | | leave_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) - | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) - | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) - | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) - | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) - | 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) - | set_restart(self) + | Restart the travesal. Meaningful only in 'apply_to_exprs()' | | visit_expr(self, *args) + | 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) + | 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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -19744,98 +20407,189 @@ class cfunc_t(__builtin__.object) | __str__(self) -> qstring | | build_c_tree(self, *args) - | build_c_tree(self) + | Generate the function body. This function (re)generates the function + | body from the underlying microcode. | | del_orphan_cmts(self, *args) - | 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) | find_item_coords(self, item, px, py) -> bool + | @param item (C++: const citem_t *) + | @param px (C++: int *) + | @param py (C++: int *) + | + | | find_item_coords(self, item) -> PyObject * + | @param item (C++: const citem_t *) | | find_label(self, *args) + | Find the label. + | | find_label(self, label) -> citem_t + | @param label (C++: int) + | @return: pointer to the ctree item with the specified label number. | | gather_derefs(self, *args) | gather_derefs(self, ci, udm=None) -> bool + | @param ci (C++: const ctree_item_t &) + | @param udm (C++: udt_type_data_t *) | | get_boundaries(self, *args) - | 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) - | get_eamap(self) -> eamap_t + | Get pointer to ea->insn map. This function initializes eamap if not + | done yet. | | get_func_type(self, *args) + | Get the function type. + | | get_func_type(self, type) -> bool + | @param type: variable where the function type is returned (C++: + | tinfo_t *) + | @return: false if failure | | get_line_item(self, *args) + | Get ctree item for the specified cursor position. + | 'vdui_t::get_current_item()' + | | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | @param line: line of decompilation text (element of sv ) (C++: const + | char *) + | @param x: x cursor coordinate in the line (C++: int) + | @param is_ctree_line: does the line belong to statement area? (if not, + | it is assumed to belong to the declaration area) + | (C++: bool) + | @param phead: ptr to the first item on the line (used to attach block + | comments). May be NULL (C++: ctree_item_t *) + | @param pitem: ptr to the current item. May be NULL (C++: ctree_item_t + | *) + | @param ptail: ptr to the last item on the line (used to attach + | indented comments). May be NULL (C++: ctree_item_t *) + | @return: false if failed to get the current item | | get_lvars(self, *args) - | get_lvars(self) -> lvars_t + | Get vector of local variables. | | get_pseudocode(self, *args) - | 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) - | 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. | | get_user_cmt(self, *args) + | Retrieve a user defined comment. + | | get_user_cmt(self, loc, rt) -> char const * + | @param loc: ctree location (C++: const treeloc_t &) + | @param rt: should already retrieved comments retrieved again? (C++: + | cmt_retrieval_type_t) + | @return: pointer to the comment string or NULL | | get_user_iflags(self, *args) + | Retrieve citem iflags. + | | get_user_iflags(self, loc) -> int32 + | @param loc: citem locator (C++: const citem_locator_t &) + | @return: ctree item iflags bits or 0 | | get_user_union_selection(self, *args) + | Retrieve a user defined union field selection. + | | get_user_union_selection(self, ea, path) -> bool + | @param ea: address (C++: ea_t) + | @param path: out: path describing the union selection. (C++: intvec_t + | *) + | @return: pointer to the path or NULL | | get_warnings(self, *args) - | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. | | has_orphan_cmts(self, *args) - | has_orphan_cmts(self) -> bool + | Check if there are orphan comments. + | + | locked(self, *args) + | locked(self) -> bool | | print_dcl(self, *args) - | print_dcl(self) + | Print function prototype. | | print_func(self, *args) + | Print function text. + | | print_func(self, vp) + | @param vp: printer helper class to receive the generated text. (C++: + | vc_printer_t &) | | refresh_func_ctext(self, *args) - | 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) | release(self) | | remove_unused_labels(self, *args) - | remove_unused_labels(self) + | Remove unused labels. This function check what labels are really used + | by the function and removes the unused ones. | | save_user_cmts(self, *args) - | save_user_cmts(self) + | Save user-defined comments into the database. | | save_user_iflags(self, *args) - | save_user_iflags(self) + | Save user-defined iflags into the database. | | save_user_labels(self, *args) - | save_user_labels(self) + | Save user-defined labels into the database. | | save_user_numforms(self, *args) - | save_user_numforms(self) + | Save user-defined number formats into the database. | | save_user_unions(self, *args) - | save_user_unions(self) + | Save user-defined union field selections into the database. | | set_user_cmt(self, *args) + | 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. + | | set_user_cmt(self, loc, cmt) + | @param loc: ctree location (C++: const treeloc_t &) + | @param cmt: new comment. if empty or NULL, then an existing comment is + | deleted. (C++: const char *) | | set_user_iflags(self, *args) + | Set citem iflags. + | | set_user_iflags(self, loc, iflags) + | @param loc: citem locator (C++: const citem_locator_t &) + | @param iflags: new iflags (C++: int32) | | set_user_union_selection(self, *args) + | Set a union field selection. The 'save_user_unions()' function must be + | called after calling this function. + | | set_user_union_selection(self, ea, path) + | @param ea: address (C++: ea_t) + | @param path: in: path describing the union selection. (C++: const + | intvec_t &) | | verify(self, *args) + | 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. + | | verify(self, aul, even_without_debugger) + | @param aul: Are unused labels acceptable? (C++: allow_unused_labels_t) + | @param even_without_debugger: if false and there is no debugger, the + | verification will be skipped (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19855,10 +20609,12 @@ class cfunc_t(__builtin__.object) | cfunc_t_body_get(self) -> cinsn_t | | 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 @@ -19867,19 +20623,20 @@ class cfunc_t(__builtin__.object) | cfunc_t_hdrlines_get(self) -> int | | lvars - | get_lvars(self) -> lvars_t + | Get vector of local variables. | | maturity | cfunc_t_maturity_get(self) -> ctree_maturity_t | | mba - | cfunc_t_mba_get(self) -> mbl_array_t + | cfunc_t_mba_get(self) -> mba_t | | numforms | cfunc_t_numforms_get(self) -> user_numforms_t | | 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 @@ -19909,7 +20666,7 @@ class cfunc_t(__builtin__.object) | cfunc_t_user_unions_get(self) -> user_unions_t | | warnings - | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -19936,7 +20693,11 @@ class cfuncptr_t(__builtin__.object) | | __init__(self, *args) | __init__(self, p) -> cfuncptr_t + | p: cfunc_t * + | + | | __init__(self, r) -> cfuncptr_t + | r: qrefcnt_t< cfunc_t > const & | | __ptrval__(self, *args) | __ptrval__(self) -> size_t @@ -19956,13 +20717,22 @@ class cfuncptr_t(__builtin__.object) | | find_item_coords(self, *args) | find_item_coords(self, item, px, py) -> bool + | item: citem_t const * + | px: int * + | py: int * + | + | | find_item_coords(self, item) -> PyObject * + | item: citem_t const * | | find_label(self, *args) | find_label(self, label) -> citem_t + | label: int | | gather_derefs(self, *args) | gather_derefs(self, ci, udm=None) -> bool + | ci: ctree_item_t const & + | udm: udt_type_data_t * | | get_boundaries(self, *args) | get_boundaries(self) -> boundaries_t @@ -19972,9 +20742,16 @@ class cfuncptr_t(__builtin__.object) | | get_func_type(self, *args) | get_func_type(self, type) -> bool + | type: tinfo_t * | | get_line_item(self, *args) | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | line: char const * + | x: int + | is_ctree_line: bool + | phead: ctree_item_t * + | pitem: ctree_item_t * + | ptail: ctree_item_t * | | get_lvars(self, *args) | get_lvars(self) -> lvars_t @@ -19987,12 +20764,17 @@ class cfuncptr_t(__builtin__.object) | | get_user_cmt(self, *args) | get_user_cmt(self, loc, rt) -> char const * + | loc: treeloc_t const & + | rt: enum cmt_retrieval_type_t | | get_user_iflags(self, *args) | get_user_iflags(self, loc) -> int32 + | loc: citem_locator_t const & | | get_user_union_selection(self, *args) | get_user_union_selection(self, ea, path) -> bool + | ea: ea_t + | path: intvec_t * | | get_warnings(self, *args) | get_warnings(self) -> hexwarns_t @@ -20000,11 +20782,15 @@ class cfuncptr_t(__builtin__.object) | has_orphan_cmts(self, *args) | has_orphan_cmts(self) -> bool | + | locked(self, *args) + | locked(self) -> bool + | | print_dcl(self, *args) | print_dcl(self) | | print_func(self, *args) | print_func(self, vp) + | vp: vc_printer_t & | | refresh_func_ctext(self, *args) | refresh_func_ctext(self) @@ -20035,15 +20821,23 @@ class cfuncptr_t(__builtin__.object) | | set_user_cmt(self, *args) | set_user_cmt(self, loc, cmt) + | loc: treeloc_t const & + | cmt: char const * | | set_user_iflags(self, *args) | set_user_iflags(self, loc, iflags) + | loc: citem_locator_t const & + | iflags: int32 | | set_user_union_selection(self, *args) | set_user_union_selection(self, ea, path) + | ea: ea_t + | path: intvec_t const & | | verify(self, *args) | verify(self, aul, even_without_debugger) + | aul: enum allow_unused_labels_t + | even_without_debugger: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20078,7 +20872,7 @@ class cfuncptr_t(__builtin__.object) | cfuncptr_t_maturity_get(self) -> ctree_maturity_t | | mba - | cfuncptr_t_mba_get(self) -> mbl_array_t + | cfuncptr_t_mba_get(self) -> mba_t | | numforms | cfuncptr_t_numforms_get(self) -> user_numforms_t @@ -20128,29 +20922,36 @@ class cgoto_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cgoto_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cgoto_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cgoto_t const & | | __init__(self, *args) | __init__(self) -> cgoto_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: cgoto_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cgoto_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cgoto_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: cgoto_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20182,6 +20983,7 @@ class chain_keeper_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _gc) -> chain_keeper_t + | _gc: graph_chains_t * | | __repr__ = _swig_repr(self) | @@ -20190,6 +20992,8 @@ class chain_keeper_t(__builtin__.object) | | for_all_chains(self, *args) | for_all_chains(self, cv, gca) -> int + | @param cv (C++: chain_visitor_t &) + | @param gca (C++: int) | | front(self, *args) | front(self) -> block_chains_t @@ -20226,11 +21030,19 @@ class chain_t(ida_pro.intvec_t) | | __init__(self, *args) | __init__(self) -> chain_t - | __init__(self, t, off, w=1, v=-1) -> chain_t + | t: mopt_t + | off: sval_t + | w: int + | v: int + | + | | __init__(self, _k, w=1) -> chain_t + | _k: voff_t const & + | w: int | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: chain_t const & | | __repr__ = _swig_repr(self) | @@ -20238,7 +21050,10 @@ class chain_t(ida_pro.intvec_t) | _print(self) | | append_list(self, *args) + | Append the contents of the chain to the specified list of locations. + | | append_list(self, list) + | @param list (C++: mlist_t *) | | clear_varnum(self, *args) | clear_varnum(self) @@ -20257,6 +21072,7 @@ class chain_t(ida_pro.intvec_t) | | includes(self, *args) | includes(self, r) -> bool + | @param r (C++: const chain_t &) | | is_fake(self, *args) | is_fake(self) -> bool @@ -20287,21 +21103,27 @@ class chain_t(ida_pro.intvec_t) | | overlap(self, *args) | overlap(self, r) -> bool + | @param r (C++: const chain_t &) | | set_inited(self, *args) | set_inited(self, b) + | @param b (C++: bool) | | set_overlapped(self, *args) | set_overlapped(self, b) + | @param b (C++: bool) | | set_replaced(self, *args) | set_replaced(self, b) + | @param b (C++: bool) | | set_term(self, *args) | set_term(self, b) + | @param b (C++: bool) | | set_value(self, *args) | set_value(self, r) + | @param r (C++: const chain_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20329,9 +21151,11 @@ class chain_t(ida_pro.intvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> int const & + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20341,22 +21165,28 @@ class chain_t(ida_pro.intvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< int > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: int const & | | _del(self, *args) | _del(self, x) -> bool + | x: int const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: int const & | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | at = __getitem__(self, *args) | __getitem__(self, i) -> int const & + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -20380,49 +21210,70 @@ class chain_t(ida_pro.intvec_t) | | erase(self, *args) | erase(self, it) -> qvector< int >::iterator + | it: qvector< int >::iterator + | + | | erase(self, first, last) -> qvector< int >::iterator + | first: qvector< int >::iterator + | last: qvector< int >::iterator | | extract(self, *args) | extract(self) -> int * | | find(self, *args) | find(self, x) -> qvector< int >::iterator + | x: int const & + | + | | find(self, x) -> qvector< int >::const_iterator + | x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: int const & | | inject(self, *args) | inject(self, s, len) + | s: int * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< int >::iterator + | it: qvector< int >::iterator + | x: int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< int > & | | truncate(self, *args) | truncate(self) @@ -20447,11 +21298,14 @@ class chain_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> chain_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_chain(self, *args) | visit_chain(self, nblock, ch) -> int + | @param nblock (C++: int) + | @param ch (C++: chain_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20477,9 +21331,6 @@ class chain_visitor_t(__builtin__.object) 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 @@ -20487,9 +21338,10 @@ checkout_hexrays_license(*args) 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 + checkout_hexrays_license(silent) -> bool + @param silent: silently fail if the license cannot be checked out. + (C++: bool) + @return: false if failed Help on class cif_t in module ida_hexrays: @@ -20505,36 +21357,44 @@ class cif_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cif_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cif_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cif_t const & | | __init__(self, *args) | __init__(self) -> cif_t - | __init__(self, r) -> cif_t + | r: cif_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: cif_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cif_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cif_t const & | | __repr__ = _swig_repr(self) | | assign(self, *args) | assign(self, r) -> cif_t + | @param r (C++: const cif_t &) | | cleanup(self, *args) | cleanup(self) | | compare(self, *args) | compare(self, r) -> int + | r: cif_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20585,25 +21445,31 @@ class cinsn_t(citem_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cinsn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cinsn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cinsn_t const & | | __init__(self, *args) | __init__(self) -> cinsn_t - | __init__(self, r) -> cinsn_t + | r: cinsn_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: cinsn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cinsn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cinsn_t const & | | __repr__ = _swig_repr(self) | @@ -20642,92 +21508,149 @@ class cinsn_t(citem_t) | | _print(self, *args) | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | indent: int + | vp: vc_printer_t & + | use_curly: enum use_curly_t | | _register(self, *args) | _register(self) | | _replace_by(self, *args) | _replace_by(self, r) + | r: cinsn_t * | | _set_casm(self, *args) | _set_casm(self, _v) + | _v: casm_t * | | _set_cblock(self, *args) | _set_cblock(self, _v) + | _v: cblock_t * | | _set_cdo(self, *args) | _set_cdo(self, _v) + | _v: cdo_t * | | _set_cexpr(self, *args) | _set_cexpr(self, _v) + | _v: cexpr_t * | | _set_cfor(self, *args) | _set_cfor(self, _v) + | _v: cfor_t * | | _set_cgoto(self, *args) | _set_cgoto(self, _v) + | _v: cgoto_t * | | _set_cif(self, *args) | _set_cif(self, _v) + | _v: cif_t * | | _set_creturn(self, *args) | _set_creturn(self, _v) + | _v: creturn_t * | | _set_cswitch(self, *args) | _set_cswitch(self, _v) + | _v: cswitch_t * | | _set_cwhile(self, *args) | _set_cwhile(self, _v) + | _v: cwhile_t * | | assign(self, *args) | assign(self, r) -> cinsn_t + | @param r (C++: const cinsn_t &) | | cleanup(self, *args) - | cleanup(self) + | Cleanup the statement. This function properly deletes all children and + | sets the item type to cit_empty. | | collect_free_breaks(self, *args) + | 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. + | | collect_free_breaks(self, breaks) -> bool + | @param breaks: pointer to the variable where the vector of all found + | free break statements is returned. This argument can + | be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) + | 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. + | | collect_free_continues(self, continues) -> bool + | @param continues: pointer to the variable where the vector of all + | found free continue statements is returned. This + | argument can be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free continue statements have been found | | compare(self, *args) | compare(self, r) -> int + | r: cinsn_t const & | | contains_free_break(self, *args) - | contains_free_break(self) -> bool + | Check if the statement has free 'break' statements. | | contains_free_continue(self, *args) - | contains_free_continue(self) -> bool + | Check if the statement has free 'continue' statements. | | contains_insn(self, *args) + | Check if the statement contains a statement of the specified type. + | | contains_insn(self, type, times=1) -> bool + | @param type: statement opcode to look for (C++: ctype_t) + | @param times: how many times TYPE should be present (C++: int) + | @return: true if the statement has at least TIMES children with opcode + | == TYPE | | create_if(self, *args) + | Create a new if-statement. The current statement must be a block. The + | new statement will be appended to it. + | | create_if(self, cnd) -> cif_t + | @param cnd: if condition. It will be deleted after being copied. (C++: + | cexpr_t *) | | is_epilog(self) | | is_ordinary_flow(self, *args) - | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. | | new_insn(self, *args) + | Create a new statement. The current statement must be a block. The new + | statement will be appended to it. + | | new_insn(self, insn_ea) -> cinsn_t + | @param insn_ea: statement address (C++: ea_t) | | print1(self, *args) + | Print the statement into one line. Currently this function is not + | available. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | swap(self, *args) | swap(self, r) + | @param r (C++: cinsn_t &) | | zero(self, *args) - | zero(self) + | Overwrite with zeroes without cleaning memory or deleting children. | | ---------------------------------------------------------------------- | Static methods defined here: | | insn_is_epilog(*args) | insn_is_epilog(insn) -> bool + | insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20799,22 +21722,37 @@ class cinsn_t(citem_t) | | _set_op(self, *args) | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | contains_label(self, *args) - | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t + | @param _ea (C++: ea_t) | | find_parent_of(self, *args) + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -20854,6 +21792,7 @@ 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 + insn: cinsn_t const * Help on class cinsnptrvec_t in module ida_hexrays: @@ -20864,13 +21803,15 @@ class cinsnptrvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< cinsn_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> cinsn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> cinsnptrvec_t - | __init__(self, x) -> cinsnptrvec_t + | x: qvector< cinsn_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20879,17 +21820,22 @@ class cinsnptrvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< cinsn_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: cinsn_t *const & | | _del(self, *args) | _del(self, x) -> bool + | x: cinsn_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: cinsn_t *const & | | append = push_back(self, *args) | @@ -20917,49 +21863,70 @@ class cinsnptrvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< cinsn_t * >::iterator + | it: qvector< cinsn_t * >::iterator + | + | | erase(self, first, last) -> qvector< cinsn_t * >::iterator + | first: qvector< cinsn_t * >::iterator + | last: qvector< cinsn_t * >::iterator | | extract(self, *args) | extract(self) -> cinsn_t ** | | find(self, *args) | find(self, x) -> qvector< cinsn_t * >::iterator + | x: cinsn_t *const & + | + | | find(self, x) -> qvector< cinsn_t * >::const_iterator + | x: cinsn_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: cinsn_t *const & | | inject(self, *args) | inject(self, s, len) + | s: cinsn_t ** + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< cinsn_t * >::iterator + | it: qvector< cinsn_t * >::iterator + | x: cinsn_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> cinsn_t *& + | x: cinsn_t *const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: cinsn_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< cinsn_t * > & | | truncate(self, *args) | truncate(self) @@ -20991,7 +21958,7 @@ class citem_cmt_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> citem_cmt_t - | __init__(self, s) -> citem_cmt_t + | s: char const * | | __repr__ = _swig_repr(self) | @@ -21031,30 +21998,42 @@ class citem_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: citem_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: citem_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: citem_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _op) -> citem_locator_t + | _ea: ea_t + | _op: enum ctype_t + | + | | __init__(self, i) -> citem_locator_t + | i: citem_t const * | | __le__(self, *args) | __le__(self, r) -> bool + | r: citem_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: citem_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: citem_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: citem_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21089,7 +22068,7 @@ class citem_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> citem_t - | __init__(self, o) -> citem_t + | o: enum ctype_t | | __repr__ = _swig_repr(self) | @@ -21121,30 +22100,53 @@ class citem_t(__builtin__.object) | | _set_op(self, *args) | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | contains_label(self, *args) - | contains_label(self) -> bool + | Does the item contain a label? | | find_closest_addr(self, *args) | find_closest_addr(self, _ea) -> citem_t + | @param _ea (C++: ea_t) | | find_parent_of(self, *args) + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) - | is_expr(self) -> bool + | Is an expression? | | print1(self, *args) + | Print item into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) + | @return: length of the generated text. | | replace_by(self, o) | | swap(self, *args) + | Swap two 'citem_t' . + | | swap(self, r) + | @param r (C++: citem_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21198,9 +22200,6 @@ citem_to_specific_type(self) 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: @@ -21217,13 +22216,17 @@ class cloop_t(ceinsn_t) | | __init__(self, *args) | __init__(self) -> cloop_t - | __init__(self, b) -> cloop_t + | b: cinsn_t * + | + | | __init__(self, r) -> cloop_t + | r: cloop_t const & | | __repr__ = _swig_repr(self) | | assign(self, *args) | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) | cleanup(self) @@ -21255,16 +22258,20 @@ class cloop_t(ceinsn_t) | expr | ceinsn_t_expr_get(self) -> cexpr_t +Help on function close_hexrays_waitbox in module ida_hexrays: + +close_hexrays_waitbox(*args) + 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) - close_pseudocode(f) -> bool - - Close pseudocode window. - @param f: pointer to window (C++: TWidget *) - @return: false if failed + close_pseudocode(f) -> bool + @param f: pointer to window (C++: TWidget *) + @return: false if failed Help on class cnumber_t in module ida_hexrays: @@ -21275,38 +22282,58 @@ class cnumber_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cnumber_t const & | | __init__(self, *args) | __init__(self, _opnum=0) -> cnumber_t + | _opnum: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: cnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cnumber_t const & | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, type, parent=None, nice_stroff=None) + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * | | assign(self, *args) + | Assign new value + | | assign(self, v, nbytes, sign) + | @param v: new value (C++: uint64) + | @param nbytes: size of the new value in bytes (C++: int) + | @param sign: sign of the value (C++: type_sign_t) | | compare(self, *args) | compare(self, r) -> int + | r: cnumber_t const & | | value(self, *args) + | Get value. This function will properly extend the number sign to + | 64bits depending on the type sign. + | | value(self, type) -> uint64 + | @param type (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21339,28 +22366,67 @@ class codegen_t(__builtin__.object) | | Methods defined here: | - | __disown__(self) - | - | __init__(self, *args) - | __init__(self, m) -> codegen_t + | __init__(self, *args, **kwargs) | | __repr__ = _swig_repr(self) | | analyze_prolog(self, *args) + | Analyze prolog/epilog of the function to decompile. If prolog is + | found, allocate and fill 'mba->pi' structure. + | | analyze_prolog(self, fc, reachable) -> merror_t + | @param fc: flow chart (C++: const class qflow_chart_t &) + | @param reachable: bitmap of reachable blocks (C++: const class + | bitset_t &) + | @return: error code | | emit(self, *args) + | Emit one microinstruction. The L, R, D arguments usually mean the + | register number. However, they depend on CODE. For example:for m_goto + | and m_jcnd L is the target addressfor m_ldc L is the constant value to + | load + | | emit(self, code, width, l, r, d, offsize) -> minsn_t + | @param code (C++: mcode_t) + | @param width (C++: int) + | @param l (C++: uval_t) + | @param r (C++: uval_t) + | @param d (C++: uval_t) + | @param offsize (C++: int) + | @return: created microinstruction. can be NULL if the instruction got + | immediately optimized away. + | + | | emit(self, code, l, r, d) -> minsn_t + | @param code (C++: mcode_t) + | @param l (C++: uval_t) + | @param r (C++: uval_t) + | @param d (C++: uval_t) + | @return: created microinstruction. can be NULL if the instruction got + | immediately optimized away. | | emit_micro_mvm(self, *args) + | Emit one microinstruction. This variant takes a data type not a size. + | | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t + | @param code (C++: 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) - | gen_micro(self) -> merror_t + | Generate microcode for one instruction. The instruction is in INSN | | load_operand(self, *args) + | Generate microcode to load one operand. + | | load_operand(self, opnum) -> mreg_t + | @param opnum (C++: int) + | + | microgen_completed(self, *args) + | This method is called when the microcode generation is done. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21384,7 +22450,7 @@ class codegen_t(__builtin__.object) | codegen_t_mb_get(self) -> mblock_t | | mba - | codegen_t_mba_get(self) -> mbl_array_t + | codegen_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -21398,20 +22464,20 @@ class codegen_t(__builtin__.object) 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) + convert_to_user_call(udc, cdg) -> merror_t + @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 + @param type (C++: const tinfo_t &) + @param offset (C++: uval_t) Help on function create_helper in module ida_hexrays: @@ -21420,15 +22486,20 @@ 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. + create_typedef(name) -> tinfo_t + @param name: type name (C++: const char *) + @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 + n: int + @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. Help on class creturn_t in module ida_hexrays: @@ -21444,29 +22515,36 @@ class creturn_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: creturn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: creturn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: creturn_t const & | | __init__(self, *args) | __init__(self) -> creturn_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: creturn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: creturn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: creturn_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: creturn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21506,29 +22584,36 @@ class cswitch_t(ceinsn_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cswitch_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cswitch_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cswitch_t const & | | __init__(self, *args) | __init__(self) -> cswitch_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: cswitch_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cswitch_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cswitch_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: cswitch_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21569,32 +22654,45 @@ class ctext_position_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ctext_position_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ctext_position_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ctext_position_t const & | | __init__(self, *args) | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t + | _lnnum: int + | _x: int + | _y: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: ctext_position_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ctext_position_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ctext_position_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: ctext_position_t const & | | in_ctree(self, *args) + | Is the cursor in the variable/type declaration area? + | | in_ctree(self, hdrlines) -> bool + | @param hdrlines: Number of lines of the declaration area (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21705,19 +22803,32 @@ class ctree_item_t(__builtin__.object) | _get_l(self) -> lvar_t | | get_ea(self, *args) - | get_ea(self) -> ea_t + | Get address of the current item. Each ctree item has an address. | | get_label_num(self, *args) + | Get label number of the current item. + | | get_label_num(self, gln_flags) -> int + | @param gln_flags: Combination of get_label_num control bits (C++: + | int) + | @return: -1 if failed or no label | | get_lvar(self, *args) - | 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. | | get_memptr(self, *args) + | Get pointer to structure member. If the current item is a structure + | field, this function will return pointer to its definition. + | | get_memptr(self, p_sptr=None) -> member_t * + | @param p_sptr: pointer to the variable where the pointer to the parent + | structure is returned. This parameter can be NULL. + | (C++: struc_t **) + | @return: NULL if failed | | is_citem(self, *args) - | is_citem(self) -> bool + | Is the current item is a ctree item? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21762,13 +22873,15 @@ class ctree_items_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< citem_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> citem_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ctree_items_t - | __init__(self, x) -> ctree_items_t + | x: qvector< citem_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -21777,17 +22890,22 @@ class ctree_items_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< citem_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: citem_t *const & | | _del(self, *args) | _del(self, x) -> bool + | x: citem_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: citem_t *const & | | append = push_back(self, *args) | @@ -21815,49 +22933,70 @@ class ctree_items_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< citem_t * >::iterator + | it: qvector< citem_t * >::iterator + | + | | erase(self, first, last) -> qvector< citem_t * >::iterator + | first: qvector< citem_t * >::iterator + | last: qvector< citem_t * >::iterator | | extract(self, *args) | extract(self) -> citem_t ** | | find(self, *args) | find(self, x) -> qvector< citem_t * >::iterator + | x: citem_t *const & + | + | | find(self, x) -> qvector< citem_t * >::const_iterator + | x: citem_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: citem_t *const & | | inject(self, *args) | inject(self, s, len) + | s: citem_t ** + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< citem_t * >::iterator + | it: qvector< citem_t * >::iterator + | x: citem_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> citem_t *& + | x: citem_t *const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: citem_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< citem_t * > & | | truncate(self, *args) | truncate(self) @@ -21896,11 +23035,17 @@ class ctree_parentee_t(ctree_visitor_t) | | __init__(self, *args) | __init__(self, post=False) -> ctree_parentee_t + | post: bool | | __repr__ = _swig_repr(self) | | recalc_parent_types(self, *args) - | recalc_parent_types(self) -> bool + | Recalculate types of parent node. 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 it is + | recommended to restart the traversal because the information about + | parent nodes is stale. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21918,55 +23063,101 @@ class ctree_parentee_t(ctree_visitor_t) | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) + | Traverse only expressions. The traversal will start at the specified + | item and continue until of one the visit_...() functions return a non- + | zero value. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | clr_prune(self) + | Do not prune children. This is an internal function, no need to call + | it. | | clr_restart(self, *args) - | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) - | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) + | 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. + | | leave_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) - | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) - | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) - | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) - | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) - | 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) - | set_restart(self) + | Restart the travesal. Meaningful only in 'apply_to_exprs()' | | visit_expr(self, *args) + | 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) + | 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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -21994,59 +23185,106 @@ class ctree_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags) -> ctree_visitor_t + | _flags: int | | __repr__ = _swig_repr(self) | | apply_to(self, *args) + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) + | Traverse only expressions. The traversal will start at the specified + | item and continue until of one the visit_...() functions return a non- + | zero value. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | clr_prune(self, *args) - | clr_prune(self) + | Do not prune children. This is an internal function, no need to call + | it. | | clr_restart(self, *args) - | clr_restart(self) + | Do not restart. This is an internal function, no need to call it. | | is_postorder(self, *args) - | is_postorder(self) -> bool + | Should the leave...() functions be called? | | leave_expr(self, *args) + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) + | 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. + | | leave_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | maintain_parents(self, *args) - | maintain_parents(self) -> bool + | Should the parent information by maintained? | | must_prune(self, *args) - | must_prune(self) -> bool + | Should the traversal skip the children of the current item? | | must_restart(self, *args) - | must_restart(self) -> bool + | Should the traversal restart? | | only_insns(self, *args) - | only_insns(self) -> bool + | Should all expressions be automatically pruned? | | parent_expr(self, *args) - | parent_expr(self) -> cexpr_t + | Get parent of the current item as an expression. | | parent_insn(self, *args) - | parent_insn(self) -> cinsn_t + | Get parent of the current item as a statement. | | prune_now(self, *args) - | 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) - | set_restart(self) + | Restart the travesal. Meaningful only in 'apply_to_exprs()' | | visit_expr(self, *args) + | 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) + | 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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22087,29 +23325,36 @@ class cwhile_t(cloop_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: cwhile_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: cwhile_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: cwhile_t const & | | __init__(self, *args) | __init__(self) -> cwhile_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: cwhile_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: cwhile_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: cwhile_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: cwhile_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22128,6 +23373,7 @@ class cwhile_t(cloop_t) | | assign(self, *args) | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) | cleanup(self) @@ -22154,6 +23400,7 @@ Help on function debug_hexrays_ctree in module ida_hexrays: debug_hexrays_ctree(*args) debug_hexrays_ctree(msg) + msg: char const * Help on function decompile in module ida_hexrays: @@ -22163,35 +23410,31 @@ 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. + decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t + @param pfn: pointer to function to decompile (C++: func_t *) + @param hf: extended error information (if failed) (C++: + hexrays_failure_t *) + @param decomp_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 + decompile_many(outfile, funcaddrs, flags) -> bool + @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: @@ -22200,116 +23443,88 @@ 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 *) + dstr(tif) -> char const * + @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) + dummy_ptrtype(ptrsize, isfp) -> tinfo_t + @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 *) + eamap_begin(map) -> eamap_iterator_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 *) + eamap_clear(map) + @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 *) + eamap_end(map) -> eamap_iterator_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) + eamap_erase(map, p) + @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 &) + eamap_find(map, key) -> eamap_iterator_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) + eamap_first(p) -> ea_t const & + @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 *) + eamap_free(map) + @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 &) + eamap_insert(map, key, val) -> eamap_iterator_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: @@ -22320,12 +23535,14 @@ class eamap_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: eamap_iterator_t const & | | __init__(self, *args) | __init__(self) -> eamap_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: eamap_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -22353,54 +23570,39 @@ class eamap_iterator_t(__builtin__.object) 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) + eamap_next(p) -> eamap_iterator_t + @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) + eamap_prev(p) -> eamap_iterator_t + @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) + eamap_second(p) -> cinsnptrvec_t + @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 *) + eamap_size(map) -> size_t + @param map (C++: eamap_t *) Help on class eamap_t in module ida_hexrays: @@ -22434,6 +23636,7 @@ class eamap_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> cinsnptrvec_t + | _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -22499,33 +23702,77 @@ class eamap_t(__builtin__.object) | | __begin = | eamap_begin(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * | | __clear = | eamap_clear(map) + | + | Parameters + | ---------- + | map: eamap_t * | | __end = | eamap_end(map) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * | | __erase = | eamap_erase(map, p) + | + | Parameters + | ---------- + | map: eamap_t * + | p: eamap_iterator_t | | __find = | eamap_find(map, key) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t const * + | key: ea_t const & | | __first = | eamap_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __insert = | eamap_insert(map, key, val) -> eamap_iterator_t + | + | Parameters + | ---------- + | map: eamap_t * + | key: ea_t const & + | val: cinsnptrvec_t const & | | __next = | eamap_next(p) -> eamap_iterator_t + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __second = | eamap_second(p) -> cinsnptrvec_t + | + | Parameters + | ---------- + | p: eamap_iterator_t | | __size = | eamap_size(map) -> size_t + | + | Parameters + | ---------- + | map: eamap_t * | | __swig_destroy__ = | delete_eamap_t(self) @@ -22557,9 +23804,11 @@ class fnum_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned short const & + | i: size_t | | __init__(self, *args) | __init__(self, data) -> fnum_array + | data: unsigned short (&)[6] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -22571,6 +23820,8 @@ class fnum_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: unsigned short const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22602,24 +23853,30 @@ class fnumber_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: fnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: fnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: fnumber_t const & | | __init__(self, *args) | __init__(self) -> fnumber_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: fnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: fnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: fnumber_t const & | | __repr__ = _swig_repr(self) | @@ -22631,6 +23888,7 @@ class fnumber_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int + | r: fnumber_t const & | | dereference_const_uint16(self, *args) | dereference_const_uint16(self) -> uint16 const * @@ -22675,7 +23933,12 @@ class gco_info_t(__builtin__.object) | __repr__ = _swig_repr(self) | | append_to_list(self, *args) + | Append operand info to LIST. This function converts IDA register + | number or stack offset to a decompiler list. + | | append_to_list(self, list, mba) -> bool + | @param list: list to append to (C++: mlist_t *) + | @param mba: microcode object (C++: const mba_t *) | | is_def(self, *args) | is_def(self) -> bool @@ -22716,137 +23979,114 @@ class gco_info_t(__builtin__.object) 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. + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t + @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 decomp_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 * + @param op (C++: ctype_t) 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. + returns true. - @param out (C++: gco_info_t *) + get_current_operand(out) -> bool + @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 + get_float_type(width) -> tinfo_t + @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) + get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t + @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 + get_member_type(mptr, type) -> bool + @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 + get_merror_desc(code, mba) -> str + @param code: Microcode error codes (C++: merror_t) + @param mba: the microcode array (C++: mba_t *) + @return: the error address Help on function get_mreg_name in module ida_hexrays: get_mreg_name(*args) + Get the microregister name. + 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. + @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) + get_op_signness(op) -> type_sign_t + @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 + @param code (C++: 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 @@ -22857,65 +24097,54 @@ get_temp_regs(*args) 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 + get_type(id, tif, guess) -> bool + @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) + get_unk_type(size) -> tinfo_t + @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 + @param code (C++: 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 + get_widget_vdui(f) -> vdui_t + @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 *) + getb_reginsn(ins) -> minsn_t + @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 *) + getf_reginsn(ins) -> minsn_t + @param ins (C++: const minsn_t *) Help on class graph_chains_t in module ida_hexrays: @@ -22935,19 +24164,26 @@ class graph_chains_t(block_chains_vec_t) | __repr__ = _swig_repr(self) | | acquire(self, *args) - | acquire(self) + | Lock the chains. | | for_all_chains(self, *args) + | Visit all chains + | | for_all_chains(self, cv, gca_flags) -> int + | @param cv: chain visitor (C++: chain_visitor_t &) + | @param gca_flags: combination of GCA_ bits (C++: int) | | is_locked(self, *args) - | 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) - | release(self) + | Unlock the chains. | | swap(self, *args) | swap(self, r) + | @param r (C++: graph_chains_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22966,6 +24202,7 @@ class graph_chains_t(block_chains_vec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> block_chains_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -22975,9 +24212,12 @@ class graph_chains_t(block_chains_vec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: block_chains_t const & | | at(self, *args) | at(self, _idx) -> block_chains_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -23001,7 +24241,12 @@ class graph_chains_t(block_chains_vec_t) | | erase(self, *args) | erase(self, it) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | + | | erase(self, first, last) -> block_chains_t + | first: qvector< block_chains_t >::iterator + | last: qvector< block_chains_t >::iterator | | extract(self, *args) | extract(self) -> block_chains_t @@ -23011,29 +24256,40 @@ class graph_chains_t(block_chains_vec_t) | | grow(self, *args) | grow(self, x=block_chains_t()) + | x: block_chains_t const & | | inject(self, *args) | inject(self, s, len) + | s: block_chains_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | x: block_chains_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> block_chains_t + | x: block_chains_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: block_chains_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -23053,18 +24309,22 @@ class graph_chains_t(block_chains_vec_t) 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) + has_cached_cfunc(ea) -> bool + @param ea (C++: ea_t) + +Help on function has_mcode_seloff in module ida_hexrays: + +has_mcode_seloff(*args) + has_mcode_seloff(op) -> bool + @param op (C++: mcode_t) Help on function hexrays_alloc in module ida_hexrays: hexrays_alloc(*args) hexrays_alloc(size) -> void * + @param size (C++: size_t) Help on class hexrays_failure_t in module ida_hexrays: @@ -23075,8 +24335,15 @@ class hexrays_failure_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> hexrays_failure_t - | __init__(self, c, ea, buf=None) -> hexrays_failure_t + | c: enum merror_t + | ea: ea_t + | buf: char const * + | + | | __init__(self, c, ea, buf) -> hexrays_failure_t + | c: enum merror_t + | ea: ea_t + | buf: qstring const & | | __repr__ = _swig_repr(self) | @@ -23116,6 +24383,7 @@ Help on function hexrays_free in module ida_hexrays: hexrays_free(*args) hexrays_free(ptr) + @param ptr (C++: void *) Help on class hexwarn_t in module ida_hexrays: @@ -23126,29 +24394,36 @@ class hexwarn_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: hexwarn_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: hexwarn_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: hexwarn_t const & | | __init__(self, *args) | __init__(self) -> hexwarn_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: hexwarn_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: hexwarn_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: hexwarn_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: hexwarn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23186,13 +24461,15 @@ class hexwarns_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< hexwarn_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> hexwarn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> hexwarns_t - | __init__(self, x) -> hexwarns_t + | x: qvector< hexwarn_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -23201,17 +24478,22 @@ class hexwarns_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< hexwarn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: hexwarn_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: hexwarn_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: hexwarn_t const & | | append = push_back(self, *args) | @@ -23239,52 +24521,74 @@ class hexwarns_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> hexwarn_t + | it: qvector< hexwarn_t >::iterator + | + | | erase(self, first, last) -> hexwarn_t + | first: qvector< hexwarn_t >::iterator + | last: qvector< hexwarn_t >::iterator | | extract(self, *args) | extract(self) -> hexwarn_t | | find(self, *args) | find(self, x) -> hexwarn_t + | x: hexwarn_t const & + | + | | find(self, x) -> hexwarn_t + | x: hexwarn_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=hexwarn_t()) + | x: hexwarn_t const & | | has(self, *args) | has(self, x) -> bool + | x: hexwarn_t const & | | inject(self, *args) | inject(self, s, len) + | s: hexwarn_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> hexwarn_t + | it: qvector< hexwarn_t >::iterator + | x: hexwarn_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> hexwarn_t + | x: hexwarn_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: hexwarn_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< hexwarn_t > & | | truncate(self, *args) | truncate(self) @@ -23321,7 +24625,15 @@ class history_item_t(ctext_position_t) | | __init__(self, *args) | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t + | _ea: ea_t + | _lnnum: int + | _x: int + | _y: int + | + | | __init__(self, _ea, p) -> history_item_t + | _ea: ea_t + | p: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -23348,27 +24660,37 @@ class history_item_t(ctext_position_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ctext_position_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ctext_position_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ctext_position_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: ctext_position_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ctext_position_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ctext_position_t const & | | compare(self, *args) | compare(self, r) -> int + | r: ctext_position_t const & | | in_ctree(self, *args) + | Is the cursor in the variable/type declaration area? + | | in_ctree(self, hdrlines) -> bool + | @param hdrlines: Number of lines of the declaration area (C++: int) | | ---------------------------------------------------------------------- | Data descriptors inherited from ctext_position_t: @@ -23413,16 +24735,18 @@ class history_t(qvector_history_t) | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | at = __getitem__(self, *args) | __getitem__(self, i) -> history_item_t + | i: size_t | | pop(self, *args) | pop(self) -> history_item_t | | push(self, *args) | push(self, v) + | v: history_item_t const & | | top(self, *args) | top(self) -> history_item_t @@ -23445,21 +24769,28 @@ class history_t(qvector_history_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< history_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> history_item_t + | i: size_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< history_item_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: history_item_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: history_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: history_item_t const & | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -23483,52 +24814,74 @@ class history_t(qvector_history_t) | | erase(self, *args) | erase(self, it) -> history_item_t + | it: qvector< history_item_t >::iterator + | + | | erase(self, first, last) -> history_item_t + | first: qvector< history_item_t >::iterator + | last: qvector< history_item_t >::iterator | | extract(self, *args) | extract(self) -> history_item_t | | find(self, *args) | find(self, x) -> history_item_t + | x: history_item_t const & + | + | | find(self, x) -> history_item_t + | x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=history_item_t()) + | x: history_item_t const & | | has(self, *args) | has(self, x) -> bool + | x: history_item_t const & | | inject(self, *args) | inject(self, s, len) + | s: history_item_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> history_item_t + | it: qvector< history_item_t >::iterator + | x: history_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: history_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< history_item_t > & | | truncate(self, *args) | truncate(self) @@ -23545,16 +24898,14 @@ class history_t(qvector_history_t) 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. + init_hexrays_plugin(flags=0) -> bool + @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: @@ -23564,341 +24915,340 @@ install_hexrays_callback(callback) 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) + install_microcode_filter(filter, install=True) -> bool + @param filter: - microcode generator object (C++: microcode_filter_t + *) + @param install: - TRUE - register the object, FALSE - unregister (C++: + bool) + @return: success Help on function is_additive in module ida_hexrays: is_additive(*args) - is_additive(op) -> bool - - Is additive operator? - - @param op (C++: ctype_t) + is_additive(op) -> bool + @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) + is_assignment(op) -> bool + @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) + is_binary(op) -> bool + @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) + is_bitop(op) -> bool + @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 + is_bool_type(type) -> bool + @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) + is_break_consumer(op) -> bool + @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) + is_commutative(op) -> bool + @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 &) + is_inplace_def(type) -> bool + @param type (C++: const tinfo_t &) Help on function is_kreg in module ida_hexrays: is_kreg(*args) + 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_kreg(r) -> bool - - - 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) - is_logical(op) -> bool - - Is logical operator? - - @param op (C++: ctype_t) + is_logical(op) -> bool + @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) + is_loop(op) -> bool + @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) + is_lvalue(op) -> bool + @param op (C++: ctype_t) Help on function is_may_access in module ida_hexrays: is_may_access(*args) is_may_access(maymust) -> bool + @param maymust (C++: maymust_t) Help on function is_mcode_addsub in module ida_hexrays: is_mcode_addsub(*args) is_mcode_addsub(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_call in module ida_hexrays: is_mcode_call(*args) is_mcode_call(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_commutative in module ida_hexrays: is_mcode_commutative(*args) is_mcode_commutative(mcode) -> bool + @param mcode (C++: mcode_t) 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 + @param mcode (C++: mcode_t) 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 + @param mcode (C++: mcode_t) Help on function is_mcode_divmod in module ida_hexrays: is_mcode_divmod(*args) is_mcode_divmod(op) -> bool + @param op (C++: mcode_t) Help on function is_mcode_fpu in module ida_hexrays: is_mcode_fpu(*args) is_mcode_fpu(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_j1 in module ida_hexrays: is_mcode_j1(*args) is_mcode_j1(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_jcond in module ida_hexrays: is_mcode_jcond(*args) is_mcode_jcond(mcode) -> bool + @param mcode (C++: mcode_t) 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) + is_mcode_propagatable(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_set in module ida_hexrays: is_mcode_set(*args) is_mcode_set(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_set1 in module ida_hexrays: is_mcode_set1(*args) is_mcode_set1(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_shift in module ida_hexrays: is_mcode_shift(*args) is_mcode_shift(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_xdsu in module ida_hexrays: is_mcode_xdsu(*args) is_mcode_xdsu(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_multiplicative in module ida_hexrays: is_multiplicative(*args) - is_multiplicative(op) -> bool - - Is multiplicative operator? - - @param op (C++: ctype_t) + is_multiplicative(op) -> bool + @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) + is_nonbool_type(type) -> bool + @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) + is_paf(t) -> bool + @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) + is_prepost(op) -> bool + @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) + is_ptr_or_array(t) -> bool + @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) + is_relational(op) -> bool + @param op (C++: ctype_t) Help on function is_signed_mcode in module ida_hexrays: is_signed_mcode(*args) is_signed_mcode(code) -> bool + @param code (C++: mcode_t) 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. + is_small_udt(tif) -> bool + @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 + is_type_correct(ptr) -> bool + @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) + is_unary(op) -> bool + @param op (C++: ctype_t) Help on function is_unsigned_mcode in module ida_hexrays: is_unsigned_mcode(*args) is_unsigned_mcode(code) -> bool + @param code (C++: mcode_t) + +Help on class iterator in module ida_hexrays: + +class iterator(__builtin__.object) + | Proxy of C++ bitset_t::iterator class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, n) -> bool + | n: bitset_t::iterator const & + | + | __init__(self, *args) + | __init__(self, n=-1) -> iterator + | n: int + | + | __ne__(self, *args) + | __ne__(self, n) -> bool + | n: bitset_t::iterator const & + | + | __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_iterator(self) Help on class ivl_t in module ida_hexrays: @@ -23914,24 +25264,32 @@ class ivl_t(uval_ivl_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ivl_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ivl_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ivl_t const & | | __init__(self, *args) | __init__(self, _off, _size) -> ivl_t + | _off: uval_t + | _size: uval_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: ivl_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ivl_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -23940,9 +25298,11 @@ class ivl_t(uval_ivl_t) | | compare(self, *args) | compare(self, r) -> int + | r: ivl_t const & | | contains(self, *args) | contains(self, off2) -> bool + | @param off2 (C++: uval_t) | | dstr(self, *args) | dstr(self) -> char const * @@ -23952,15 +25312,19 @@ class ivl_t(uval_ivl_t) | | extend_to_cover(self, *args) | extend_to_cover(self, r) -> bool + | @param r (C++: const ivl_t &) | | includes(self, *args) | includes(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) | | intersect(self, *args) | intersect(self, r) + | @param r (C++: const ivl_t &) | | overlap(self, *args) | overlap(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24054,25 +25418,31 @@ class ivlset_t(uval_ivl_ivlset_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ivlset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: ivlset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: ivlset_t const & | | __init__(self, *args) | __init__(self) -> ivlset_t - | __init__(self, ivl) -> ivlset_t + | ivl: ivl_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: ivlset_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: ivlset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ivlset_t const & | | __repr__ = _swig_repr(self) | @@ -24081,17 +25451,29 @@ class ivlset_t(uval_ivl_ivlset_t) | | add(self, *args) | add(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) + | + | | add(self, ea, size) -> bool + | ea: ea_t + | size: asize_t + | + | | add(self, ivs) -> bool + | ivs: ivlset_t const & | | addmasked(self, *args) | addmasked(self, ivs, mask) -> bool + | @param ivs (C++: const ivlset_t &) + | @param mask (C++: const ivl_t &) | | compare(self, *args) | compare(self, r) -> int + | r: ivlset_t const & | | contains(self, *args) | contains(self, off) -> bool + | @param off (C++: uval_t) | | count(self, *args) | count(self) -> asize_t @@ -24101,18 +25483,33 @@ class ivlset_t(uval_ivl_ivlset_t) | | has_common(self, *args) | has_common(self, ivl, strict=False) -> bool + | @param ivl (C++: const ivl_t &) + | @param strict (C++: bool) + | + | | has_common(self, ivs) -> bool + | ivs: ivlset_t const & | | includes(self, *args) | includes(self, ivs) -> bool + | @param ivs (C++: const ivlset_t &) | | intersect(self, *args) | intersect(self, ivs) -> bool + | @param ivs (C++: const ivlset_t &) | | sub(self, *args) | sub(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) + | + | | sub(self, ea, size) -> bool + | ea: ea_t + | size: asize_t + | + | | sub(self, ivs) -> bool + | ivs: ivlset_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24148,6 +25545,7 @@ class ivlset_t(uval_ivl_ivlset_t) | | getivl(self, *args) | getivl(self, idx) -> ivl_t + | idx: int | | lastivl(self, *args) | lastivl(self) -> ivl_t @@ -24162,10 +25560,12 @@ class ivlset_t(uval_ivl_ivlset_t) | set_all_values(self) | | single_value(self, *args) - | single_value(self, v) -> bool + | single_value(self) -> bool + | v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) | swap(self, r) + | r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from uval_ivl_ivlset_t: @@ -24180,11 +25580,14 @@ Help on function jcnd2set in module ida_hexrays: jcnd2set(*args) jcnd2set(code) -> mcode_t + @param code (C++: mcode_t) Help on function lexcompare in module ida_hexrays: lexcompare(*args) lexcompare(a, b) -> int + a: mop_t const & + b: mop_t const & Help on function lnot in module ida_hexrays: @@ -24199,58 +25602,65 @@ class lvar_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: lvar_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: lvar_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: lvar_locator_t const & | | __init__(self, *args) | __init__(self) -> lvar_locator_t - | __init__(self, loc, ea) -> lvar_locator_t + | loc: vdloc_t const & + | ea: ea_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: lvar_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: lvar_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: lvar_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: lvar_locator_t const & | | get_reg1(self, *args) - | get_reg1(self) -> mreg_t + | Get the register number of the variable. | | get_reg2(self, *args) - | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) - | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t + | Get information about scattered variable. | | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. | | is_reg1(self, *args) - | is_reg1(self) -> bool + | Is variable located on one register? | | is_reg2(self, *args) - | is_reg2(self) -> bool + | Is variable located on two registers? | | is_reg_var(self, *args) - | is_reg_var(self) -> bool + | Is variable located on register(s)? | | is_scattered(self, *args) - | is_scattered(self) -> bool + | Is variable scattered? | | is_stk_var(self, *args) - | is_stk_var(self) -> bool + | Is variable located on the stack? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24279,95 +25689,71 @@ class lvar_locator_t(__builtin__.object) 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 *) + lvar_mapping_begin(map) -> lvar_mapping_iterator_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 *) + lvar_mapping_clear(map) + @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 *) + lvar_mapping_end(map) -> lvar_mapping_iterator_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) + lvar_mapping_erase(map, p) + @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 &) + lvar_mapping_find(map, key) -> lvar_mapping_iterator_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) + lvar_mapping_first(p) -> lvar_locator_t + @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 *) + lvar_mapping_free(map) + @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 &) + lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_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: @@ -24378,12 +25764,14 @@ class lvar_mapping_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: lvar_mapping_iterator_t const & | | __init__(self, *args) | __init__(self) -> lvar_mapping_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: lvar_mapping_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -24411,54 +25799,39 @@ class lvar_mapping_iterator_t(__builtin__.object) 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) + lvar_mapping_next(p) -> 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_prev(p) -> lvar_mapping_iterator_t - - Move to the previous element. - - @param p (C++: lvar_mapping_iterator_t) + lvar_mapping_prev(p) -> 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_mapping_second(p) -> lvar_locator_t - - Get reference to the current map value. - - @param p (C++: lvar_mapping_iterator_t) + lvar_mapping_second(p) -> lvar_locator_t + @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 *) + lvar_mapping_size(map) -> size_t + @param map (C++: lvar_mapping_t *) Help on class lvar_mapping_t in module ida_hexrays: @@ -24474,6 +25847,7 @@ class lvar_mapping_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> lvar_locator_t + | _Keyval: lvar_locator_t const & | | size(self, *args) | size(self) -> size_t @@ -24505,36 +25879,50 @@ class lvar_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: lvar_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: lvar_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: lvar_ref_t const & | | __init__(self, *args) | __init__(self, m, i, o=0) -> lvar_ref_t + | m: mba_t * + | i: int + | o: sval_t + | + | | __init__(self, r) -> lvar_ref_t + | r: lvar_ref_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: lvar_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: lvar_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: lvar_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: lvar_ref_t const & | | swap(self, *args) | swap(self, r) + | @param r (C++: lvar_ref_t &) | | var(self, *args) - | var(self) -> lvar_t + | Retrieve the referenced variable. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24549,7 +25937,7 @@ class lvar_ref_t(__builtin__.object) | lvar_ref_t_idx_get(self) -> int | | mba - | lvar_ref_t_mba_get(self) -> mbl_array_t + | lvar_ref_t_mba_get(self) -> mba_t | | off | lvar_ref_t_off_get(self) -> sval_t @@ -24572,12 +25960,14 @@ class lvar_saved_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: lvar_saved_info_t const & | | __init__(self, *args) | __init__(self) -> lvar_saved_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: lvar_saved_info_t const & | | __repr__ = _swig_repr(self) | @@ -24665,13 +26055,15 @@ class lvar_saved_infos_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< lvar_saved_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_saved_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> lvar_saved_infos_t - | __init__(self, x) -> lvar_saved_infos_t + | 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. @@ -24680,17 +26072,22 @@ class lvar_saved_infos_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< lvar_saved_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: lvar_saved_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: lvar_saved_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: lvar_saved_info_t const & | | append = push_back(self, *args) | @@ -24718,52 +26115,74 @@ class lvar_saved_infos_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> lvar_saved_info_t + | it: qvector< lvar_saved_info_t >::iterator + | + | | erase(self, first, last) -> lvar_saved_info_t + | first: qvector< lvar_saved_info_t >::iterator + | last: qvector< lvar_saved_info_t >::iterator | | extract(self, *args) | extract(self) -> lvar_saved_info_t | | find(self, *args) | find(self, x) -> lvar_saved_info_t + | x: lvar_saved_info_t const & + | + | | find(self, x) -> lvar_saved_info_t + | x: lvar_saved_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=lvar_saved_info_t()) + | x: lvar_saved_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: lvar_saved_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: lvar_saved_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_saved_info_t + | it: qvector< lvar_saved_info_t >::iterator + | x: lvar_saved_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> lvar_saved_info_t + | x: lvar_saved_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_saved_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< lvar_saved_info_t > & | | truncate(self, *args) | truncate(self) @@ -24803,10 +26222,19 @@ class lvar_t(lvar_locator_t) | __repr__ = _swig_repr(self) | | accepts_type(self, *args) + | Check if the variable accept the specified type. Some types are + | forbidden (void, function types, wrong arrays, etc) + | | accepts_type(self, t, may_change_thisarg=False) -> bool + | @param t (C++: const tinfo_t &) + | @param may_change_thisarg (C++: bool) | | append_list(self, *args) + | Append local variable to mlist. + | | append_list(self, lst, pad_if_scattered=False) + | @param lst: list to append to (C++: mlist_t *) + | @param pad_if_scattered (C++: bool) | | clear_used(self, *args) | clear_used(self) @@ -24853,6 +26281,9 @@ class lvar_t(lvar_locator_t) | clr_unknown_width(self, *args) | clr_unknown_width(self) | + | clr_used_byref(self, *args) + | clr_used_byref(self) + | | clr_user_info(self, *args) | clr_user_info(self) | @@ -24863,34 +26294,49 @@ class lvar_t(lvar_locator_t) | clr_user_type(self) | | has_common(self, *args) + | Do variables overlap? + | | has_common(self, v) -> bool + | @param v (C++: const lvar_t &) | | has_common_bit(self, *args) + | Does the variable overlap with the specified location? + | | has_common_bit(self, loc, width2) -> bool + | @param loc (C++: const vdloc_t &) + | @param width2 (C++: asize_t) | | has_regname(self, *args) - | has_regname(self) -> bool + | Has a register name? (like _RAX) | | is_aliasable(self, *args) + | Is the variable aliasable? + | | is_aliasable(self, mba) -> bool + | @param mba: ptr to the current mba_t Aliasable variables may be + | modified indirectly (through a pointer) (C++: const mba_t + | *) | | is_automapped(self, *args) - | is_automapped(self) -> bool + | Was the variable automatically mapped to another variable? | | is_dummy_arg(self, *args) - | is_dummy_arg(self) -> bool + | Is a dummy argument (added to fill a hole in the argument list) | | is_forced_var(self, *args) - | is_forced_var(self) -> bool + | Is a forced variable? | | is_noptr_var(self, *args) - | is_noptr_var(self) -> bool + | Variable type should not be a pointer. | | is_notarg(self, *args) - | is_notarg(self) -> bool + | Is a local variable? (local variable cannot be an input argument) | | is_thisarg(self, *args) - | is_thisarg(self) -> bool + | Is 'this' argument of a C++ member function? + | + | is_used_byref(self, *args) + | Was the address of the variable taken? | | set_arg_var(self, *args) | set_arg_var(self) @@ -24905,7 +26351,10 @@ class lvar_t(lvar_locator_t) | set_fake_var(self) | | set_final_lvar_type(self, *args) + | Set final variable type. + | | set_final_lvar_type(self, t) + | @param t (C++: const tinfo_t &) | | set_floating_var(self, *args) | set_floating_var(self) @@ -24914,7 +26363,17 @@ class lvar_t(lvar_locator_t) | set_forced_var(self) | | set_lvar_type(self, *args) + | 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. + | | set_lvar_type(self, t, may_fail=False) -> bool + | @param t: new type (C++: const tinfo_t &) + | @param may_fail: if false and type is bad, interr (C++: bool) + | @return: success | | set_mapdst_var(self, *args) | set_mapdst_var(self) @@ -24949,6 +26408,9 @@ class lvar_t(lvar_locator_t) | set_used(self, *args) | set_used(self) | + | set_used_byref(self, *args) + | set_used_byref(self) + | | set_user_name(self, *args) | set_user_name(self) | @@ -24956,11 +26418,17 @@ class lvar_t(lvar_locator_t) | set_user_type(self) | | set_width(self, *args) + | 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()' . + | | set_width(self, w, svw_flags=0) -> bool + | @param w: new width (C++: int) + | @param svw_flags: combination of SVW_... bits (C++: int) + | @return: success | | type(self, *args) - | type(self) -> tinfo_t - | type(self) -> tinfo_t + | Get variable type. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24975,43 +26443,44 @@ class lvar_t(lvar_locator_t) | lvar_t_divisor_get(self) -> uint64 | | 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 * @@ -25023,10 +26492,10 @@ class lvar_t(lvar_locator_t) | lvar_t_tif_get(self) -> tinfo_t | | 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 @@ -25042,52 +26511,58 @@ class lvar_t(lvar_locator_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: lvar_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: lvar_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: lvar_locator_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: lvar_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: lvar_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: lvar_locator_t const & | | compare(self, *args) | compare(self, r) -> int + | r: lvar_locator_t const & | | get_reg1(self, *args) - | get_reg1(self) -> mreg_t + | Get the register number of the variable. | | get_reg2(self, *args) - | get_reg2(self) -> mreg_t + | Get the number of the second register (works only for ALOC_REG2 lvars) | | get_scattered(self, *args) - | get_scattered(self) -> scattered_aloc_t - | get_scattered(self) -> scattered_aloc_t + | Get information about scattered variable. | | get_stkoff(self, *args) - | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. | | is_reg1(self, *args) - | is_reg1(self) -> bool + | Is variable located on one register? | | is_reg2(self, *args) - | is_reg2(self) -> bool + | Is variable located on two registers? | | is_reg_var(self, *args) - | is_reg_var(self) -> bool + | Is variable located on register(s)? | | is_scattered(self, *args) - | is_scattered(self) -> bool + | Is variable scattered? | | is_stk_var(self, *args) - | is_stk_var(self) -> bool + | Is variable located on the stack? | | ---------------------------------------------------------------------- | Data descriptors inherited from lvar_locator_t: @@ -25120,13 +26595,20 @@ class lvar_uservec_t(__builtin__.object) | clear(self) | | find_info(self, *args) + | find saved user settings for given var + | | find_info(self, vloc) -> lvar_saved_info_t + | @param vloc (C++: const lvar_locator_t &) | | keep_info(self, *args) + | Preserve user settings for given var. + | | keep_info(self, v) + | @param v (C++: const lvar_t &) | | swap(self, *args) | swap(self, r) + | @param r (C++: lvar_uservec_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25176,16 +26658,37 @@ class lvars_t(qvector_lvar_t) | __repr__ = _swig_repr(self) | | find(self, *args) + | Find variable at the specified location. + | | find(self, ll) -> lvar_t + | @param ll: variable location (C++: const lvar_locator_t &) + | @return: pointer to variable or NULL | | find_input_lvar(self, *args) + | Find input variable at the specified location. + | | find_input_lvar(self, argloc, _size) -> int + | @param argloc: variable location (C++: const vdloc_t &) + | @param _size: variable size (C++: int) + | @return: -1 if failed, otherwise the index into the variables vector. | | find_lvar(self, *args) + | Find variable at the specified location. + | | find_lvar(self, location, width, defblk=-1) -> int + | @param location: variable location (C++: const vdloc_t &) + | @param width: variable size (C++: int) + | @param defblk: definition block of the lvar. -1 means any block (C++: + | int) + | @return: -1 if failed, otherwise the index into the variables vector. | | find_stkvar(self, *args) + | Find stack variable at the specified location. + | | find_stkvar(self, spoff, width) -> int + | @param spoff: offset from the minimal sp (C++: sval_t) + | @param width: variable size (C++: int) + | @return: -1 if failed, otherwise the index into the variables vector. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25204,9 +26707,11 @@ class lvars_t(qvector_lvar_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< lvar_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -25216,22 +26721,28 @@ class lvars_t(qvector_lvar_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< lvar_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: lvar_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: lvar_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: lvar_t const & | | append = push_back(self, *args) | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | at = __getitem__(self, *args) | __getitem__(self, i) -> lvar_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -25255,7 +26766,12 @@ class lvars_t(qvector_lvar_t) | | erase(self, *args) | erase(self, it) -> lvar_t + | it: qvector< lvar_t >::iterator + | + | | erase(self, first, last) -> lvar_t + | first: qvector< lvar_t >::iterator + | last: qvector< lvar_t >::iterator | | extract(self, *args) | extract(self) -> lvar_t @@ -25265,38 +26781,51 @@ class lvars_t(qvector_lvar_t) | | grow(self, *args) | grow(self, x=lvar_t()) + | x: lvar_t const & | | has(self, *args) | has(self, x) -> bool + | x: lvar_t const & | | inject(self, *args) | inject(self, s, len) + | s: lvar_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_t + | it: qvector< lvar_t >::iterator + | x: lvar_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< lvar_t > & | | truncate(self, *args) | truncate(self) @@ -25317,14 +26846,12 @@ 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, + make_pointer(type) -> tinfo_t + @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: @@ -25333,16 +26860,14 @@ 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. + mark_cfunc_dirty(ea, close_views=False) -> bool + @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: @@ -25367,6 +26892,7 @@ class mba_range_iterator_t(__builtin__.object) | | set(self, *args) | set(self, mbr) -> bool + | @param mbr (C++: const mba_ranges_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25401,7 +26927,11 @@ class mba_ranges_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _pfn=None) -> mba_ranges_t + | _pfn: func_t * + | + | | __init__(self, r) -> mba_ranges_t + | r: rangevec_t const & | | __repr__ = _swig_repr(self) | @@ -25444,10 +26974,10 @@ class mba_ranges_t(__builtin__.object) | __swig_destroy__ = | delete_mba_ranges_t(self) -Help on class mbl_array_t in module ida_hexrays: +Help on class mba_t in module ida_hexrays: -class mbl_array_t(__builtin__.object) - | Proxy of C++ mbl_array_t class. +class mba_t(__builtin__.object) + | Proxy of C++ mba_t class. | | Methods defined here: | @@ -25460,19 +26990,66 @@ class mbl_array_t(__builtin__.object) | | _print(self, *args) | _print(self, vp) + | vp: vd_printer_t & | | _register(self, *args) | _register(self) | + | alloc_fict_ea(self, *args) + | 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 LDManother 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. + | + | alloc_fict_ea(self, real_ea) -> ea_t + | @param real_ea (C++: ea_t) + | @return: a unique fictional address + | + | alloc_kreg(self, *args) + | Allocate a kernel register. + | + | alloc_kreg(self, size, check_size=True) -> mreg_t + | @param size: size of the register in bytes (C++: size_t) + | @param check_size: if true, only the sizes that correspond to a size + | of a basic type will be accepted. (C++: bool) + | @return: allocated register. mr_none means failure. + | | alloc_lvars(self, *args) - | 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) + | Analyze calls and determine calling conventions. + | | analyze_calls(self, acflags) -> int + | @param acflags: permitted actions that are necessary for successful + | detection of calling conventions. See Bits for + | analyze_calls() (C++: int) + | @return: number of calls. -1 means error. | | arg(self, *args) + | Get input argument of the decompiled function. + | | arg(self, n) -> lvar_t + | @param n: argument number (0..nargs-1) (C++: int) + | + | | arg(self, n) -> lvar_t + | @param n: argument number (0..nargs-1) (C++: int) | | argbase(self, *args) | argbase(self) -> sval_t @@ -25487,7 +27064,10 @@ class mbl_array_t(__builtin__.object) | bad_call_sp_detected(self) -> bool | | build_graph(self, *args) - | 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. | | calc_shins_flags(self, *args) | calc_shins_flags(self) -> int @@ -25503,18 +27083,30 @@ class mbl_array_t(__builtin__.object) | | clr_mba_flags(self, *args) | clr_mba_flags(self, f) + | @param f (C++: int) | | clr_mba_flags2(self, *args) | clr_mba_flags2(self, f) + | @param f (C++: int) | | combine_blocks(self, *args) - | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. + | It calls 'remove_empty_blocks()' as well. | | common_stkvars_stkargs(self, *args) | common_stkvars_stkargs(self) -> bool | | copy_block(self, *args) + | 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. + | | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t + | @param blk: block to copy (C++: mblock_t *) + | @param new_serial: position of the copied block (C++: int) + | @param cpblk_flags: combination of Batch decompilation bits ... bits + | (C++: int) + | @return: pointer to the new copy | | deleted_pairs(self, *args) | deleted_pairs(self) -> bool @@ -25526,22 +27118,60 @@ class mbl_array_t(__builtin__.object) | display_valnums(self) -> bool | | dump(self, *args) - | 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) | dump_mba(self, _verify, title) + | @param _verify (C++: bool) + | @param title (C++: const char *) | | find_mop(self, *args) + | 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. + | | find_mop(self, ctx, ea, is_dest, list) -> mop_t + | @param ctx: context information for the result (C++: op_parent_info_t + | *) + | @param ea: desired address of the operand (C++: ea_t) + | @param is_dest: search for destination operand? this argument may be + | ignored if the exact match could not be found (C++: + | bool) + | @param list: list of locations the correspond to the operand (C++: + | const mlist_t &) + | @return: pointer to the operand or NULL. | | for_all_insns(self, *args) + | Visit all instructions. This function visits all instruction and + | subinstructions. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) + | Visit all operands of all instructions. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_topinsns(self, *args) + | Visit all top level instructions. + | | for_all_topinsns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero + | + | free_kreg(self, *args) + | Free a kernel register. If wrong arguments are passed, this function + | will generate an internal error. + | + | free_kreg(self, reg, size) + | @param reg: a previously allocated kernel register (C++: mreg_t) + | @param size: size of the register in bytes (C++: size_t) | | generated_asserts(self, *args) | generated_asserts(self) -> bool @@ -25553,10 +27183,12 @@ class mbl_array_t(__builtin__.object) | get_curfunc(self) -> func_t * | | get_graph(self, *args) - | 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) | get_ida_argloc(self, v) -> argloc_t + | @param v (C++: const lvar_t &) | | get_lvars_region(self, *args) | get_lvars_region(self) -> ivl_t @@ -25568,8 +27200,14 @@ class mbl_array_t(__builtin__.object) | get_mba_flags2(self) -> int | | get_mblock(self, *args) + | Get basic block by its serial number. + | | get_mblock(self, n) -> mblock_t + | @param n (C++: int) + | + | | get_mblock(self, n) -> mblock_t + | @param n (C++: int) | | get_shadow_region(self, *args) | get_shadow_region(self) -> ivl_t @@ -25578,7 +27216,11 @@ class mbl_array_t(__builtin__.object) | get_stack_region(self) -> ivl_t | | get_std_region(self, *args) + | Get information about various memory regions. We map the stack frame + | to the global memory, to some unused range. + | | get_std_region(self, idx) -> ivl_t + | @param idx (C++: memreg_index_t) | | graph_insns(self, *args) | graph_insns(self) -> bool @@ -25594,9 +27236,19 @@ class mbl_array_t(__builtin__.object) | | idaloc2vd(self, *args) | idaloc2vd(self, loc, width) -> vdloc_t + | @param loc (C++: const argloc_t &) + | @param width (C++: int) | | insert_block(self, *args) + | 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. + | | insert_block(self, bblk) -> mblock_t + | @param bblk: the new block will be inserted before BBLK (C++: int) + | @return: ptr to the new block | | is_cdtr(self, *args) | is_cdtr(self) -> bool @@ -25615,6 +27267,7 @@ class mbl_array_t(__builtin__.object) | | is_stkarg(self, *args) | is_stkarg(self, v) -> bool + | @param v (C++: const lvar_t &) | | is_thunk(self, *args) | is_thunk(self) -> bool @@ -25631,17 +27284,37 @@ class mbl_array_t(__builtin__.object) | lvars_renamed(self, *args) | lvars_renamed(self) -> bool | + | map_fict_ea(self, *args) + | Resolve a fictional address. This function provides a reverse of the + | mapping made by 'alloc_fict_ea()' . + | + | map_fict_ea(self, fict_ea) -> ea_t + | @param fict_ea: fictional definition address (C++: ea_t) + | @return: the real instruction address + | | mark_chains_dirty(self, *args) - | 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) | may_refine_rettype(self) -> bool | | optimize_global(self, *args) - | 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. | | optimize_local(self, *args) + | Optimize each basic block locally + | | optimize_local(self, locopt_bits) -> int + | @param locopt_bits: combination of Bits for optimize_local() bits + | (C++: int) + | @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) | optimized(self) -> bool @@ -25659,10 +27332,15 @@ class mbl_array_t(__builtin__.object) | regargs_is_not_aligned(self) -> bool | | remove_block(self, *args) + | Delete a block. + | | remove_block(self, blk) -> bool + | @param blk: block to delete (C++: mblock_t *) + | @return: true if at least one of the other blocks became empty or + | unreachable | | remove_empty_blocks(self, *args) - | remove_empty_blocks(self) -> bool + | Delete all empty blocks. | | returns_fpval(self, *args) | returns_fpval(self) -> bool @@ -25670,17 +27348,25 @@ class mbl_array_t(__builtin__.object) | rtype_refined(self, *args) | rtype_refined(self) -> bool | + | save_snapshot(self, *args) + | Create and save microcode snapshot. + | + | save_snapshot(self, description) + | @param description (C++: const char *) + | | saverest_done(self, *args) | saverest_done(self) -> bool | | serialize(self, *args) - | serialize(self) + | Serialize mbl array into a sequence of bytes. | | set_mba_flags(self, *args) | set_mba_flags(self, f) + | @param f (C++: int) | | set_mba_flags2(self, *args) | set_mba_flags2(self, f) + | @param f (C++: int) | | short_display(self, *args) | short_display(self) -> bool @@ -25693,9 +27379,11 @@ class mbl_array_t(__builtin__.object) | | stkoff_ida2vd(self, *args) | stkoff_ida2vd(self, off) -> sval_t + | @param off (C++: sval_t) | | stkoff_vd2ida(self, *args) | stkoff_vd2ida(self, off) -> sval_t + | @param off (C++: sval_t) | | term(self, *args) | term(self) @@ -25711,10 +27399,25 @@ class mbl_array_t(__builtin__.object) | | vd2idaloc(self, *args) | vd2idaloc(self, loc, width, spd) -> argloc_t + | @param loc (C++: const vdloc_t &) + | @param width (C++: int) + | spd: sval_t + | + | | vd2idaloc(self, loc, width) -> argloc_t + | @param loc (C++: const vdloc_t &) + | @param width (C++: int) | | verify(self, *args) + | Verify microcode consistency. + | | verify(self, always) + | @param always: 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. (C++: bool) | | write_to_const_detected(self, *args) | write_to_const_detected(self) -> bool @@ -25723,7 +27426,8 @@ class mbl_array_t(__builtin__.object) | Static methods defined here: | | deserialize(*args) - | deserialize(bytes) -> mbl_array_t + | deserialize(bytes) -> mba_t + | bytes: uchar const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25735,159 +27439,160 @@ class mbl_array_t(__builtin__.object) | list of weak references to the object (if defined) | | aliased_args - | mbl_array_t_aliased_args_get(self) -> ivl_t + | mba_t_aliased_args_get(self) -> ivl_t | | aliased_memory - | mbl_array_t_aliased_memory_get(self) -> ivlset_t + | mba_t_aliased_memory_get(self) -> ivlset_t | | aliased_vars - | mbl_array_t_aliased_vars_get(self) -> ivl_t + | mba_t_aliased_vars_get(self) -> ivl_t | | argidx - | mbl_array_t_argidx_get(self) -> intvec_t + | mba_t_argidx_get(self) -> intvec_t | | blocks - | mbl_array_t_blocks_get(self) -> mblock_t + | mba_t_blocks_get(self) -> mblock_t | | cc - | mbl_array_t_cc_get(self) -> cm_t + | mba_t_cc_get(self) -> cm_t | | consumed_argregs - | mbl_array_t_consumed_argregs_get(self) -> rlist_t + | mba_t_consumed_argregs_get(self) -> rlist_t | | entry_ea - | mbl_array_t_entry_ea_get(self) -> ea_t + | mba_t_entry_ea_get(self) -> ea_t | | error_ea - | mbl_array_t_error_ea_get(self) -> ea_t + | mba_t_error_ea_get(self) -> ea_t | | error_strarg - | mbl_array_t_error_strarg_get(self) -> qstring * + | mba_t_error_strarg_get(self) -> qstring * | | final_type - | mbl_array_t_final_type_get(self) -> bool + | mba_t_final_type_get(self) -> bool | | first_epilog_ea - | mbl_array_t_first_epilog_ea_get(self) -> ea_t + | mba_t_first_epilog_ea_get(self) -> ea_t | | fpd - | mbl_array_t_fpd_get(self) -> sval_t + | mba_t_fpd_get(self) -> sval_t | | frregs - | mbl_array_t_frregs_get(self) -> sval_t + | mba_t_frregs_get(self) -> sval_t | | frsize - | mbl_array_t_frsize_get(self) -> sval_t + | mba_t_frsize_get(self) -> sval_t | | fti_flags - | mbl_array_t_fti_flags_get(self) -> int + | mba_t_fti_flags_get(self) -> int | | fullsize - | mbl_array_t_fullsize_get(self) -> sval_t + | mba_t_fullsize_get(self) -> sval_t | | gotoff_stkvars - | mbl_array_t_gotoff_stkvars_get(self) -> ivlset_t + | mba_t_gotoff_stkvars_get(self) -> ivlset_t | | idb_node - | mbl_array_t_idb_node_get(self) -> netnode + | mba_t_idb_node_get(self) -> netnode | | idb_spoiled - | mbl_array_t_idb_spoiled_get(self) -> reginfovec_t + | mba_t_idb_spoiled_get(self) -> reginfovec_t | | idb_type - | mbl_array_t_idb_type_get(self) -> tinfo_t + | mba_t_idb_type_get(self) -> tinfo_t | | inargoff - | mbl_array_t_inargoff_get(self) -> sval_t + | mba_t_inargoff_get(self) -> sval_t | | label - | mbl_array_t_label_get(self) -> qstring * + | mba_t_label_get(self) -> qstring * | | last_prolog_ea - | mbl_array_t_last_prolog_ea_get(self) -> ea_t + | mba_t_last_prolog_ea_get(self) -> ea_t | | maturity - | mbl_array_t_maturity_get(self) -> mba_maturity_t + | mba_t_maturity_get(self) -> mba_maturity_t | | mbr - | mbl_array_t_mbr_get(self) -> mba_ranges_t + | mba_t_mbr_get(self) -> mba_ranges_t | | minargref - | mbl_array_t_minargref_get(self) -> sval_t + | mba_t_minargref_get(self) -> sval_t | | minstkref - | mbl_array_t_minstkref_get(self) -> sval_t + | mba_t_minstkref_get(self) -> sval_t | | minstkref_ea - | mbl_array_t_minstkref_ea_get(self) -> ea_t + | mba_t_minstkref_ea_get(self) -> ea_t | | natural - | mbl_array_t_natural_get(self) -> mblock_t ** + | mba_t_natural_get(self) -> mblock_t ** | | nodel_memory - | mbl_array_t_nodel_memory_get(self) -> mlist_t + | mba_t_nodel_memory_get(self) -> mlist_t | | notes - | mbl_array_t_notes_get(self) -> hexwarns_t + | mba_t_notes_get(self) -> hexwarns_t | | npurged - | mbl_array_t_npurged_get(self) -> int + | mba_t_npurged_get(self) -> int | | occurred_warns - | mbl_array_t_occurred_warns_get(self) -> uchar [32] + | mba_t_occurred_warns_get(self) -> uchar [32] | | pfn_flags - | mbl_array_t_pfn_flags_get(self) -> int + | mba_t_pfn_flags_get(self) -> int | | qty - | mbl_array_t_qty_get(self) -> int + | mba_t_qty_get(self) -> int | | reqmat - | mbl_array_t_reqmat_get(self) -> mba_maturity_t + | mba_t_reqmat_get(self) -> mba_maturity_t | | restricted_memory - | mbl_array_t_restricted_memory_get(self) -> ivlset_t + | mba_t_restricted_memory_get(self) -> ivlset_t | | retsize - | mbl_array_t_retsize_get(self) -> int + | mba_t_retsize_get(self) -> int | | retvaridx - | mbl_array_t_retvaridx_get(self) -> int + | mba_t_retvaridx_get(self) -> int | | shadow_args - | mbl_array_t_shadow_args_get(self) -> int + | mba_t_shadow_args_get(self) -> int | | spd_adjust - | mbl_array_t_spd_adjust_get(self) -> sval_t + | mba_t_spd_adjust_get(self) -> sval_t | | spoiled_list - | mbl_array_t_spoiled_list_get(self) -> mlist_t + | mba_t_spoiled_list_get(self) -> mlist_t | | stacksize - | mbl_array_t_stacksize_get(self) -> sval_t + | mba_t_stacksize_get(self) -> sval_t | | std_ivls - | mbl_array_t_std_ivls_get(self) -> ivl_with_name_t + | mba_t_std_ivls_get(self) -> ivl_with_name_t | | thisown | The membership flag | | tmpstk_size - | mbl_array_t_tmpstk_size_get(self) -> sval_t + | mba_t_tmpstk_size_get(self) -> sval_t | | vars - | mbl_array_t_vars_get(self) -> lvars_t + | mba_t_vars_get(self) -> lvars_t | | ---------------------------------------------------------------------- | Data and other attributes defined here: | - | __swig_destroy__ = - | delete_mbl_array_t(self) + | __swig_destroy__ = + | delete_mba_t(self) -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_deserialize(bytes) -> mbl_array_t +mba_t_deserialize(*args) + mba_t_deserialize(bytes) -> mba_t + bytes: uchar const * Help on class mbl_graph_t in module ida_hexrays: @@ -25909,25 +27614,54 @@ class mbl_graph_t(simple_graph_t) | get_chain_stamp(self) -> int | | get_du(self, *args) + | Get def-use chains. + | | get_du(self, gctype) -> graph_chains_t + | @param gctype (C++: gctype_t) | | get_mblock(self, *args) | get_mblock(self, n) -> mblock_t + | @param n (C++: int) | | get_ud(self, *args) + | Get use-def chains. + | | get_ud(self, gctype) -> graph_chains_t + | @param gctype (C++: gctype_t) | | is_du_chain_dirty(self, *args) + | Is the def-use chain of the specified kind dirty? + | | is_du_chain_dirty(self, gctype) -> bool + | @param gctype (C++: gctype_t) | | is_redefined_globally(self, *args) + | Is LIST redefined in the graph? + | | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | @param list (C++: const mlist_t &) + | @param b1 (C++: int) + | @param b2 (C++: int) + | @param m1 (C++: const minsn_t *) + | @param m2 (C++: const minsn_t *) + | @param maymust (C++: maymust_t) | | is_ud_chain_dirty(self, *args) + | Is the use-def chain of the specified kind dirty? + | | is_ud_chain_dirty(self, gctype) -> bool + | @param gctype (C++: gctype_t) | | is_used_globally(self, *args) + | Is LIST used in the graph? + | | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | @param list (C++: const mlist_t &) + | @param b1 (C++: int) + | @param b2 (C++: int) + | @param m1 (C++: const minsn_t *) + | @param m2 (C++: const minsn_t *) + | @param maymust (C++: maymust_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25963,64 +27697,208 @@ class mblock_t(__builtin__.object) | | _print(self, *args) | _print(self, vp) + | vp: vd_printer_t & | | append_def_list(self, *args) + | 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. + | | append_def_list(self, list, op, maymust) + | @param list: ptr to the output buffer. we will append to it. (C++: + | mlist_t *) + | @param op: operand to calculate the def list of (C++: const mop_t &) + | @param maymust: should we calculate 'may-def' or 'must-def' list? see + | maymust_t for more details. (C++: maymust_t) | | append_use_list(self, *args) + | 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. + | | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) + | @param list: ptr to the output buffer. we will append to it. (C++: + | mlist_t *) + | @param op: operand to calculate the use list of (C++: const mop_t &) + | @param maymust: should we calculate 'may-use' or 'must-use' list? see + | maymust_t for more details. (C++: maymust_t) + | @param mask: 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. + | (C++: bitrange_t) | | build_def_list(self, *args) + | 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. + | | build_def_list(self, ins, maymust) -> mlist_t + | @param ins: instruction to calculate the def list of (C++: const + | minsn_t &) + | @param maymust: should we calculate 'may-def' or 'must-def' list? see + | maymust_t for more details. (C++: maymust_t) + | @return: the calculated def-list | | build_lists(self, *args) + | Build def-use lists and eliminate deads. + | | build_lists(self, kill_deads) -> int + | @param kill_deads: do delete dead instructions? (C++: bool) + | @return: the number of eliminated instructions Better mblock_t::call + | make_lists_ready() rather than this function. | | build_use_list(self, *args) + | 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. + | | build_use_list(self, ins, maymust) -> mlist_t + | @param ins: instruction to calculate the use list of (C++: const + | minsn_t &) + | @param maymust: should we calculate 'may-use' or 'must-use' list? see + | maymust_t for more details. (C++: maymust_t) + | @return: the calculated use-list | | dump(self, *args) - | dump(self) + | Dump block info. This function is useful for debugging, see + | 'mba_t::dump' for info | | dump_block(self, *args) | dump_block(self, title) + | @param title (C++: const char *) | | empty(self, *args) | empty(self) -> bool | | find_access(self, *args) + | Find the instruction that accesses the specified operand. This + | function search inside one block. + | | find_access(self, op, parent, mend, fdflags) -> minsn_t + | @param op: operand to search for (C++: const mop_t &) + | @param parent (C++: minsn_t **) + | @param mend (C++: const minsn_t *) + | @param fdflags (C++: int) + | @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. NULL means 'not found'. | | find_def(self, *args) | find_def(self, op, p_i1, i2, fdflags) -> minsn_t + | @param op (C++: const mop_t &) + | @param p_i1 (C++: minsn_t **) + | @param i2 (C++: const minsn_t *) + | @param fdflags (C++: int) | | find_first_use(self, *args) + | Find the first insn that uses the specified list in the insn range. + | | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | @param list: list of locations. LIST may be modified by the function: + | redefined locations will be removed from it. (C++: + | mlist_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) + | @return: pointer to such instruction or NULL. Upon return LIST will + | contain only locations not redefined by insns [i1..result] | | find_redefinition(self, *args) + | Find the first insn that redefines any part of the list in the insn + | range. + | | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | @param list: list of locations to check. (C++: const mlist_t &) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) + | @return: pointer to such instruction or NULL. | | find_use(self, *args) | find_use(self, op, p_i1, i2, fdflags) -> minsn_t + | @param op (C++: const mop_t &) + | @param p_i1 (C++: minsn_t **) + | @param i2 (C++: const minsn_t *) + | @param fdflags (C++: int) | | for_all_insns(self, *args) + | Visit all instructions. This function visits subinstructions too. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() | | for_all_ops(self, *args) + | Visit all operands. This function visit subinstruction operands too. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @return: zero or the value returned by mv.visit_mop() | | for_all_uses(self, *args) + | Visit all operands that use LIST. + | | for_all_uses(self, list, i1, i2, mmv) -> int + | @param list: ptr to the list of locations. it may be modified: parts + | that get redefined by the instructions in [i1,i2) will be + | deleted. (C++: mlist_t *) + | @param i1: starting instruction. must be a top level insn. (C++: + | minsn_t *) + | @param i2: ending instruction (excluded). must be a top level insn. + | (C++: minsn_t *) + | @param mmv: operand visitor (C++: mlist_mop_visitor_t &) + | @return: zero or the value returned by mmv.visit_mop() | | get_reginsn_qty(self, *args) - | get_reginsn_qty(self) -> size_t + | Calculate number of register instructions in the block. Assertions are + | skipped by this function. | | get_valranges(self, *args) + | Find possible values for a block. + | | get_valranges(self, res, vivl, vrflags) -> bool + | @param res: set of value ranges (C++: valrng_t *) + | @param vivl: what to search for (C++: const vivl_t &) + | @param vrflags: combination of bits for get_valranges bits (C++: + | int) + | + | | get_valranges(self, res, vivl, m, vrflags) -> bool + | @param res: set of value ranges (C++: valrng_t *) + | @param vivl: what to search for (C++: const vivl_t &) + | m: minsn_t const * + | @param vrflags: combination of bits for get_valranges bits (C++: + | int) | | insert_into_block(self, *args) + | Insert instruction into the doubly linked list + | | insert_into_block(self, nm, om) -> minsn_t + | @param nm: new instruction (C++: minsn_t *) + | @param om: existing instruction, part of the doubly linked list if + | NULL, then the instruction will be inserted at the + | beginning of the list NM will be inserted immediately after + | OM (C++: minsn_t *) + | @return: pointer to NM | | is_branch(self, *args) | is_branch(self) -> bool @@ -26032,10 +27910,32 @@ class mblock_t(__builtin__.object) | is_nway(self) -> bool | | is_redefined(self, *args) + | Is the list redefined by the specified instructions? + | | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | @param list: list of locations to check. (C++: const mlist_t &) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) | | is_rhs_redefined(self, *args) + | Is the right hand side of the instruction redefined the insn range? + | "right hand side" corresponds to the source operands of the + | instruction. + | | is_rhs_redefined(self, ins, i1, i2) -> bool + | @param ins: instruction to consider (C++: const minsn_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) | | is_simple_goto_block(self, *args) | is_simple_goto_block(self) -> bool @@ -26047,7 +27947,20 @@ class mblock_t(__builtin__.object) | is_unknown_call(self) -> bool | | is_used(self, *args) + | Is the list used by the specified instruction range? + | | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | @param list: list of locations. LIST may be modified by the function: + | redefined locations will be removed from it. (C++: + | mlist_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) | | lists_dirty(self, *args) | lists_dirty(self) -> bool @@ -26059,7 +27972,12 @@ class mblock_t(__builtin__.object) | make_lists_ready(self) -> int | | make_nop(self, *args) + | 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. + | | make_nop(self, m) + | @param m (C++: minsn_t *) | | mark_lists_dirty(self, *args) | mark_lists_dirty(self) @@ -26068,28 +27986,49 @@ class mblock_t(__builtin__.object) | needs_propagation(self) -> bool | | npred(self, *args) - | npred(self) -> int + | Get number of block predecessors. | | nsucc(self, *args) - | nsucc(self) -> int + | Get number of block successors. | | optimize_block(self, *args) - | 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. | | optimize_insn(self, *args) + | Optimize one instruction in the context of the block. + | | optimize_insn(self, m, optflags=0x0002|0x0004) -> int + | @param m: pointer to a top level instruction (C++: minsn_t *) + | @param optflags: combination of optimization flags bits (C++: int) + | @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) - | 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). | | pred(self, *args) | pred(self, n) -> int + | @param n (C++: int) | | preds(self) | Iterates the list of predecessor blocks | | remove_from_block(self, *args) + | Remove instruction from the doubly linked list + | | remove_from_block(self, m) -> minsn_t + | @param m: instruction to remove The removed instruction is not + | deleted, the caller gets its ownership (C++: minsn_t *) + | @return: pointer to the next instruction | | request_demote64(self, *args) | request_demote64(self) @@ -26099,6 +28038,7 @@ class mblock_t(__builtin__.object) | | succ(self, *args) | succ(self, n) -> int + | @param n (C++: int) | | succs(self) | Iterates the list of successor blocks @@ -26137,7 +28077,7 @@ class mblock_t(__builtin__.object) | mblock_t_maybuse_get(self) -> mlist_t | | mba - | mblock_t_mba_get(self) -> mbl_array_t + | mblock_t_mba_get(self) -> mba_t | | minbargref | mblock_t_minbargref_get(self) -> sval_t @@ -26198,29 +28138,49 @@ class mcallarg_t(mop_t) | | __init__(self, *args) | __init__(self) -> mcallarg_t - | __init__(self, rarg) -> mcallarg_t + | rarg: mop_t const & | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | copy_mop(self, *args) | copy_mop(self, op) + | @param op (C++: const mop_t &) | | dstr(self, *args) | dstr(self) -> char const * | | make_int(self, *args) | make_int(self, val, val_ea, opno=0) + | @param val (C++: int) + | @param val_ea (C++: ea_t) + | @param opno (C++: int) | | make_uint(self, *args) | make_uint(self, val, val_ea, opno=0) + | @param val (C++: int) + | @param val_ea (C++: ea_t) + | @param opno (C++: int) | | set_regarg(self, *args) | set_regarg(self, mr, sz, tif) + | @param mr (C++: mreg_t) + | @param sz (C++: int) + | @param tif (C++: const tinfo_t &) + | + | | set_regarg(self, mr, tif) + | @param mr (C++: mreg_t) + | @param tif (C++: const tinfo_t &) + | + | | set_regarg(self, mr, dt, sign=type_unsigned) + | @param mr (C++: mreg_t) + | dt: char + | sign: type_sign_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26251,12 +28211,15 @@ class mcallarg_t(mop_t) | | __eq__(self, *args) | __eq__(self, rop) -> bool + | rop: mop_t const & | | __lt__(self, *args) | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool + | rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -26318,35 +28281,90 @@ class mcallarg_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -26368,90 +28386,172 @@ class mcallarg_t(mop_t) | | _set_a(self, *args) | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) + | _v: int | | _set_c(self, *args) | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) + | 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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) + | 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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | empty(self, *args) | empty(self) -> bool | | equal_mops(self, *args) + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) | erase(self) @@ -26460,65 +28560,122 @@ class mcallarg_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) + | 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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | is01(self, *args) - | 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) - | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool + | reg: mreg_t | | is_cc(self, *args) - | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool + | @param n (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | code: enum mcode_t | | is_kreg(self, *args) - | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) + | is_lowaddr(self) -> bool | | is_mob(self, *args) + | Is a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -26530,18 +28687,30 @@ class mcallarg_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) | is_udt(self) -> bool @@ -26553,53 +28722,136 @@ class mcallarg_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | lexcompare(self, *args) | lexcompare(self, rop) -> int + | @param rop (C++: const mop_t &) | | make_blkref(self, *args) + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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) | probably_floating(self) -> bool @@ -26609,6 +28861,9 @@ class mcallarg_t(mop_t) | set_impptr_done(self, *args) | set_impptr_done(self) | + | set_lowaddr(self, *args) + | set_lowaddr(self) + | | set_udt(self, *args) | set_udt(self) | @@ -26616,19 +28871,32 @@ class mcallarg_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) + | 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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | value(self, *args) + | 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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) | zero(self) @@ -26698,13 +28966,15 @@ class mcallargs_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< mcallarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> mcallarg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> mcallargs_t - | __init__(self, x) -> mcallargs_t + | x: qvector< mcallarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -26714,20 +28984,26 @@ class mcallargs_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< mcallarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: mcallarg_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: mcallarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: mcallarg_t const & | | at(self, *args) | at(self, _idx) -> mcallarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -26751,52 +29027,74 @@ class mcallargs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> mcallarg_t + | it: qvector< mcallarg_t >::iterator + | + | | erase(self, first, last) -> mcallarg_t + | first: qvector< mcallarg_t >::iterator + | last: qvector< mcallarg_t >::iterator | | extract(self, *args) | extract(self) -> mcallarg_t | | find(self, *args) | find(self, x) -> mcallarg_t + | x: mcallarg_t const & + | + | | find(self, x) -> mcallarg_t + | x: mcallarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=mcallarg_t()) + | x: mcallarg_t const & | | has(self, *args) | has(self, x) -> bool + | x: mcallarg_t const & | | inject(self, *args) | inject(self, s, len) + | s: mcallarg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> mcallarg_t + | it: qvector< mcallarg_t >::iterator + | x: mcallarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> mcallarg_t + | x: mcallarg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: mcallarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< mcallarg_t > & | | truncate(self, *args) | truncate(self) @@ -26828,11 +29126,15 @@ class mcallinfo_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t + | _callee: ea_t + | _sargs: int | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, size=-1, shins_flags=0x04|0x02) + | size: int + | shins_flags: int | | dstr(self, *args) | dstr(self) -> char const * @@ -26845,9 +29147,11 @@ class mcallinfo_t(__builtin__.object) | | lexcompare(self, *args) | lexcompare(self, f) -> int + | @param f (C++: const mcallinfo_t &) | | set_type(self, *args) | set_type(self, type) -> bool + | @param type (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26927,24 +29231,30 @@ class mcases_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: mcases_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: mcases_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: mcases_t const & | | __init__(self, *args) | __init__(self) -> mcases_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: mcases_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: mcases_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: mcases_t const & | | __repr__ = _swig_repr(self) | @@ -26953,6 +29263,7 @@ class mcases_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int + | r: mcases_t const & | | dstr(self, *args) | dstr(self) -> char const * @@ -26962,12 +29273,14 @@ class mcases_t(__builtin__.object) | | resize(self, *args) | resize(self, s) + | @param s (C++: int) | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | @param r (C++: mcases_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26997,6 +29310,7 @@ Help on function mcode_modifies_d in module ida_hexrays: mcode_modifies_d(*args) mcode_modifies_d(mcode) -> bool + @param mcode (C++: mcode_t) Help on class microcode_filter_t in module ida_hexrays: @@ -27009,14 +29323,25 @@ class microcode_filter_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> microcode_filter_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) + | generate microcode for an instruction + | | apply(self, cdg) -> merror_t + | @param cdg (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to + | the next instruction MERR_INSN - not generated - the caller + | should try the standard way else - error | | match(self, *args) + | check if the filter object is to be appied + | | match(self, cdg) -> bool + | @param cdg (C++: codegen_t &) + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27045,10 +29370,15 @@ class minsn_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _ea) -> minsn_t + | _ea: ea_t + | + | | __init__(self, m) -> minsn_t + | m: minsn_t const & | | __lt__(self, *args) | __lt__(self, ri) -> bool + | ri: minsn_t const & | | __repr__ = _swig_repr(self) | @@ -27062,7 +29392,9 @@ class minsn_t(__builtin__.object) | _ensure_no_obj(self, o, attr, attr_is_acquired) | | _make_nop(self, *args) - | _make_nop(self) + | Convert instruction to nop. This function erases all info but the + | prev/next fields. In most cases it is better to use + | 'mblock_t::make_nop()' , which also marks the block lists as dirty. | | _maybe_disown_and_deregister(self) | @@ -27081,6 +29413,7 @@ class minsn_t(__builtin__.object) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) | _register(self) @@ -27113,47 +29446,97 @@ class minsn_t(__builtin__.object) | clr_tailcall(self) | | contains_call(self, *args) + | Does the instruction contain a call? + | | contains_call(self, with_helpers=False) -> bool + | @param with_helpers (C++: bool) | | contains_opcode(self, *args) + | Does the instruction have the specified opcode? This function searches + | subinstructions as well. + | | contains_opcode(self, mcode) -> bool + | @param mcode: opcode to search for. (C++: mcode_t) | | dstr(self, *args) - | dstr(self) -> char const * + | Get displayable text without tags in a static buffer. | | equal_insns(self, *args) + | Compare instructions. This is the main comparison function for + | instructions. + | | equal_insns(self, m, eqflags) -> bool + | @param m: instruction to compare with (C++: const minsn_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | find_call(self, *args) + | Find a call instruction. Check for the current instruction and its + | subinstructions. + | | find_call(self, with_helpers=False) -> minsn_t + | @param with_helpers: consider helper calls as well? (C++: bool) | | find_ins_op(self, *args) + | Find an operand that is a subinsruction with the specified opcode. + | This function checks only the 'l' and 'r' operands of the current + | insn. + | | find_ins_op(self, op=m_nop) -> minsn_t + | @param op: opcode to search for (C++: mcode_t) + | @return: &l or &r or NULL | | find_num_op(self, *args) - | find_num_op(self) -> mop_t + | Find a numeric operand of the current instruction. This function + | checks only the 'l' and 'r' operands of the current insn. | | find_opcode(self, *args) + | Find a (sub)insruction with the specified opcode. + | | find_opcode(self, mcode) -> minsn_t + | @param mcode: opcode to search for. (C++: mcode_t) + | + | | find_opcode(self, mcode) -> minsn_t + | @param mcode: opcode to search for. (C++: mcode_t) | | for_all_insns(self, *args) + | Visit all instructions. This function visits the instruction itself + | and all its subinstructions. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) + | Visit all instruction operands. This function visits subinstruction + | operands as well. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | get_role(self, *args) - | get_role(self) -> funcrole_t + | Get the function role of a call. | | get_split_size(self, *args) | get_split_size(self) -> int | | has_side_effects(self, *args) + | Does the instruction have a side effect? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: 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. (C++: + | bool) | | is_after(self, *args) + | Is the instruction after the specified one? + | | is_after(self, m) -> bool + | @param m: the instruction to compare against in the list (C++: const + | minsn_t *) | | is_alloca(self, *args) | is_alloca(self) -> bool @@ -27162,7 +29545,15 @@ class minsn_t(__builtin__.object) | is_assert(self) -> bool | | is_between(self, *args) + | Is the instruction in the specified range of instructions? + | | is_between(self, m1, m2) -> bool + | @param m1: beginning of the range in the doubly linked list (C++: + | const minsn_t *) + | @param m2: end of the range in the doubly linked list (excluded, may + | be NULL) This function assumes that m1 and m2 belong to the + | same basic block and they are top level instructions. (C++: + | const minsn_t *) | | is_bswap(self, *args) | is_bswap(self) -> bool @@ -27186,7 +29577,13 @@ class minsn_t(__builtin__.object) | is_fpinsn(self) -> bool | | is_helper(self, *args) + | 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. + | | is_helper(self, name) -> bool + | @param name (C++: const char *) | | is_ignlowsrc(self, *args) | is_ignlowsrc(self) -> bool @@ -27213,7 +29610,11 @@ class minsn_t(__builtin__.object) | is_multimov(self) -> bool | | is_noret_call(self, *args) + | Is a non-returing call? + | | is_noret_call(self, ignore_noret_icall=False) -> bool + | @param ignore_noret_icall: if set, indirect calls to noret functions + | will return false (C++: bool) | | is_optional(self, *args) | is_optional(self) -> bool @@ -27231,28 +29632,49 @@ class minsn_t(__builtin__.object) | is_tailcall(self) -> bool | | is_unknown_call(self, *args) - | 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) | is_wild_match(self) -> bool | | lexcompare(self, *args) | lexcompare(self, ri) -> int + | @param ri (C++: const minsn_t &) | | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool + | Is it possible for the instruction to use aliased memory? | | modifes_d(self, *args) - | modifes_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) | modifies_pair_mop(self) -> bool | | optimize_solo(self, *args) + | 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. + | | optimize_solo(self, optflags=0) -> int + | @param optflags: combination of optimization flags bits (C++: int) + | @return: number of changes, 0-unchanged See also + | mblock_t::optimize_insn() | | optimize_subtree(self, *args) + | Optimize instruction in its context. Do not use this function, use + | mblock_t::optimize() + | | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int + | @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) | @@ -27297,6 +29719,7 @@ class minsn_t(__builtin__.object) | | set_split_size(self, *args) | set_split_size(self, s) + | @param s (C++: int) | | set_tailcall(self, *args) | set_tailcall(self) @@ -27305,10 +29728,18 @@ class minsn_t(__builtin__.object) | set_wild_match(self) | | setaddr(self, *args) + | Change the instruction address. This function modifies subinstructions + | as well. + | | setaddr(self, new_ea) + | @param new_ea (C++: ea_t) | | swap(self, *args) + | Swap two instructions. The prev/next fields are not modified by this + | function because it would corrupt the doubly linked list. + | | swap(self, m) + | @param m (C++: minsn_t &) | | was_noret_icall(self, *args) | was_noret_icall(self) -> bool @@ -27379,6 +29810,9 @@ class minsn_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -27413,7 +29847,7 @@ class minsn_visitor_t(op_parent_info_t) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | topins | op_parent_info_t_topins_get(self) -> minsn_t @@ -27429,11 +29863,13 @@ class mlist_mop_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> mlist_mop_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_mop(self, *args) | visit_mop(self, op) -> int + | @param op (C++: mop_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27474,26 +29910,36 @@ class mlist_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: mlist_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: mlist_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: mlist_t const & | | __init__(self, *args) | __init__(self) -> mlist_t - | __init__(self, ivl) -> mlist_t + | ivl: ivl_t const & + | + | | __init__(self, r, size) -> mlist_t + | r: mreg_t + | size: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: mlist_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: mlist_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: mlist_t const & | | __repr__ = _swig_repr(self) | @@ -27502,18 +29948,32 @@ class mlist_t(__builtin__.object) | | add(self, *args) | add(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) + | + | | add(self, r) -> bool + | @param r (C++: mreg_t) + | + | | add(self, ivl) -> bool + | ivl: ivl_t const & + | + | | add(self, lst) -> bool + | lst: mlist_t const & | | addmem(self, *args) | addmem(self, ea, size) -> bool + | @param ea (C++: ea_t) + | @param size (C++: asize_t) | | clear(self, *args) | clear(self) | | compare(self, *args) | compare(self, r) -> int + | r: mlist_t const & | | count(self, *args) | count(self) -> asize_t @@ -27526,35 +29986,53 @@ class mlist_t(__builtin__.object) | | has(self, *args) | has(self, r) -> bool + | @param r (C++: mreg_t) | | has_all(self, *args) | has_all(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) | | has_any(self, *args) | has_any(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) | | has_common(self, *args) | has_common(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | has_memory(self, *args) | has_memory(self) -> bool | | includes(self, *args) | includes(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | intersect(self, *args) | intersect(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | is_subset_of(self, *args) | is_subset_of(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | sub(self, *args) | sub(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) + | + | | sub(self, ivl) -> bool + | ivl: ivl_t const & + | + | | sub(self, lst) -> bool + | lst: mlist_t const & | | swap(self, *args) | swap(self, r) + | @param r (C++: mlist_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27594,32 +30072,43 @@ class mnumber_t(operand_locator_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: mnumber_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: mnumber_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: mnumber_t const & | | __init__(self, *args) | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t + | v: uint64 + | _ea: ea_t + | n: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: mnumber_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: mnumber_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: mnumber_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: mnumber_t const & | | update_value(self, *args) | update_value(self, val64) + | @param val64 (C++: uint64) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27657,29 +30146,25 @@ class mnumber_t(operand_locator_t) Help on function modify_user_lvar_info in module ida_hexrays: modify_user_lvar_info(*args) + Modify saved local variable settings of one variable. + 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 + @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 + modify_user_lvars(entry_ea, mlv) -> bool + @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: @@ -27695,13 +30180,19 @@ class mop_addr_t(mop_t) | | __init__(self, *args) | __init__(self) -> mop_addr_t - | __init__(self, ra) -> mop_addr_t + | ra: mop_addr_t const & + | + | | __init__(self, ra, isz, osz) -> mop_addr_t + | ra: mop_t const & + | isz: int + | osz: int | | __repr__ = _swig_repr(self) | | lexcompare(self, *args) | lexcompare(self, ra) -> int + | @param ra (C++: const mop_addr_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27726,12 +30217,15 @@ class mop_addr_t(mop_t) | | __eq__(self, *args) | __eq__(self, rop) -> bool + | rop: mop_t const & | | __lt__(self, *args) | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool + | rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -27793,35 +30287,90 @@ class mop_addr_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -27840,90 +30389,169 @@ class mop_addr_t(mop_t) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) | _register(self) | | _set_a(self, *args) | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) + | _v: int | | _set_c(self, *args) | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) + | 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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) + | 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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | dstr(self, *args) | dstr(self) -> char const * @@ -27932,7 +30560,11 @@ class mop_addr_t(mop_t) | empty(self) -> bool | | equal_mops(self, *args) + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) | erase(self) @@ -27941,65 +30573,122 @@ class mop_addr_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) + | 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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | is01(self, *args) - | 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) - | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool + | reg: mreg_t | | is_cc(self, *args) - | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool + | @param n (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | code: enum mcode_t | | is_kreg(self, *args) - | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) + | is_lowaddr(self) -> bool | | is_mob(self, *args) + | Is a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -28011,18 +30700,30 @@ class mop_addr_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) | is_udt(self) -> bool @@ -28034,50 +30735,132 @@ class mop_addr_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | make_blkref(self, *args) + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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) | probably_floating(self) -> bool @@ -28087,6 +30870,9 @@ class mop_addr_t(mop_t) | set_impptr_done(self, *args) | set_impptr_done(self) | + | set_lowaddr(self, *args) + | set_lowaddr(self) + | | set_udt(self, *args) | set_udt(self) | @@ -28094,19 +30880,32 @@ class mop_addr_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) + | 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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | value(self, *args) + | 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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) | zero(self) @@ -28212,17 +31011,24 @@ class mop_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, rop) -> bool + | rop: mop_t const & | | __init__(self, *args) | __init__(self) -> mop_t - | __init__(self, rop) -> mop_t + | rop: mop_t const & + | + | | __init__(self, _r, _s) -> mop_t + | _r: mreg_t + | _s: int | | __lt__(self, *args) | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) | __ne__(self, rop) -> bool + | rop: mop_t const & | | __repr__ = _swig_repr(self) | @@ -28286,35 +31092,90 @@ class mop_t(__builtin__.object) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -28333,90 +31194,169 @@ class mop_t(__builtin__.object) | | _print(self, *args) | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) | _register(self) | | _set_a(self, *args) | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) | _set_b(self, _v) + | _v: int | | _set_c(self, *args) | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) + | 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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) + | 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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | dstr(self, *args) | dstr(self) -> char const * @@ -28425,7 +31365,11 @@ class mop_t(__builtin__.object) | empty(self) -> bool | | equal_mops(self, *args) + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) | erase(self) @@ -28434,65 +31378,122 @@ class mop_t(__builtin__.object) | erase_but_keep_size(self) | | for_all_ops(self, *args) + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) + | 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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | is01(self, *args) - | 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) - | is_arglist(self) -> bool + | Is a list of arguments? | | is_bit_reg(self, *args) | is_bit_reg(self, reg) -> bool - | is_bit_reg(self) -> bool + | reg: mreg_t | | is_cc(self, *args) - | is_cc(self) -> bool + | Is a condition code? | | is_ccflags(self, *args) | is_ccflags(self) -> bool | | is_constant(self, *args) + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @return: true if the operand is mop_n | | is_equal_to(self, *args) | is_equal_to(self, n, is_signed=True) -> bool + | @param n (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) | is_impptr_done(self) -> bool | | is_insn(self, *args) + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | code: enum mcode_t | | is_kreg(self, *args) - | is_kreg(self) -> bool + | Is a kernel register? + | + | is_lowaddr(self, *args) + | is_lowaddr(self) -> bool | | is_mob(self, *args) + | Is a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) | is_negative_constant(self) -> bool @@ -28504,18 +31505,30 @@ class mop_t(__builtin__.object) | is_positive_constant(self) -> bool | | is_reg(self, *args) + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) | is_udt(self) -> bool @@ -28527,53 +31540,136 @@ class mop_t(__builtin__.object) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | lexcompare(self, *args) | lexcompare(self, rop) -> int + | @param rop (C++: const mop_t &) | | make_blkref(self, *args) + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | may_use_aliased_memory(self, *args) - | may_use_aliased_memory(self) -> bool + | Is it possible for the operand to use aliased memory? | | preserve_side_effects(self, *args) + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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) | probably_floating(self) -> bool @@ -28583,6 +31679,9 @@ class mop_t(__builtin__.object) | set_impptr_done(self, *args) | set_impptr_done(self) | + | set_lowaddr(self, *args) + | set_lowaddr(self) + | | set_udt(self, *args) | set_udt(self) | @@ -28590,19 +31689,32 @@ class mop_t(__builtin__.object) | set_undef_val(self) | | shift_mop(self, *args) + | 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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) | signed_value(self) -> int64 | | swap(self, *args) | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) | unsigned_value(self) -> uint64 | | value(self, *args) + | 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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) | zero(self) @@ -28688,11 +31800,17 @@ class mop_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | | visit_mop(self, *args) | visit_mop(self, op, type, is_target) -> int + | @param op (C++: mop_t *) + | @param type (C++: const tinfo_t *) + | @param is_target (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28725,7 +31843,7 @@ class mop_visitor_t(op_parent_info_t) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | topins | op_parent_info_t_topins_get(self) -> minsn_t @@ -28739,13 +31857,15 @@ class mopvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< mop_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> mop_t + | i: size_t | | __init__(self, *args) | __init__(self) -> mopvec_t - | __init__(self, x) -> mopvec_t + | x: qvector< mop_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -28755,20 +31875,26 @@ class mopvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< mop_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: mop_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: mop_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: mop_t const & | | at(self, *args) | at(self, _idx) -> mop_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -28792,52 +31918,74 @@ class mopvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> mop_t + | it: qvector< mop_t >::iterator + | + | | erase(self, first, last) -> mop_t + | first: qvector< mop_t >::iterator + | last: qvector< mop_t >::iterator | | extract(self, *args) | extract(self) -> mop_t | | find(self, *args) | find(self, x) -> mop_t + | x: mop_t const & + | + | | find(self, x) -> mop_t + | x: mop_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=mop_t()) + | x: mop_t const & | | has(self, *args) | has(self, x) -> bool + | x: mop_t const & | | inject(self, *args) | inject(self, s, len) + | s: mop_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> mop_t + | it: qvector< mop_t >::iterator + | x: mop_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> mop_t + | x: mop_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: mop_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< mop_t > & | | truncate(self, *args) | truncate(self) @@ -28863,48 +32011,41 @@ class mopvec_t(__builtin__.object) 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 + mreg2reg(reg, width) -> int + @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) + must_mcode_close_block(mcode, including_calls) -> bool + @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: unknown + calls (is_unknown_call) are 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 + @param code (C++: 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) + negated_relation(op) -> ctype_t + @param op (C++: ctype_t) Help on function new_block in module ida_hexrays: @@ -28919,38 +32060,44 @@ class number_format_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _opnum=0) -> number_format_t + | _opnum: int | | __repr__ = _swig_repr(self) | | get_radix(self, *args) - | get_radix(self) -> int + | Get number radix + | + | has_unmutable_type(self, *args) + | has_unmutable_type(self) -> bool | | is_char(self, *args) - | is_char(self) -> bool + | Is a character constant? | | is_dec(self, *args) - | is_dec(self) -> bool + | Is a decimal number? | | is_enum(self, *args) - | is_enum(self) -> bool + | Is a symbolic constant? | | is_fixed(self, *args) - | is_fixed(self) -> bool + | Is number representation fixed? Fixed representation cannot be + | modified by the decompiler | | is_hex(self, *args) - | is_hex(self) -> bool + | Is a hexadecimal number? | | is_numop(self, *args) - | is_numop(self) -> bool + | Is a number? | | is_oct(self, *args) - | is_oct(self) -> bool + | Is a octal number? | | is_stroff(self, *args) - | is_stroff(self) -> bool + | Is a structure field offset? | | needs_to_be_inverted(self, *args) - | 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: @@ -28997,6 +32144,9 @@ class op_parent_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -29016,7 +32166,7 @@ class op_parent_info_t(__builtin__.object) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -29033,50 +32183,37 @@ class op_parent_info_t(__builtin__.object) 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) + op_uses_x(op) -> bool + @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) + op_uses_y(op) -> bool + @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) + op_uses_z(op) -> bool + @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 + open_pseudocode(ea, flags) -> vdui_t + @param ea: function to decompile (C++: ea_t) + @param flags: a combination of OPF_ flags (C++: int) + @return: false if failed Help on class operand_locator_t in module ida_hexrays: @@ -29087,29 +32224,38 @@ class operand_locator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: operand_locator_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: operand_locator_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: operand_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _opnum) -> operand_locator_t + | _ea: ea_t + | _opnum: int | | __le__(self, *args) | __le__(self, r) -> bool + | r: operand_locator_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: operand_locator_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: operand_locator_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: operand_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29191,11 +32337,21 @@ class optblock_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> optblock_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | func(self, *args) + | 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 ... ... + | | func(self, blk) -> int + | @param blk: Basic block to optimize as a whole. (C++: mblock_t *) + | @return: number of changes made to the block. See also + | mark_lists_dirty. | | install(self, *args) | install(self) @@ -29232,11 +32388,31 @@ class optinsn_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> optinsn_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | func(self, *args) - | func(self, blk, ins) -> int + | Optimize an instruction. + | + | func(self, blk, ins, optflags) -> int + | @param blk: current basic block. maybe NULL, which means that the + | instruction must be optimized without context (C++: + | mblock_t *) + | @param ins: 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. (C++: minsn_t *) + | @param optflags: combination of optimization flags bits (C++: int) + | @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) | install(self) @@ -29265,40 +32441,34 @@ class optinsn_t(__builtin__.object) 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 + parse_user_call(udc, decl, silent) -> bool + @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. + partial_type_num(type) -> int + @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) + print_vdloc(loc, nbytes) + @param loc (C++: const vdloc_t &) + @param nbytes (C++: int) Help on function property_op_to_typename in module ida_hexrays: @@ -29313,13 +32483,15 @@ class qlist_cinsn_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, x) -> bool + | x: qlist< cinsn_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> cinsn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qlist_cinsn_t - | __init__(self, x) -> qlist_cinsn_t + | x: qlist< cinsn_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29329,11 +32501,14 @@ class qlist_cinsn_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, x) -> bool + | x: qlist< cinsn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: cinsn_t const & | | at(self, index) | @@ -29354,8 +32529,16 @@ class qlist_cinsn_t(__builtin__.object) | | erase(self, *args) | erase(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | erase(self, p1, p2) + | p1: qlist< cinsn_t >::iterator + | p2: qlist< cinsn_t >::iterator + | + | | erase(self, p) + | p: qlist_cinsn_t_iterator | | find(self, item) | @@ -29366,9 +32549,22 @@ class qlist_cinsn_t(__builtin__.object) | | insert(self, *args) | insert(self, p, x) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | x: cinsn_t const & + | + | | insert(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | insert(self, i, v) + | i: size_t + | v: cinsn_t const & + | + | | insert(self, p, x) -> qlist_cinsn_t_iterator + | p: qlist_cinsn_t_iterator + | x: cinsn_t const & | | pop_back(self, *args) | pop_back(self) @@ -29378,10 +32574,11 @@ class qlist_cinsn_t(__builtin__.object) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> cinsn_t + | x: cinsn_t const & | | push_front(self, *args) | push_front(self, x) + | x: cinsn_t const & | | rbegin(self, *args) | rbegin(self) -> qlist< cinsn_t >::reverse_iterator @@ -29389,6 +32586,7 @@ class qlist_cinsn_t(__builtin__.object) | | remove(self, *args) | remove(self, v) -> bool + | v: cinsn_t const & | | rend(self, *args) | rend(self) -> qlist< cinsn_t >::reverse_iterator @@ -29399,6 +32597,7 @@ class qlist_cinsn_t(__builtin__.object) | | swap(self, *args) | swap(self, x) + | x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29427,12 +32626,14 @@ class qlist_cinsn_t_iterator(__builtin__.object) | | __eq__(self, *args) | __eq__(self, x) -> bool + | x: qlist_cinsn_t_iterator const * | | __init__(self, *args) | __init__(self) -> qlist_cinsn_t_iterator | | __ne__(self, *args) | __ne__(self, x) -> bool + | x: qlist_cinsn_t_iterator const * | | __next__(self, *args) | __next__(self) @@ -29477,11 +32678,15 @@ class qstring_printer_t(vc_printer_t) | | __init__(self, *args) | __init__(self, f, tags) -> qstring_printer_t + | f: cfunc_t const * + | tags: bool | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, indent, format) -> int + | indent: int + | format: char const * | | get_s(self, *args) | get_s(self) -> qstring @@ -29503,7 +32708,7 @@ class qstring_printer_t(vc_printer_t) | __disown__(self) | | oneliner(self, *args) - | oneliner(self) -> bool + | Are we generating one-line text representation? | | ---------------------------------------------------------------------- | Data descriptors inherited from vc_printer_t: @@ -29539,6 +32744,8 @@ Help on function qswap in module ida_hexrays: qswap(*args) qswap(a, b) + a: cinsn_t & + b: cinsn_t & Help on class qvector_carg_t in module ida_hexrays: @@ -29549,13 +32756,15 @@ class qvector_carg_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< carg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> carg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_carg_t - | __init__(self, x) -> qvector_carg_t + | x: qvector< carg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29564,17 +32773,22 @@ class qvector_carg_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< carg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: carg_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: carg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: carg_t const & | | append = push_back(self, *args) | @@ -29602,52 +32816,74 @@ class qvector_carg_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> carg_t + | it: qvector< carg_t >::iterator + | + | | erase(self, first, last) -> carg_t + | first: qvector< carg_t >::iterator + | last: qvector< carg_t >::iterator | | extract(self, *args) | extract(self) -> carg_t | | find(self, *args) | find(self, x) -> carg_t + | x: carg_t const & + | + | | find(self, x) -> carg_t + | x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=carg_t()) + | x: carg_t const & | | has(self, *args) | has(self, x) -> bool + | x: carg_t const & | | inject(self, *args) | inject(self, s, len) + | s: carg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> carg_t + | it: qvector< carg_t >::iterator + | x: carg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: carg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< carg_t > & | | truncate(self, *args) | truncate(self) @@ -29679,13 +32915,15 @@ class qvector_ccase_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< ccase_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ccase_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_ccase_t - | __init__(self, x) -> qvector_ccase_t + | x: qvector< ccase_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29694,17 +32932,22 @@ class qvector_ccase_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< ccase_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: ccase_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: ccase_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: ccase_t const & | | append = push_back(self, *args) | @@ -29732,52 +32975,74 @@ class qvector_ccase_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> ccase_t + | it: qvector< ccase_t >::iterator + | + | | erase(self, first, last) -> ccase_t + | first: qvector< ccase_t >::iterator + | last: qvector< ccase_t >::iterator | | extract(self, *args) | extract(self) -> ccase_t | | find(self, *args) | find(self, x) -> ccase_t + | x: ccase_t const & + | + | | find(self, x) -> ccase_t + | x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ccase_t()) + | x: ccase_t const & | | has(self, *args) | has(self, x) -> bool + | x: ccase_t const & | | inject(self, *args) | inject(self, s, len) + | s: ccase_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> ccase_t + | it: qvector< ccase_t >::iterator + | x: ccase_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: ccase_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< ccase_t > & | | truncate(self, *args) | truncate(self) @@ -29809,13 +33074,15 @@ class qvector_history_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< history_item_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> history_item_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_history_t - | __init__(self, x) -> qvector_history_t + | 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. @@ -29825,20 +33092,26 @@ class qvector_history_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< history_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: history_item_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: history_item_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: history_item_t const & | | at(self, *args) | at(self, _idx) -> history_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -29862,52 +33135,74 @@ class qvector_history_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> history_item_t + | it: qvector< history_item_t >::iterator + | + | | erase(self, first, last) -> history_item_t + | first: qvector< history_item_t >::iterator + | last: qvector< history_item_t >::iterator | | extract(self, *args) | extract(self) -> history_item_t | | find(self, *args) | find(self, x) -> history_item_t + | x: history_item_t const & + | + | | find(self, x) -> history_item_t + | x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=history_item_t()) + | x: history_item_t const & | | has(self, *args) | has(self, x) -> bool + | x: history_item_t const & | | inject(self, *args) | inject(self, s, len) + | s: history_item_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> history_item_t + | it: qvector< history_item_t >::iterator + | x: history_item_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: history_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< history_item_t > & | | truncate(self, *args) | truncate(self) @@ -29939,13 +33234,15 @@ class qvector_lvar_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< lvar_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> lvar_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_lvar_t - | __init__(self, x) -> qvector_lvar_t + | x: qvector< lvar_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29954,17 +33251,22 @@ class qvector_lvar_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< lvar_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: lvar_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: lvar_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: lvar_t const & | | append = push_back(self, *args) | @@ -29992,52 +33294,74 @@ class qvector_lvar_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> lvar_t + | it: qvector< lvar_t >::iterator + | + | | erase(self, first, last) -> lvar_t + | first: qvector< lvar_t >::iterator + | last: qvector< lvar_t >::iterator | | extract(self, *args) | extract(self) -> lvar_t | | find(self, *args) | find(self, x) -> lvar_t + | x: lvar_t const & + | + | | find(self, x) -> lvar_t + | x: lvar_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=lvar_t()) + | x: lvar_t const & | | has(self, *args) | has(self, x) -> bool + | x: lvar_t const & | | inject(self, *args) | inject(self, s, len) + | s: lvar_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> lvar_t + | it: qvector< lvar_t >::iterator + | x: lvar_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< lvar_t > & | | truncate(self, *args) | truncate(self) @@ -30063,18 +33387,17 @@ class qvector_lvar_t(__builtin__.object) 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 + reg2mreg(reg) -> mreg_t + @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) + @param e (C++: const citem_t *) Help on function remove_hexrays_callback in module ida_hexrays: @@ -30084,87 +33407,81 @@ remove_hexrays_callback(callback) 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() + restore_user_cmts(func_ea) -> user_cmts_t + @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 + restore_user_defined_calls(udcalls, func_ea) -> bool + @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() + restore_user_iflags(func_ea) -> user_iflags_t + @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() + restore_user_labels(func_ea) -> user_labels_t + @param func_ea: the entry address of the function, ignored if FUNC != + NULL (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_labels2 in module ida_hexrays: + +restore_user_labels2(*args) + restore_user_labels2(func_ea, func=None) -> user_labels_t + @param func_ea (C++: ea_t) + @param func (C++: const cfunc_t *) 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 + restore_user_lvar_settings(lvinf, func_ea) -> bool + @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() + restore_user_numforms(func_ea) -> user_numforms_t + @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() + restore_user_unions(func_ea) -> user_unions_t + @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: @@ -30180,8 +33497,12 @@ class rlist_t(bitset_t) | | __init__(self, *args) | __init__(self) -> rlist_t - | __init__(self, m) -> rlist_t + | m: rlist_t const & + | + | | __init__(self, reg, width) -> rlist_t + | reg: mreg_t + | width: int | | __repr__ = _swig_repr(self) | @@ -30205,110 +33526,151 @@ class rlist_t(bitset_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: bitset_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: bitset_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: bitset_t const & | | __iter__(self) | | __le__(self, *args) | __le__(self, r) -> bool + | r: bitset_t const & | | __len__ = count(self, *args) | count(self) -> int - | count(self, bit) -> int + | bit: int | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: bitset_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: bitset_t const & | | add(self, *args) | add(self, bit) -> bool + | @param bit (C++: int) + | + | | add(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | add(self, ml) -> bool + | ml: bitset_t const & | | back(self, *args) | back(self) -> int | | begin(self, *args) - | begin(self) -> bitset_t::iterator + | begin(self) -> iterator | | clear(self, *args) | clear(self) | | compare(self, *args) | compare(self, r) -> int + | r: bitset_t const & | | copy(self, *args) | copy(self, m) -> bitset_t + | @param m (C++: const bitset_t &) | | count(self, *args) | count(self) -> int - | count(self, bit) -> int + | bit: int | | cut_at(self, *args) | cut_at(self, maxbit) -> bool + | @param maxbit (C++: int) | | empty(self, *args) | empty(self) -> bool | | end(self, *args) - | end(self) -> bitset_t::iterator + | end(self) -> iterator | | fill_with_ones(self, *args) | fill_with_ones(self, maxbit) + | @param maxbit (C++: int) | | front(self, *args) | front(self) -> int | | has(self, *args) | has(self, bit) -> bool + | @param bit (C++: int) | | has_all(self, *args) | has_all(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_any(self, *args) | has_any(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_common(self, *args) | has_common(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | inc(self, *args) | inc(self, p, n=1) + | @param p (C++: iterator &) + | @param n (C++: int) | | includes(self, *args) | includes(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | intersect(self, *args) | intersect(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | is_subset_of(self, *args) | is_subset_of(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | itat(self, *args) - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | @param n (C++: int) | | itv(self, *args) | itv(self, it) -> int + | it: bitset_t::const_iterator | | last(self, *args) | last(self) -> int | | shift_down(self, *args) | shift_down(self, shift) + | @param shift (C++: int) | | sub(self, *args) | sub(self, bit) -> bool + | @param bit (C++: int) + | + | | sub(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | sub(self, ml) -> bool + | ml: bitset_t const & | | swap(self, *args) | swap(self, r) + | @param r (C++: bitset_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from bitset_t: @@ -30322,86 +33684,81 @@ class rlist_t(bitset_t) 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 *) + save_user_cmts(func_ea, user_cmts) + @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 &) + save_user_defined_calls(func_ea, udcalls) + @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 *) + save_user_iflags(func_ea, iflags) + @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 *) + save_user_labels(func_ea, user_labels) + @param func_ea: the entry address of the function, ignored if FUNC != + NULL (C++: ea_t) + @param user_labels: collection of user defined labels (C++: const + user_labels_t *) + +Help on function save_user_labels2 in module ida_hexrays: + +save_user_labels2(*args) + save_user_labels2(func_ea, user_labels, func=None) + @param func_ea (C++: ea_t) + @param user_labels (C++: const user_labels_t *) + @param func (C++: const cfunc_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 &) + save_user_lvar_settings(func_ea, lvinf) + @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 *) + save_user_numforms(func_ea, numforms) + @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 *) + save_user_unions(func_ea, unions) + @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: @@ -30418,6 +33775,9 @@ class scif_t(vdloc_t) | | __init__(self, *args) | __init__(self, _mba, n, tif) -> scif_t + | _mba: mba_t * + | n: qstring * + | tif: tinfo_t * | | __repr__ = _swig_repr(self) | @@ -30425,7 +33785,7 @@ class scif_t(vdloc_t) | Data descriptors defined here: | | mba - | scif_t_mba_get(self) -> mbl_array_t + | scif_t_mba_get(self) -> mba_t | | name | scif_t_name_get(self) -> qstring * @@ -30447,167 +33807,234 @@ class scif_t(vdloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: vdloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: vdloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: vdloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: vdloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: vdloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: vdloc_t const & | | _set_reg1(self, *args) | _set_reg1(self, r1) + | @param r1 (C++: int) | | compare(self, *args) | compare(self, r) -> int + | r: vdloc_t const & | | is_aliasable(self, *args) | is_aliasable(self, mb, size) -> bool + | @param mb (C++: const mba_t *) + | @param size (C++: int) | | reg1(self, *args) | reg1(self) -> int | | set_reg1(self, *args) | set_reg1(self, r1) + | @param r1 (C++: int) | | ---------------------------------------------------------------------- | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg2(self, *args) + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | atype(self, *args) - | atype(self) -> argloc_type_t + | Get type ( 'Argument location types' ) | | calc_offset(self, *args) - | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) - | get_custom(self) -> void * + | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' | | get_ea(self, *args) - | get_ea(self) -> ea_t + | Get the global address. Use when 'atype()' == 'ALOC_STATIC' | | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 + | Get all register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' | | has_reg(self, *args) - | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) - | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. | | is_badloc(self, *args) - | is_badloc(self) -> bool + | See 'ALOC_NONE' . | | is_custom(self, *args) - | is_custom(self) -> bool + | See 'ALOC_CUSTOM' . | | is_ea(self, *args) - | is_ea(self) -> bool + | See 'ALOC_STATIC' . | | is_fragmented(self, *args) - | is_fragmented(self) -> bool + | 'is_scattered()' || 'is_reg2()' | | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | is_reg(self) -> bool + | 'is_reg1()' || 'is_reg2()' | | is_reg1(self, *args) - | is_reg1(self) -> bool + | See 'ALOC_REG1' . | | is_reg2(self, *args) - | is_reg2(self) -> bool + | See 'ALOC_REG2' . | | is_rrel(self, *args) - | is_rrel(self) -> bool + | See 'ALOC_RREL' . | | is_scattered(self, *args) - | is_scattered(self) -> bool + | See 'ALOC_DIST' . | | is_stkoff(self, *args) - | is_stkoff(self) -> bool + | See 'ALOC_STACK' . | | justify_reg_high(self, *args) + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | reg2(self, *args) - | reg2(self) -> int + | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' | | regoff(self, *args) - | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when + | 'atype()' == 'ALOC_REG1' | | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' | | set_badloc(self, *args) - | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) + | Set static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg2(self, *args) + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) + | Set stack offset location. + | | set_stkoff(self, off) + | @param off (C++: sval_t) | | stkoff(self, *args) - | stkoff(self) -> sval_t + | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' | | swap(self, *args) + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -30629,11 +34056,14 @@ class scif_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> scif_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_scif_mop(self, *args) | visit_scif_mop(self, r, off) -> int + | @param r (C++: const mop_t &) + | @param off (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30656,53 +34086,48 @@ class scif_visitor_t(__builtin__.object) 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 &) + select_udt_by_offset(udts, ops, applicator) -> int + @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) + send_database(err, silent) + @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 + @param code (C++: 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 + set_type(id, tif, source, force=False) -> bool + @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: @@ -30742,35 +34167,50 @@ class stkvar_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: stkvar_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: stkvar_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: stkvar_ref_t const & | | __init__(self, *args) | __init__(self, m, o) -> stkvar_ref_t + | m: mba_t * + | o: sval_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: stkvar_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: stkvar_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: stkvar_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: stkvar_ref_t const & | | get_stkvar(self, *args) + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off=None) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | swap(self, *args) | swap(self, r) + | @param r (C++: stkvar_ref_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30782,7 +34222,7 @@ class stkvar_ref_t(__builtin__.object) | list of weak references to the object (if defined) | | mba - | stkvar_ref_t_mba_get(self) -> mbl_array_t + | stkvar_ref_t_mba_get(self) -> mba_t | | off | stkvar_ref_t_off_get(self) -> sval_t @@ -30800,24 +34240,19 @@ Help on function swap_mcode_relation in module ida_hexrays: swap_mcode_relation(*args) swap_mcode_relation(code) -> mcode_t + @param code (C++: 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) + swapped_relation(op) -> ctype_t + @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: @@ -30829,12 +34264,14 @@ class treeloc_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: treeloc_t const & | | __init__(self, *args) | __init__(self) -> treeloc_t | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: treeloc_t const & | | __repr__ = _swig_repr(self) | @@ -30878,17 +34315,34 @@ class udc_filter_t(microcode_filter_t) | | __init__(self, *args) | __init__(self) -> udc_filter_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) + | generate microcode for an instruction + | | apply(self, cdg) -> merror_t + | @param cdg (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to + | the next instruction MERR_INSN - not generated - the caller + | should try the standard way else - error | | init(self, *args) | init(self, decl) -> bool + | @param decl (C++: const char *) + | + | install(self, *args) + | install(self) | | match(self, *args) + | return true if the filter object should be appied to given instruction + | | match(self, cdg) -> bool + | @param cdg (C++: codegen_t &) + | + | remove(self, *args) + | remove(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30914,94 +34368,70 @@ class udc_filter_t(microcode_filter_t) 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 *) + udcall_map_begin(map) -> udcall_map_iterator_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 *) + udcall_map_clear(map) + @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 *) + udcall_map_end(map) -> udcall_map_iterator_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) + udcall_map_erase(map, p) + @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 &) + udcall_map_find(map, key) -> udcall_map_iterator_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) + udcall_map_first(p) -> ea_t const & + @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 *) + udcall_map_free(map) + @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 &) + udcall_map_insert(map, key, val) -> udcall_map_iterator_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: @@ -31012,12 +34442,14 @@ class udcall_map_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: udcall_map_iterator_t const & | | __init__(self, *args) | __init__(self) -> udcall_map_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: udcall_map_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31045,54 +34477,39 @@ class udcall_map_iterator_t(__builtin__.object) 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) + udcall_map_next(p) -> 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_prev(p) -> udcall_map_iterator_t - - Move to the previous element. - - @param p (C++: udcall_map_iterator_t) + udcall_map_prev(p) -> 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_map_second(p) -> udcall_t - - Get reference to the current map value. - - @param p (C++: udcall_map_iterator_t) + udcall_map_second(p) -> udcall_t + @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 *) + udcall_map_size(map) -> size_t + @param map (C++: udcall_map_t *) Help on class udcall_t in module ida_hexrays: @@ -31103,29 +34520,36 @@ class udcall_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: udcall_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: udcall_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: udcall_t const & | | __init__(self, *args) | __init__(self) -> udcall_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: udcall_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: udcall_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: udcall_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: udcall_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31162,11 +34586,18 @@ class ui_stroff_applicator_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> ui_stroff_applicator_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | apply(self, *args) | apply(self, opnum, path, top_tif, spath) -> bool + | @param opnum: operand ordinal number, see below (C++: size_t) + | @param path: path describing the union selection, maybe empty (C++: + | const intvec_t &) + | @param top_tif: tinfo_t of the selected toplevel UDT (C++: const + | tinfo_t &) + | @param spath: selected path (C++: const char *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31195,12 +34626,14 @@ class ui_stroff_op_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: ui_stroff_op_t const & | | __init__(self, *args) | __init__(self) -> ui_stroff_op_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ui_stroff_op_t const & | | __repr__ = _swig_repr(self) | @@ -31237,13 +34670,15 @@ class ui_stroff_ops_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< ui_stroff_op_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> ui_stroff_op_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ui_stroff_ops_t - | __init__(self, x) -> ui_stroff_ops_t + | 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. @@ -31252,17 +34687,22 @@ class ui_stroff_ops_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< ui_stroff_op_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: ui_stroff_op_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: ui_stroff_op_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: ui_stroff_op_t const & | | append = push_back(self, *args) | @@ -31290,52 +34730,74 @@ class ui_stroff_ops_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> ui_stroff_op_t + | it: qvector< ui_stroff_op_t >::iterator + | + | | erase(self, first, last) -> ui_stroff_op_t + | first: qvector< ui_stroff_op_t >::iterator + | last: qvector< ui_stroff_op_t >::iterator | | extract(self, *args) | extract(self) -> ui_stroff_op_t | | find(self, *args) | find(self, x) -> ui_stroff_op_t + | x: ui_stroff_op_t const & + | + | | find(self, x) -> ui_stroff_op_t + | x: ui_stroff_op_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=ui_stroff_op_t()) + | x: ui_stroff_op_t const & | | has(self, *args) | has(self, x) -> bool + | x: ui_stroff_op_t const & | | inject(self, *args) | inject(self, s, len) + | s: ui_stroff_op_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> ui_stroff_op_t + | it: qvector< ui_stroff_op_t >::iterator + | x: ui_stroff_op_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> ui_stroff_op_t + | x: ui_stroff_op_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: ui_stroff_op_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< ui_stroff_op_t > & | | truncate(self, *args) | truncate(self) @@ -31361,94 +34823,70 @@ class ui_stroff_ops_t(__builtin__.object) 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 *) + user_cmts_begin(map) -> user_cmts_iterator_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 *) + user_cmts_clear(map) + @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 *) + user_cmts_end(map) -> user_cmts_iterator_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) + user_cmts_erase(map, p) + @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 &) + user_cmts_find(map, key) -> user_cmts_iterator_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) + user_cmts_first(p) -> treeloc_t + @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 *) + user_cmts_free(map) + @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 &) + user_cmts_insert(map, key, val) -> user_cmts_iterator_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: @@ -31459,12 +34897,14 @@ class user_cmts_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: user_cmts_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_cmts_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: user_cmts_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31492,54 +34932,39 @@ class user_cmts_iterator_t(__builtin__.object) 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) + user_cmts_next(p) -> 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_prev(p) -> user_cmts_iterator_t - - Move to the previous element. - - @param p (C++: user_cmts_iterator_t) + user_cmts_prev(p) -> 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) - user_cmts_second(p) -> citem_cmt_t - - Get reference to the current map value. - - @param p (C++: user_cmts_iterator_t) + user_cmts_second(p) -> citem_cmt_t + @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 *) + user_cmts_size(map) -> size_t + @param map (C++: user_cmts_t *) Help on class user_cmts_t in module ida_hexrays: @@ -31573,6 +34998,7 @@ class user_cmts_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> citem_cmt_t + | _Keyval: treeloc_t const & | | begin lambda self, *args | @@ -31638,33 +35064,77 @@ class user_cmts_t(__builtin__.object) | | __begin = | user_cmts_begin(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * | | __clear = | user_cmts_clear(map) + | + | Parameters + | ---------- + | map: user_cmts_t * | | __end = | user_cmts_end(map) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * | | __erase = | user_cmts_erase(map, p) + | + | Parameters + | ---------- + | map: user_cmts_t * + | p: user_cmts_iterator_t | | __find = | user_cmts_find(map, key) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | map: user_cmts_t const * + | key: treeloc_t const & | | __first = | user_cmts_first(p) -> treeloc_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __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 & | | __next = | user_cmts_next(p) -> user_cmts_iterator_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __second = | user_cmts_second(p) -> citem_cmt_t + | + | Parameters + | ---------- + | p: user_cmts_iterator_t | | __size = | user_cmts_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_cmts_t * | | __swig_destroy__ = | delete_user_cmts_t(self) @@ -31678,94 +35148,70 @@ class user_cmts_t(__builtin__.object) 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 *) + user_iflags_begin(map) -> user_iflags_iterator_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 *) + user_iflags_clear(map) + @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 *) + user_iflags_end(map) -> user_iflags_iterator_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) + user_iflags_erase(map, p) + @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 &) + user_iflags_find(map, key) -> user_iflags_iterator_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) + user_iflags_first(p) -> citem_locator_t + @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 *) + user_iflags_free(map) + @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 &) + user_iflags_insert(map, key, val) -> user_iflags_iterator_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: @@ -31776,12 +35222,14 @@ class user_iflags_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: user_iflags_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_iflags_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: user_iflags_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31809,54 +35257,39 @@ class user_iflags_iterator_t(__builtin__.object) 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) + user_iflags_next(p) -> 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_prev(p) -> user_iflags_iterator_t - - Move to the previous element. - - @param p (C++: user_iflags_iterator_t) + user_iflags_prev(p) -> 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) - user_iflags_second(p) -> int32 const & - - Get reference to the current map value. - - @param p (C++: user_iflags_iterator_t) + user_iflags_second(p) -> int32 const & + @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 *) + user_iflags_size(map) -> size_t + @param map (C++: user_iflags_t *) Help on class user_iflags_t in module ida_hexrays: @@ -31890,6 +35323,7 @@ class user_iflags_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> int & + | _Keyval: citem_locator_t const & | | begin lambda self, *args | @@ -31955,33 +35389,77 @@ class user_iflags_t(__builtin__.object) | | __begin = | user_iflags_begin(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * | | __clear = | user_iflags_clear(map) + | + | Parameters + | ---------- + | map: user_iflags_t * | | __end = | user_iflags_end(map) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t const * | | __erase = | user_iflags_erase(map, p) + | + | Parameters + | ---------- + | map: user_iflags_t * + | p: user_iflags_iterator_t | | __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(p) -> citem_locator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __insert = | user_iflags_insert(map, key, val) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | map: user_iflags_t * + | key: citem_locator_t const & + | val: int32 const & | | __next = | user_iflags_next(p) -> user_iflags_iterator_t + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __second = | user_iflags_second(p) -> int32 const & + | + | Parameters + | ---------- + | p: user_iflags_iterator_t | | __size = | user_iflags_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_iflags_t * | | __swig_destroy__ = | delete_user_iflags_t(self) @@ -32008,94 +35486,70 @@ class user_iflags_t(__builtin__.object) 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 *) + user_labels_begin(map) -> user_labels_iterator_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 *) + user_labels_clear(map) + @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 *) + user_labels_end(map) -> user_labels_iterator_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) + user_labels_erase(map, p) + @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 &) + user_labels_find(map, key) -> user_labels_iterator_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) + user_labels_first(p) -> int const & + @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 *) + user_labels_free(map) + @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 &) + user_labels_insert(map, key, val) -> user_labels_iterator_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: @@ -32106,12 +35560,14 @@ class user_labels_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: user_labels_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_labels_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: user_labels_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32139,54 +35595,39 @@ class user_labels_iterator_t(__builtin__.object) 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) + user_labels_next(p) -> 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_prev(p) -> user_labels_iterator_t - - Move to the previous element. - - @param p (C++: user_labels_iterator_t) + user_labels_prev(p) -> 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) - user_labels_second(p) -> qstring & - - Get reference to the current map value. - - @param p (C++: user_labels_iterator_t) + user_labels_second(p) -> qstring & + @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 *) + user_labels_size(map) -> size_t + @param map (C++: user_labels_t *) Help on class user_labels_t in module ida_hexrays: @@ -32202,6 +35643,7 @@ class user_labels_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> _qstring< char > & + | _Keyval: int const & | | size(self, *args) | size(self) -> size_t @@ -32235,11 +35677,15 @@ class user_lvar_modifier_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> user_lvar_modifier_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | modify_lvars(self, *args) + | Modify lvar settings. Returns: true-modified + | | modify_lvars(self, lvinf) -> bool + | @param lvinf (C++: lvar_uservec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32262,95 +35708,71 @@ class user_lvar_modifier_t(__builtin__.object) 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 *) + user_numforms_begin(map) -> user_numforms_iterator_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 *) + user_numforms_clear(map) + @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 *) + user_numforms_end(map) -> user_numforms_iterator_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) + user_numforms_erase(map, p) + @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 &) + user_numforms_find(map, key) -> user_numforms_iterator_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) + user_numforms_first(p) -> operand_locator_t + @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 *) + user_numforms_free(map) + @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 &) + user_numforms_insert(map, key, val) -> user_numforms_iterator_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: @@ -32361,12 +35783,14 @@ class user_numforms_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: user_numforms_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_numforms_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: user_numforms_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32394,54 +35818,39 @@ class user_numforms_iterator_t(__builtin__.object) 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) + user_numforms_next(p) -> 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_prev(p) -> user_numforms_iterator_t - - Move to the previous element. - - @param p (C++: user_numforms_iterator_t) + user_numforms_prev(p) -> 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) - user_numforms_second(p) -> number_format_t - - Get reference to the current map value. - - @param p (C++: user_numforms_iterator_t) + user_numforms_second(p) -> number_format_t + @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 *) + user_numforms_size(map) -> size_t + @param map (C++: user_numforms_t *) Help on class user_numforms_t in module ida_hexrays: @@ -32475,6 +35884,7 @@ class user_numforms_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> number_format_t + | _Keyval: operand_locator_t const & | | begin lambda self, *args | @@ -32540,33 +35950,77 @@ class user_numforms_t(__builtin__.object) | | __begin = | user_numforms_begin(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * | | __clear = | user_numforms_clear(map) + | + | Parameters + | ---------- + | map: user_numforms_t * | | __end = | user_numforms_end(map) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | map: user_numforms_t const * | | __erase = | user_numforms_erase(map, p) + | + | Parameters + | ---------- + | map: user_numforms_t * + | p: user_numforms_iterator_t | | __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(p) -> operand_locator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __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 & | | __next = | user_numforms_next(p) -> user_numforms_iterator_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __second = | user_numforms_second(p) -> number_format_t + | + | Parameters + | ---------- + | p: user_numforms_iterator_t | | __size = | user_numforms_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_numforms_t * | | __swig_destroy__ = | delete_user_numforms_t(self) @@ -32580,94 +36034,70 @@ class user_numforms_t(__builtin__.object) 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 *) + user_unions_begin(map) -> user_unions_iterator_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 *) + user_unions_clear(map) + @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 *) + user_unions_end(map) -> user_unions_iterator_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) + user_unions_erase(map, p) + @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 &) + user_unions_find(map, key) -> user_unions_iterator_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) + user_unions_first(p) -> ea_t const & + @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 *) + user_unions_free(map) + @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 &) + user_unions_insert(map, key, val) -> user_unions_iterator_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: @@ -32678,12 +36108,14 @@ class user_unions_iterator_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, p) -> bool + | p: user_unions_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_unions_iterator_t | | __ne__(self, *args) | __ne__(self, p) -> bool + | p: user_unions_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32711,54 +36143,39 @@ class user_unions_iterator_t(__builtin__.object) 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) + user_unions_next(p) -> 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_prev(p) -> user_unions_iterator_t - - Move to the previous element. - - @param p (C++: user_unions_iterator_t) + user_unions_prev(p) -> 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) - user_unions_second(p) -> intvec_t - - Get reference to the current map value. - - @param p (C++: user_unions_iterator_t) + user_unions_second(p) -> intvec_t + @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 *) + user_unions_size(map) -> size_t + @param map (C++: user_unions_t *) Help on class user_unions_t in module ida_hexrays: @@ -32792,6 +36209,7 @@ class user_unions_t(__builtin__.object) | | at(self, *args) | at(self, _Keyval) -> intvec_t + | _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -32857,33 +36275,77 @@ class user_unions_t(__builtin__.object) | | __begin = | user_unions_begin(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * | | __clear = | user_unions_clear(map) + | + | Parameters + | ---------- + | map: user_unions_t * | | __end = | user_unions_end(map) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * | | __erase = | user_unions_erase(map, p) + | + | Parameters + | ---------- + | map: user_unions_t * + | p: user_unions_iterator_t | | __find = | user_unions_find(map, key) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t const * + | key: ea_t const & | | __first = | user_unions_first(p) -> ea_t const & + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __insert = | user_unions_insert(map, key, val) -> user_unions_iterator_t + | + | Parameters + | ---------- + | map: user_unions_t * + | key: ea_t const & + | val: intvec_t const & | | __next = | user_unions_next(p) -> user_unions_iterator_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __second = | user_unions_second(p) -> intvec_t + | + | Parameters + | ---------- + | p: user_unions_iterator_t | | __size = | user_unions_size(map) -> size_t + | + | Parameters + | ---------- + | map: user_unions_t * | | __swig_destroy__ = | delete_user_unions_t(self) @@ -32902,13 +36364,15 @@ class uval_ivl_ivlset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, v) -> bool + | v: ivl_t const & | | __init__(self, *args) | __init__(self) -> uval_ivl_ivlset_t - | __init__(self, ivl) -> uval_ivl_ivlset_t + | ivl: ivl_t const & | | __ne__(self, *args) | __ne__(self, v) -> bool + | v: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -32931,6 +36395,7 @@ class uval_ivl_ivlset_t(__builtin__.object) | | getivl(self, *args) | getivl(self, idx) -> ivl_t + | idx: int | | lastivl(self, *args) | lastivl(self) -> ivl_t @@ -32945,10 +36410,12 @@ class uval_ivl_ivlset_t(__builtin__.object) | set_all_values(self) | | single_value(self, *args) - | single_value(self, v) -> bool + | single_value(self) -> bool + | v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) | swap(self, r) + | r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32977,6 +36444,8 @@ class uval_ivl_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _off, _size) -> uval_ivl_t + | _off: unsigned-ea-like-numeric-type↗ + | _size: unsigned-ea-like-numeric-type↗ | | __repr__ = _swig_repr(self) | @@ -33022,25 +36491,35 @@ class valrng_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: valrng_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: valrng_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: valrng_t const & | | __init__(self, *args) | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t + | size_: int + | + | | __init__(self, r) -> valrng_t + | r: valrng_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: valrng_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: valrng_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: valrng_t const & | | __repr__ = _swig_repr(self) | @@ -33058,9 +36537,11 @@ class valrng_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int + | r: valrng_t const & | | cvt_to_cmp(self, *args) | cvt_to_cmp(self, strict) -> bool + | @param strict (C++: bool) | | cvt_to_single_value(self, *args) | cvt_to_single_value(self) -> bool @@ -33076,9 +36557,11 @@ class valrng_t(__builtin__.object) | | has(self, *args) | has(self, v) -> bool + | @param v (C++: uvlr_t) | | intersect_with(self, *args) | intersect_with(self, r) -> bool + | @param r (C++: const valrng_t &) | | inverse(self, *args) | inverse(self) @@ -33088,27 +36571,31 @@ class valrng_t(__builtin__.object) | | max_svalue(self, *args) | max_svalue(self, size_) -> uvlr_t - | max_svalue(self) -> uvlr_t + | size_: int | | max_value(self, *args) | max_value(self, size_) -> uvlr_t - | max_value(self) -> uvlr_t + | size_: int | | min_svalue(self, *args) | min_svalue(self, size_) -> uvlr_t - | min_svalue(self) -> uvlr_t + | size_: int | | reduce_size(self, *args) | reduce_size(self, new_size) -> bool + | @param new_size (C++: int) | | set_all(self, *args) | set_all(self) | | set_cmp(self, *args) | set_cmp(self, cmp, _value) + | @param cmp (C++: cmpop_t) + | @param _value (C++: uvlr_t) | | set_eq(self, *args) | set_eq(self, v) + | @param v (C++: uvlr_t) | | set_none(self, *args) | set_none(self) @@ -33118,9 +36605,11 @@ class valrng_t(__builtin__.object) | | swap(self, *args) | swap(self, r) + | @param r (C++: valrng_t &) | | unite_with(self, *args) | unite_with(self, r) -> bool + | @param r (C++: const valrng_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33149,29 +36638,36 @@ class var_ref_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: var_ref_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: var_ref_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: var_ref_t const & | | __init__(self, *args) | __init__(self) -> var_ref_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: var_ref_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: var_ref_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: var_ref_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: var_ref_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33186,7 +36682,7 @@ class var_ref_t(__builtin__.object) | var_ref_t_idx_get(self) -> int | | mba - | var_ref_t_mba_get(self) -> mbl_array_t + | var_ref_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -33213,11 +36709,12 @@ class vc_printer_t(vd_printer_t) | | __init__(self, *args) | __init__(self, f) -> vc_printer_t + | f: cfunc_t const * | | __repr__ = _swig_repr(self) | | oneliner(self, *args) - | oneliner(self) -> bool + | Are we generating one-line text representation? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33242,6 +36739,8 @@ class vc_printer_t(vd_printer_t) | | _print(self, *args) | _print(self, indent, format) -> int + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -33267,9 +36766,19 @@ class vd_failure_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> vd_failure_t - | __init__(self, code, ea, buf=None) -> vd_failure_t + | code: enum merror_t + | ea: ea_t + | buf: char const * + | + | | __init__(self, code, ea, buf) -> vd_failure_t + | code: enum merror_t + | ea: ea_t + | buf: qstring const & + | + | | __init__(self, _hf) -> vd_failure_t + | _hf: hexrays_failure_t const & | | __repr__ = _swig_repr(self) | @@ -33311,6 +36820,8 @@ class vd_interr_t(vd_failure_t) | | __init__(self, *args) | __init__(self, ea, buf) -> vd_interr_t + | ea: ea_t + | buf: char const * | | __repr__ = _swig_repr(self) | @@ -33355,11 +36866,14 @@ class vd_printer_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> vd_printer_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, indent, format) -> int + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33399,41 +36913,52 @@ class vdloc_t(ida_typeinf.argloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: vdloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: vdloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: vdloc_t const & | | __init__(self, *args) | __init__(self) -> vdloc_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: vdloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: vdloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: vdloc_t const & | | __repr__ = _swig_repr(self) | | _set_reg1(self, *args) | _set_reg1(self, r1) + | @param r1 (C++: int) | | compare(self, *args) | compare(self, r) -> int + | r: vdloc_t const & | | is_aliasable(self, *args) | is_aliasable(self, mb, size) -> bool + | @param mb (C++: const mba_t *) + | @param size (C++: int) | | reg1(self, *args) | reg1(self) -> int | | set_reg1(self, *args) | set_reg1(self, r1) + | @param r1 (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33451,132 +36976,188 @@ class vdloc_t(ida_typeinf.argloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg2(self, *args) + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | atype(self, *args) - | atype(self) -> argloc_type_t + | Get type ( 'Argument location types' ) | | calc_offset(self, *args) - | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | consume_rrel(self, *args) + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) - | get_custom(self) -> void * + | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' | | get_ea(self, *args) - | get_ea(self) -> ea_t + | Get the global address. Use when 'atype()' == 'ALOC_STATIC' | | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 + | Get all register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' | | has_reg(self, *args) - | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) - | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. | | is_badloc(self, *args) - | is_badloc(self) -> bool + | See 'ALOC_NONE' . | | is_custom(self, *args) - | is_custom(self) -> bool + | See 'ALOC_CUSTOM' . | | is_ea(self, *args) - | is_ea(self) -> bool + | See 'ALOC_STATIC' . | | is_fragmented(self, *args) - | is_fragmented(self) -> bool + | 'is_scattered()' || 'is_reg2()' | | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | is_reg(self) -> bool + | 'is_reg1()' || 'is_reg2()' | | is_reg1(self, *args) - | is_reg1(self) -> bool + | See 'ALOC_REG1' . | | is_reg2(self, *args) - | is_reg2(self) -> bool + | See 'ALOC_REG2' . | | is_rrel(self, *args) - | is_rrel(self) -> bool + | See 'ALOC_RREL' . | | is_scattered(self, *args) - | is_scattered(self) -> bool + | See 'ALOC_DIST' . | | is_stkoff(self, *args) - | is_stkoff(self) -> bool + | See 'ALOC_STACK' . | | justify_reg_high(self, *args) + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | reg2(self, *args) - | reg2(self) -> int + | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' | | regoff(self, *args) - | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when + | 'atype()' == 'ALOC_REG1' | | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' | | set_badloc(self, *args) - | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) + | Set static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg2(self, *args) + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) + | Set stack offset location. + | | set_stkoff(self, off) + | @param off (C++: sval_t) | | stkoff(self, *args) - | stkoff(self) -> sval_t + | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' | | swap(self, *args) + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -33599,139 +37180,321 @@ class vdui_t(__builtin__.object) | __repr__ = _swig_repr(self) | | calc_cmt_type(self, *args) + | Check if the specified line can have a comment. Due to the coordinate + | system for comments (http://www.hexblog.com/?p=60) some function lines + | cannot have comments. This function checks if a comment can be + | attached to the specified line. + | | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t + | @param lnnum: line number (0 based) (C++: size_t) + | @param cmttype: comment types to check (C++: cmt_type_t) + | @return: possible comment types | | clear(self, *args) - | clear(self) + | Clear the pseudocode window. It deletes the current function and + | microcode. | | collapse_item(self, *args) + | Collapse/uncollapse item. This function collapses the current item. + | | collapse_item(self, hide) -> bool + | @param hide (C++: bool) + | @return: false if failed. | | collapse_lvars(self, *args) + | Collapse/uncollapse local variable declarations. + | | collapse_lvars(self, hide) -> bool + | @param hide (C++: bool) + | @return: false if failed. | | ctree_to_disasm(self, *args) - | 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. | | del_orphan_cmts(self, *args) - | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the + | screen. | | edit_cmt(self, *args) + | Edit an indented comment. This function displays a dialog box and + | allows the user to edit the comment for the specified ctree location. + | | edit_cmt(self, loc) -> bool + | @param loc: comment location (C++: const treeloc_t &) + | @return: false if failed or cancelled | | edit_func_cmt(self, *args) - | edit_func_cmt(self) -> bool + | Edit a function comment. This function displays a dialog box and + | allows the user to edit the function comment. | | get_current_item(self, *args) + | Get current item. This function refreshes the 'cpos' , 'item' , 'tail' + | fields. 'cfunc_t::get_line_item()' + | | get_current_item(self, idv) -> bool + | @param idv: keyboard or mouse (C++: input_device_t) + | @return: false if failed | | get_current_label(self, *args) - | get_current_label(self) -> int + | Get current label. If there is a label under the cursor, return its + | number. | | get_number(self, *args) - | get_number(self) -> cnumber_t + | Get current number. If the current item is a number, return pointer to + | it. | | in_ctree(self, *args) - | in_ctree(self) -> bool + | Is the current item a statement? | | invert_bits(self, *args) - | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current + | number. | | invert_sign(self, *args) - | invert_sign(self) -> bool + | Negate a number. This function negates the current number. | | jump_enter(self, *args) + | 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. + | | jump_enter(self, idv, omflags) -> bool + | @param idv: what cursor must be used, the keyboard or the mouse (C++: + | input_device_t) + | @param omflags: OM_NEWWIN: new pseudocode window will open, 0: reuse + | the existing window (C++: int) + | @return: false if failed | | locked(self, *args) - | 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. | | map_lvar(self, *args) + | 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 + | | map_lvar(self, frm, to) -> bool + | @param frm: the variable being mapped (C++: lvar_t *) + | @param to: the variable to map to. if NULL, unmaps the variable (C++: + | lvar_t *) + | @return: false if failed | | refresh_cpos(self, *args) + | Refresh the current position. This function refreshes the 'cpos' + | field. + | | refresh_cpos(self, idv) -> bool + | @param idv: keyboard or mouse (C++: input_device_t) + | @return: false if failed | | refresh_ctext(self, *args) + | 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. 'refresh_view()' , refresh_func_ctext() + | | refresh_ctext(self, activate=True) + | @param activate (C++: bool) | | refresh_view(self, *args) + | 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. + | 'refresh_ctext()' + | | refresh_view(self, redo_mba) + | @param redo_mba: true means to redecompile the current function + | false means to rebuild ctree without regenerating + | microcode (C++: bool) | | rename_global(self, *args) + | Rename global item. This function displays a dialog box and allows the + | user to rename a global item (data or function). + | | rename_global(self, ea) -> bool + | @param ea: address of the global item (C++: ea_t) + | @return: false if failed or cancelled | | rename_label(self, *args) + | Rename a label. This function displays a dialog box and allows the + | user to rename a statement label. + | | rename_label(self, label) -> bool + | @param label: label number (C++: int) + | @return: false if failed or cancelled | | rename_lvar(self, *args) + | Rename local variable. This function permanently renames a local + | variable. + | | rename_lvar(self, v, name, is_user_name) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param name: new variable name (C++: const char *) + | @param is_user_name: use true to save the new name into the database + | (C++: bool) + | @return: false if failed | | rename_strmem(self, *args) + | Rename structure field. This function displays a dialog box and allows + | the user to rename a structure field. + | | rename_strmem(self, sptr, mptr) -> bool + | @param sptr: pointer to structure (C++: struc_t *) + | @param mptr: pointer to structure member (C++: member_t *) + | @return: false if failed or cancelled | | set_global_type(self, *args) + | 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). + | | set_global_type(self, ea) -> bool + | @param ea: address of the global item (C++: ea_t) + | @return: false if failed or cancelled | | set_locked(self, *args) | set_locked(self, v) -> bool + | @param v (C++: bool) | | set_lvar_cmt(self, *args) + | Set local variable comment. This function permanently sets a variable + | comment. + | | set_lvar_cmt(self, v, cmt) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param cmt: new comment (C++: const char *) + | @return: false if failed | | set_lvar_type(self, *args) + | 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' + | | set_lvar_type(self, v, type) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param type: new variable type (C++: const tinfo_t &) + | @return: false if failed | | set_noptr_lvar(self, *args) + | 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' + | | set_noptr_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed | | set_num_enum(self, *args) - | 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. | | set_num_radix(self, *args) + | Change number base. This function changes the current number + | representation. + | | set_num_radix(self, base) -> bool + | @param base: number radix (10 or 16) 0 means a character constant + | (C++: int) + | @return: false if failed | | set_num_stroff(self, *args) - | set_num_stroff(self) -> bool + | Convert number to structure field offset. Currently not implemented. | | set_strmem_type(self, *args) + | Set structure field type. This function displays a dialog box and + | allows the user to change the type of a structure field. + | | set_strmem_type(self, sptr, mptr) -> bool + | @param sptr: pointer to structure (C++: struc_t *) + | @param mptr: pointer to structure member (C++: member_t *) + | @return: false if failed or cancelled | | set_valid(self, *args) | set_valid(self, v) + | @param v (C++: bool) | | set_visible(self, *args) | set_visible(self, v) + | @param v (C++: bool) | | split_item(self, *args) + | Split/unsplit item. This function splits the current assignment + | expression. + | | split_item(self, split) -> bool + | @param split (C++: bool) + | @return: false if failed. | | switch_to(self, *args) + | Display the specified pseudocode. This function replaces the + | pseudocode window contents with the specified 'cfunc_t' . + | | switch_to(self, f, activate) + | @param f: pointer to the function to display. (C++: cfuncptr_t) + | @param activate: should the pseudocode window get focus? (C++: bool) | | ui_edit_lvar_cmt(self, *args) + | Set local variable comment. This function displays a dialog box and + | allows the user to edit the comment of a local variable. + | | ui_edit_lvar_cmt(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_map_lvar(self, *args) + | Map a local variable to another. This function displays a variable + | list and allows the user to select mapping. + | | ui_map_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_rename_lvar(self, *args) + | Rename local variable. This function displays a dialog box and allows + | the user to rename a local variable. + | | ui_rename_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_set_call_type(self, *args) + | Set type of a function call This function displays a dialog box and + | allows the user to change the type of a function call + | | ui_set_call_type(self, e) -> bool + | @param e: pointer to call expression (C++: const cexpr_t *) + | @return: false if failed or cancelled | | ui_set_lvar_type(self, *args) + | Set local variable type. This function displays a dialog box and + | allows the user to change the type of a local variable. + | | ui_set_lvar_type(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_unmap_lvar(self, *args) + | 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. + | | ui_unmap_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | valid(self, *args) - | 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) - | visible(self) -> bool + | Is the pseudocode window visible? if not, it might be invisible or + | destroyed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33764,7 +37527,7 @@ class vdui_t(__builtin__.object) | vdui_t_last_code_get(self) -> merror_t | | mba - | vdui_t_mba_get(self) -> mbl_array_t + | vdui_t_mba_get(self) -> mba_t | | tail | vdui_t_tail_get(self) -> ctree_item_t @@ -33798,27 +37561,45 @@ class vivl_t(voff_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: vivl_t const & + | + | | __eq__(self, mop) -> bool + | mop: mop_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: vivl_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: vivl_t const & | | __init__(self, *args) | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t + | _type: mopt_t + | _off: sval_t + | _size: int + | + | | __init__(self, ch) -> vivl_t + | ch: chain_t const & + | + | | __init__(self, op) -> vivl_t + | op: mop_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: vivl_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: vivl_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: vivl_t const & | | __repr__ = _swig_repr(self) | @@ -33827,34 +37608,63 @@ class vivl_t(voff_t) | | compare(self, *args) | compare(self, r) -> int + | r: vivl_t const & | | contains(self, *args) + | Does our value interval contain the specified value offset? + | | contains(self, voff2) -> bool + | @param voff2 (C++: const voff_t &) | | dstr(self, *args) | dstr(self) -> char const * | | extend_to_cover(self, *args) + | Extend a value interval using another value interval of the same type + | | extend_to_cover(self, r) -> bool + | @param r (C++: const vivl_t &) + | @return: success | | includes(self, *args) + | Does our value interval include another? + | | includes(self, r) -> bool + | @param r (C++: const vivl_t &) | | intersect(self, *args) + | Intersect value intervals the same type + | | intersect(self, r) -> uval_t + | @param r (C++: const vivl_t &) + | @return: size of the resulting intersection | | overlap(self, *args) + | Do two value intervals overlap? + | | overlap(self, r) -> bool + | @param r (C++: const vivl_t &) | | set(self, *args) | set(self, _type, _off, _size=0) + | @param _type (C++: mopt_t) + | @param _off (C++: sval_t) + | @param _size (C++: int) + | + | | set(self, voff, _size) + | voff: voff_t const & + | @param _size (C++: int) | | set_reg(self, *args) | set_reg(self, mreg, sz=0) + | @param mreg (C++: mreg_t) + | @param sz (C++: int) | | set_stkoff(self, *args) | set_stkoff(self, stkoff, sz=0) + | @param stkoff (C++: sval_t) + | @param sz (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33876,12 +37686,14 @@ class vivl_t(voff_t) | | add(self, *args) | add(self, width) -> voff_t + | @param width (C++: int) | | defined(self, *args) | defined(self) -> bool | | diff(self, *args) | diff(self, r) -> sval_t + | @param r (C++: const voff_t &) | | get_reg(self, *args) | get_reg(self) -> mreg_t @@ -33891,6 +37703,7 @@ class vivl_t(voff_t) | | inc(self, *args) | inc(self, delta) + | @param delta (C++: sval_t) | | is_reg(self, *args) | is_reg(self) -> bool @@ -33925,40 +37738,53 @@ class voff_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: voff_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: voff_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: voff_t const & | | __init__(self, *args) | __init__(self) -> voff_t - | __init__(self, _type, _off) -> voff_t + | _type: mopt_t + | _off: sval_t + | + | | __init__(self, op) -> voff_t + | op: mop_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: voff_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: voff_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: voff_t const & | | __repr__ = _swig_repr(self) | | add(self, *args) | add(self, width) -> voff_t + | @param width (C++: int) | | compare(self, *args) | compare(self, r) -> int + | r: voff_t const & | | defined(self, *args) | defined(self) -> bool | | diff(self, *args) | diff(self, r) -> sval_t + | @param r (C++: const voff_t &) | | get_reg(self, *args) | get_reg(self) -> mreg_t @@ -33968,6 +37794,7 @@ class voff_t(__builtin__.object) | | inc(self, *args) | inc(self, delta) + | @param delta (C++: sval_t) | | is_reg(self, *args) | is_reg(self) -> bool @@ -33977,12 +37804,16 @@ class voff_t(__builtin__.object) | | set(self, *args) | set(self, _type, _off) + | @param _type (C++: mopt_t) + | @param _off (C++: sval_t) | | set_reg(self, *args) | set_reg(self, mreg) + | @param mreg (C++: mreg_t) | | set_stkoff(self, *args) | set_stkoff(self, stkoff) + | @param stkoff (C++: sval_t) | | undef(self, *args) | undef(self) @@ -34067,11 +37898,21 @@ ida_hexrays.CFL_HELPER created from a decompiler helper function """ +ida_hexrays.CFL_NORET +""" +call does not return +""" + ida_hexrays.CFS_BOUNDS """ 'eamap' and 'boundaries' are ready """ +ida_hexrays.CFS_LOCKED +""" +cfunc is temporarily locked +""" + ida_hexrays.CFS_LVARS_HIDDEN """ local variable definitions are collapsed @@ -34182,11 +38023,21 @@ ida_hexrays.DECOMP_NO_FRAME do not use function frame info (only snippet mode) """ +ida_hexrays.DECOMP_NO_HIDE +""" +do not hide display waitbox. see close_hexrays_waitboxes() +""" + ida_hexrays.DECOMP_NO_WAIT """ do not display waitbox """ +ida_hexrays.DECOMP_NO_XREFS +""" +do not update global xrefs cache +""" + ida_hexrays.DECOMP_WARNINGS """ display warnings in the output window @@ -34204,7 +38055,7 @@ ignore instruction opcodes ida_hexrays.EQ_IGNSIZE """ -ignore operand sizes +ignore source operand sizes """ ida_hexrays.EQ_OPTINSN @@ -34851,9 +38702,32 @@ ida_hexrays.NF_NEGDONE temporary internal bit: negation has been performed """ -ida_hexrays.NF_STROFF +ida_hexrays.NF_VALID """ -internal bit: used as stroff, valid iff 'is_stroff()' +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 +""" + +ida_hexrays.OPF_NEW_WINDOW +""" +open new window +""" + +ida_hexrays.OPF_NO_WAIT +""" +do not display waitbox if decompilation happens +""" + +ida_hexrays.OPF_REUSE +""" +reuse existing window +""" + +ida_hexrays.OPF_REUSE_ACTIVE +""" +currently active widget is a pseudocode view + +reuse existing window, only if the """ ida_hexrays.OPROP_CCFLAGS @@ -34871,6 +38745,11 @@ ida_hexrays.OPROP_IMPDONE imported operand (a pointer) has been dereferenced """ +ida_hexrays.OPROP_LOWADDR +""" +a low address offset +""" + ida_hexrays.OPROP_UDEFVAL """ uses undefined value @@ -34898,7 +38777,8 @@ may update minstkref ida_hexrays.OPTI_NO_LDXOPT """ -do not optimize low/high(ldx) +the function is called after the propagation attempt, we do not +optimize low/high(ldx) in this case """ ida_hexrays.SHINS_LDXEA @@ -34971,11 +38851,6 @@ ida_hexrays.VDRUN_STATS Print statistics into vd_stats.txt. """ -ida_hexrays.VDUI_LOCKED -""" -is locked? -""" - ida_hexrays.VDUI_VALID """ is valid? @@ -35019,12 +38894,13 @@ Help on function __make_idainfo_getter in module ida_ida: __make_idainfo_getter(name) +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) - calc_default_idaplace_flags() -> int - - Get default disassembly line options. Help on class compiler_info_t in module ida_ida: @@ -35176,9 +39052,11 @@ class idainfo(__builtin__.object) | | set_maxEA(self, *args) | set_maxEA(self, ea) + | ea: ea_t | | set_minEA(self, *args) | set_minEA(self, ea) + | ea: ea_t | | set_pack_mode = __func(self, *args) | @@ -35419,9 +39297,6 @@ inf_gen_tryblks(*args) 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: @@ -35523,61 +39398,73 @@ Help on function inf_set_64bit in module ida_ida: inf_set_64bit(*args) inf_set_64bit(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_auto_enabled in module ida_ida: inf_set_auto_enabled(*args) inf_set_auto_enabled(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_be in module ida_ida: inf_set_be(*args) inf_set_be(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_gen_lzero in module ida_ida: inf_set_gen_lzero(*args) inf_set_gen_lzero(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_gen_null in module ida_ida: inf_set_gen_null(*args) inf_set_gen_null(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_gen_tryblks in module ida_ida: inf_set_gen_tryblks(*args) inf_set_gen_tryblks(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_graph_view in module ida_ida: inf_set_graph_view(*args) inf_set_graph_view(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_pack_mode in module ida_ida: inf_set_pack_mode(*args) inf_set_pack_mode(pack_mode) -> int + @param pack_mode (C++: int) Help on function inf_set_show_auto in module ida_ida: inf_set_show_auto(*args) inf_set_show_auto(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_show_void in module ida_ida: inf_set_show_void(*args) inf_set_show_void(_v=True) -> bool + @param _v (C++: bool) Help on function in module ida_ida: @@ -35587,6 +39474,7 @@ 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 + @param _v (C++: bool) Help on function inf_show_auto in module ida_ida: @@ -35766,9 +39654,6 @@ inf_get_af2(*args) 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: @@ -35779,9 +39664,6 @@ inf_get_af_high(*args) 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: @@ -35813,6 +39695,7 @@ Help on function inf_get_cc in module ida_ida: inf_get_cc(*args) inf_get_cc(out) -> bool + @param out (C++: compiler_info_t *) Help on function inf_get_cc_cm in module ida_ida: @@ -36008,7 +39891,7 @@ Help on function inf_get_privrange in module ida_ida: inf_get_privrange(*args) inf_get_privrange(out) -> bool - inf_get_privrange() -> range_t + @param out (C++: range_t *) Help on function inf_get_privrange_end_ea in module ida_ida: @@ -36149,6 +40032,7 @@ 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) + @param cnt (C++: int) Help on function inf_is_limiter_empty in module ida_ida: @@ -36204,6 +40088,7 @@ Help on function inf_postinc_strlit_sernum in module ida_ida: inf_postinc_strlit_sernum(*args) inf_postinc_strlit_sernum(cnt=1) -> uval_t + @param cnt (C++: uval_t) Help on function inf_prefix_show_funcoff in module ida_ida: @@ -36249,796 +40134,951 @@ Help on function inf_set_32bit in module ida_ida: inf_set_32bit(*args) inf_set_32bit(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_abibits in module ida_ida: inf_set_abibits(*args) inf_set_abibits(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_af in module ida_ida: inf_set_af(*args) inf_set_af(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_af2 in module ida_ida: inf_set_af2(*args) inf_set_af2(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_af2_low in module ida_ida: inf_set_af2_low(*args) inf_set_af2_low(saf) + @param saf (C++: ushort) Help on function inf_set_af_high in module ida_ida: inf_set_af_high(*args) inf_set_af_high(saf2) + @param saf2 (C++: ushort) Help on function inf_set_af_low in module ida_ida: inf_set_af_low(*args) inf_set_af_low(saf) + @param saf (C++: ushort) 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 + @param _v (C++: bool) Help on function inf_set_allow_sigmulti in module ida_ida: inf_set_allow_sigmulti(*args) inf_set_allow_sigmulti(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_appcall_options in module ida_ida: inf_set_appcall_options(*args) inf_set_appcall_options(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_append_sigcmt in module ida_ida: inf_set_append_sigcmt(*args) inf_set_append_sigcmt(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_apptype in module ida_ida: inf_set_apptype(*args) inf_set_apptype(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_asmtype in module ida_ida: inf_set_asmtype(*args) inf_set_asmtype(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_baseaddr in module ida_ida: inf_set_baseaddr(*args) inf_set_baseaddr(_v) -> bool + @param _v (C++: uval_t) 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 + @param _v (C++: 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 + @param _v (C++: short) Help on function inf_set_cc in module ida_ida: inf_set_cc(*args) inf_set_cc(_v) -> bool + @param _v (C++: const compiler_info_t &) Help on function inf_set_cc_cm in module ida_ida: inf_set_cc_cm(*args) inf_set_cc_cm(_v) -> bool + @param _v (C++: cm_t) Help on function inf_set_cc_defalign in module ida_ida: inf_set_cc_defalign(*args) inf_set_cc_defalign(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_cc_id in module ida_ida: inf_set_cc_id(*args) inf_set_cc_id(_v) -> bool + @param _v (C++: comp_t) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: uchar) 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_cmtflg in module ida_ida: inf_set_cmtflg(*args) inf_set_cmtflg(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_coagulate_code in module ida_ida: inf_set_coagulate_code(*args) inf_set_coagulate_code(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_coagulate_data in module ida_ida: inf_set_coagulate_data(*args) inf_set_coagulate_data(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_comment in module ida_ida: inf_set_comment(*args) inf_set_comment(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_compress_idb in module ida_ida: inf_set_compress_idb(*args) inf_set_compress_idb(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_data_offset in module ida_ida: inf_set_data_offset(*args) inf_set_data_offset(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: uint32) Help on function inf_set_datatypes in module ida_ida: inf_set_datatypes(*args) inf_set_datatypes(_v) -> bool + @param _v (C++: uval_t) 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 + @param _v (C++: bool) Help on function inf_set_decode_fpp in module ida_ida: inf_set_decode_fpp(*args) inf_set_decode_fpp(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_demnames in module ida_ida: inf_set_demnames(*args) inf_set_demnames(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_dll in module ida_ida: inf_set_dll(*args) inf_set_dll(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_filetype in module ida_ida: inf_set_filetype(*args) inf_set_filetype(_v) -> bool + @param _v (C++: filetype_t) Help on function inf_set_final_pass in module ida_ida: inf_set_final_pass(*args) inf_set_final_pass(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_flat_off32 in module ida_ida: inf_set_flat_off32(*args) inf_set_flat_off32(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_gen_assume in module ida_ida: inf_set_gen_assume(*args) inf_set_gen_assume(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_gen_org in module ida_ida: inf_set_gen_org(*args) inf_set_gen_org(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_genflags in module ida_ida: inf_set_genflags(*args) inf_set_genflags(_v) -> bool + @param _v (C++: ushort) 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 + @param _v (C++: bool) Help on function inf_set_handle_eh in module ida_ida: inf_set_handle_eh(*args) inf_set_handle_eh(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_handle_rtti in module ida_ida: inf_set_handle_rtti(*args) inf_set_handle_rtti(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_hard_float in module ida_ida: inf_set_hard_float(*args) inf_set_hard_float(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_hide_comments in module ida_ida: inf_set_hide_comments(*args) inf_set_hide_comments(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_hide_libfuncs in module ida_ida: inf_set_hide_libfuncs(*args) inf_set_hide_libfuncs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_highoff in module ida_ida: inf_set_highoff(*args) inf_set_highoff(_v) -> bool + @param _v (C++: ea_t) 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 + @param _v (C++: bool) Help on function inf_set_indent in module ida_ida: inf_set_indent(*args) inf_set_indent(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_kernel_mode in module ida_ida: inf_set_kernel_mode(*args) inf_set_kernel_mode(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_lenxref in module ida_ida: inf_set_lenxref(*args) inf_set_lenxref(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_lflags in module ida_ida: inf_set_lflags(*args) inf_set_lflags(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_limiter in module ida_ida: inf_set_limiter(*args) inf_set_limiter(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_limiter_empty in module ida_ida: inf_set_limiter_empty(*args) inf_set_limiter_empty(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_limiter_thick in module ida_ida: inf_set_limiter_thick(*args) inf_set_limiter_thick(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_limiter_thin in module ida_ida: inf_set_limiter_thin(*args) inf_set_limiter_thin(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_listnames in module ida_ida: inf_set_listnames(*args) inf_set_listnames(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_loading_idc in module ida_ida: inf_set_loading_idc(*args) inf_set_loading_idc(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_long_demnames in module ida_ida: inf_set_long_demnames(*args) inf_set_long_demnames(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_lowoff in module ida_ida: inf_set_lowoff(*args) inf_set_lowoff(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_macros_enabled in module ida_ida: inf_set_macros_enabled(*args) inf_set_macros_enabled(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_main in module ida_ida: inf_set_main(*args) inf_set_main(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_map_stkargs in module ida_ida: inf_set_map_stkargs(*args) inf_set_map_stkargs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_margin in module ida_ida: inf_set_margin(*args) inf_set_margin(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_mark_code in module ida_ida: inf_set_mark_code(*args) inf_set_mark_code(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: ushort) Help on function inf_set_max_ea in module ida_ida: inf_set_max_ea(*args) inf_set_max_ea(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_maxref in module ida_ida: inf_set_maxref(*args) inf_set_maxref(_v) -> bool + @param _v (C++: uval_t) Help on function inf_set_mem_aligned4 in module ida_ida: inf_set_mem_aligned4(*args) inf_set_mem_aligned4(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_min_ea in module ida_ida: inf_set_min_ea(*args) inf_set_min_ea(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_nametype in module ida_ida: inf_set_nametype(*args) inf_set_nametype(_v) -> bool + @param _v (C++: char) Help on function inf_set_netdelta in module ida_ida: inf_set_netdelta(*args) inf_set_netdelta(_v) -> bool + @param _v (C++: sval_t) 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_noret_ana in module ida_ida: inf_set_noret_ana(*args) inf_set_noret_ana(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_omax_ea in module ida_ida: inf_set_omax_ea(*args) inf_set_omax_ea(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_omin_ea in module ida_ida: inf_set_omin_ea(*args) inf_set_omin_ea(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_op_offset in module ida_ida: inf_set_op_offset(*args) inf_set_op_offset(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_ostype in module ida_ida: inf_set_ostype(*args) inf_set_ostype(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_outflags in module ida_ida: inf_set_outflags(*args) inf_set_outflags(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_pack_idb in module ida_ida: inf_set_pack_idb(*args) inf_set_pack_idb(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_pack_stkargs in module ida_ida: inf_set_pack_stkargs(*args) inf_set_pack_stkargs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_prefflag in module ida_ida: inf_set_prefflag(*args) inf_set_prefflag(_v) -> bool + @param _v (C++: uchar) 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_privrange in module ida_ida: inf_set_privrange(*args) inf_set_privrange(_v) -> bool + @param _v (C++: const range_t &) 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 + @param _v (C++: ea_t) 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 + @param _v (C++: ea_t) Help on function inf_set_procname in module ida_ida: inf_set_procname(*args) inf_set_procname(_v, len=size_t(-1)) -> bool + @param _v (C++: const char *) + @param len (C++: size_t) Help on function inf_set_propagate_regargs in module ida_ida: inf_set_propagate_regargs(*args) inf_set_propagate_regargs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_propagate_stkargs in module ida_ida: inf_set_propagate_stkargs(*args) inf_set_propagate_stkargs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_readonly_idb in module ida_ida: inf_set_readonly_idb(*args) inf_set_readonly_idb(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_refcmtnum in module ida_ida: inf_set_refcmtnum(*args) inf_set_refcmtnum(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_rename_jumpfunc in module ida_ida: inf_set_rename_jumpfunc(*args) inf_set_rename_jumpfunc(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_rename_nullsub in module ida_ida: inf_set_rename_nullsub(*args) inf_set_rename_nullsub(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_short_demnames in module ida_ida: inf_set_short_demnames(*args) inf_set_short_demnames(_v) -> bool + @param _v (C++: uint32) 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_show_repeatables in module ida_ida: inf_set_show_repeatables(*args) inf_set_show_repeatables(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_snapshot in module ida_ida: inf_set_snapshot(*args) inf_set_snapshot(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_specsegs in module ida_ida: inf_set_specsegs(*args) inf_set_specsegs(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_stack_ldbl in module ida_ida: inf_set_stack_ldbl(*args) inf_set_stack_ldbl(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_stack_varargs in module ida_ida: inf_set_stack_varargs(*args) inf_set_stack_varargs(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_start_cs in module ida_ida: inf_set_start_cs(*args) inf_set_start_cs(_v) -> bool + @param _v (C++: sel_t) Help on function inf_set_start_ea in module ida_ida: inf_set_start_ea(*args) inf_set_start_ea(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_start_ip in module ida_ida: inf_set_start_ip(*args) inf_set_start_ip(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_start_sp in module ida_ida: inf_set_start_sp(*args) inf_set_start_sp(_v) -> bool + @param _v (C++: ea_t) Help on function inf_set_start_ss in module ida_ida: inf_set_start_ss(*args) inf_set_start_ss(_v) -> bool + @param _v (C++: sel_t) Help on function inf_set_strlit_autocmt in module ida_ida: inf_set_strlit_autocmt(*args) inf_set_strlit_autocmt(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_strlit_break in module ida_ida: inf_set_strlit_break(*args) inf_set_strlit_break(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_strlit_flags in module ida_ida: inf_set_strlit_flags(*args) inf_set_strlit_flags(_v) -> bool + @param _v (C++: uchar) 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 + @param _v (C++: bool) Help on function inf_set_strlit_names in module ida_ida: inf_set_strlit_names(*args) inf_set_strlit_names(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: const char *) + @param len (C++: size_t) Help on function inf_set_strlit_savecase in module ida_ida: inf_set_strlit_savecase(*args) inf_set_strlit_savecase(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_strlit_sernum in module ida_ida: inf_set_strlit_sernum(*args) inf_set_strlit_sernum(_v) -> bool + @param _v (C++: uval_t) Help on function inf_set_strlit_zeroes in module ida_ida: inf_set_strlit_zeroes(*args) inf_set_strlit_zeroes(_v) -> bool + @param _v (C++: char) 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 + @param _v (C++: int32) Help on function inf_set_trace_flow in module ida_ida: inf_set_trace_flow(*args) inf_set_trace_flow(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_type_xrefnum in module ida_ida: inf_set_type_xrefnum(*args) inf_set_type_xrefnum(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_unicode_strlits in module ida_ida: inf_set_unicode_strlits(*args) inf_set_unicode_strlits(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_use_allasm in module ida_ida: inf_set_use_allasm(*args) inf_set_use_allasm(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_use_flirt in module ida_ida: inf_set_use_flirt(*args) inf_set_use_flirt(_v=True) -> bool + @param _v (C++: 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 + @param _v (C++: bool) Help on function inf_set_version in module ida_ida: inf_set_version(*args) inf_set_version(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_xrefflag in module ida_ida: inf_set_xrefflag(*args) inf_set_xrefflag(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_xrefnum in module ida_ida: inf_set_xrefnum(*args) inf_set_xrefnum(_v) -> bool + @param _v (C++: uchar) Help on function inf_should_create_stkvars in module ida_ida: @@ -37153,13 +41193,10 @@ inf_use_flirt(*args) 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) + is_filetype_like_binary(ft) -> bool + @param ft (C++: filetype_t) Help on function in module ida_ida: @@ -37168,14 +41205,11 @@ Help on function in module ida_ida: 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) + to_ea(reg_cs, reg_ip) -> ea_t + @param reg_cs (C++: sel_t) + @param reg_ip (C++: uval_t) === ida_ida EPYDOC INJECTIONS === ida_ida.ABI_8ALIGN4 @@ -37913,7 +41947,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -37970,9 +42007,6 @@ 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: @@ -38263,8 +42297,6 @@ 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 @@ -38274,8 +42306,6 @@ 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 @@ -38284,18 +42314,18 @@ Help on function enable_python_cli in module ida_idaapi: enable_python_cli(*args) enable_python_cli(enable) + enable: bool Help on function format_basestring in module ida_idaapi: format_basestring(*args) format_basestring(_in) -> PyObject * + _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: @@ -38311,8 +42341,6 @@ class loader_input_t(__builtin__.object) | | __init__(self, *args) | __init__(self, pycapsule=None) -> loader_input_t - | - | | Closes the file | | __repr__ = _swig_repr(self) @@ -38322,8 +42350,6 @@ class loader_input_t(__builtin__.object) | | 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) @@ -38345,14 +42371,10 @@ class loader_input_t(__builtin__.object) | | 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 @@ -38360,15 +42382,11 @@ class loader_input_t(__builtin__.object) | | 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 @@ -38377,33 +42395,23 @@ class loader_input_t(__builtin__.object) | | 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) @@ -38411,8 +42419,6 @@ class loader_input_t(__builtin__.object) | | tell(self, *args) | tell(self) -> int64 - | - | | Returns the current position | | ---------------------------------------------------------------------- @@ -38420,15 +42426,15 @@ class loader_input_t(__builtin__.object) | | from_capsule(*args) | from_capsule(pycapsule) -> loader_input_t + | pycapsule: PyObject * | | 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 + | linput: linput_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38455,16 +42461,19 @@ 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 + pycapsule: PyObject * 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 + fp: FILE * 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 + linput: linput_t * Help on function notify_when in module ida_idaapi: @@ -38503,6 +42512,7 @@ Help on function parse_command_line3 in module ida_idaapi: parse_command_line3(*args) parse_command_line3(cmdline) -> PyObject * + cmdline: char const * Help on class plugin_t in module ida_idaapi: @@ -38527,6 +42537,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 + | __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) @@ -38593,31 +42626,43 @@ Help on function pycim_get_widget in module ida_idaapi: pycim_get_widget(*args) pycim_get_widget(_self) -> TWidget * + self: PyObject * Help on function pycim_view_close in module ida_idaapi: pycim_view_close(*args) pycim_view_close(_self) + self: PyObject * Help on function pygc_create_groups in module ida_idaapi: pygc_create_groups(*args) pygc_create_groups(_self, groups_infos) -> PyObject * + self: PyObject * + 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 * + self: PyObject * + groups: PyObject * + new_current: PyObject * Help on function pygc_refresh in module ida_idaapi: pygc_refresh(*args) pygc_refresh(_self) + self: PyObject * 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 * + self: PyObject * + groups: PyObject * + expand: PyObject * + new_current: PyObject * Help on class pyidc_cvt_helper__ in module ida_idaapi: @@ -38694,8 +42739,6 @@ 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}. @@ -38714,16 +42757,24 @@ Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) get_mark_comment(slot) -> PyObject * + slot: int32 Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) get_marked_pos(slot) -> ea_t + slot: int32 Help on function mark_position in module ida_idc: mark_position(*args) mark_position(ea, lnnum, x, y, slot, comment) + ea: ea_t + lnnum: int + x: short + y: short + slot: int32 + comment: char const * Help on Appcall__ in module ida_idd object: @@ -39078,6 +43129,11 @@ Help on function appcall in module ida_idd: appcall(*args) appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * + func_ea: ea_t + tid: thid_t + _type_or_none: bytevec_t const & + _fields: bytevec_t const & + arg_list: PyObject * Help on class bptaddr_t in module ida_idd: @@ -39124,12 +43180,14 @@ class call_stack_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: call_stack_info_t const & | | __init__(self, *args) | __init__(self) -> call_stack_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: call_stack_info_t const & | | __repr__ = _swig_repr(self) | @@ -39172,13 +43230,15 @@ class call_stack_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> call_stack_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> call_stack_t - | __init__(self, x) -> call_stack_t + | 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. @@ -39188,20 +43248,26 @@ class call_stack_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< call_stack_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: call_stack_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: call_stack_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: call_stack_info_t const & | | at(self, *args) | at(self, _idx) -> call_stack_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39225,52 +43291,74 @@ class call_stack_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> call_stack_info_t + | it: qvector< call_stack_info_t >::iterator + | + | | erase(self, first, last) -> call_stack_info_t + | first: qvector< call_stack_info_t >::iterator + | last: qvector< call_stack_info_t >::iterator | | extract(self, *args) | extract(self) -> call_stack_info_t | | find(self, *args) | find(self, x) -> call_stack_info_t + | x: call_stack_info_t const & + | + | | find(self, x) -> call_stack_info_t + | x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=call_stack_info_t()) + | x: call_stack_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: call_stack_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: call_stack_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> call_stack_info_t + | it: qvector< call_stack_info_t >::iterator + | x: call_stack_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> call_stack_info_t + | x: call_stack_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: call_stack_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< call_stack_info_t > & | | truncate(self, *args) | truncate(self) @@ -39297,38 +43385,35 @@ Help on function can_exc_continue in module ida_idd: can_exc_continue(*args) can_exc_continue(ev) -> bool + ev: debug_event_t const * 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 + cleanup_appcall(tid) -> error_t + @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 + dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t + @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: @@ -39339,8 +43424,6 @@ 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 @@ -39350,8 +43433,6 @@ 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 @@ -39359,8 +43440,6 @@ 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: @@ -39372,8 +43451,6 @@ 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 @@ -39385,8 +43462,6 @@ 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) @@ -39396,8 +43471,6 @@ 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 @@ -39452,61 +43525,75 @@ class debug_event_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> debug_event_t - | __init__(self, r) -> debug_event_t + | r: debug_event_t const & | | __repr__ = _swig_repr(self) | | bpt(self, *args) - | bpt(self) -> bptaddr_t - | bpt(self) -> bptaddr_t + | 'EXCEPTION' | | bpt_ea(self, *args) - | 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) - | clear(self) + | clear the dependent information (see below), set event code to + | NO_EVENT | | clear_all(self, *args) | clear_all(self) | | copy(self, *args) | copy(self, r) -> debug_event_t + | @param r (C++: const debug_event_t &) | | eid(self, *args) - | eid(self) -> event_id_t + | Event code. | | exc(self, *args) | exc(self) -> excinfo_t | exc(self) -> excinfo_t | | exit_code(self, *args) - | exit_code(self) -> int const & + | 'THREAD_STARTED' (thread name) 'LIB_UNLOADED' (unloaded library name) + | 'INFORMATION' (will be displayed in the output window if not empty) | | info(self, *args) - | info(self) -> qstring - | info(self) -> qstring const & + | 'BREAKPOINT' | | modinfo(self, *args) - | modinfo(self) -> modinfo_t - | modinfo(self) -> modinfo_t + | Information that depends on the event code: + | + | < 'PROCESS_STARTED' , 'PROCESS_ATTACHED' , 'LIB_LOADED' + | 'PROCESS_EXITED' , 'THREAD_EXITED' | | set_bpt(self, *args) | set_bpt(self) -> bptaddr_t | | set_eid(self, *args) + | 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. + | | set_eid(self, id) + | @param id (C++: event_id_t) | | set_exception(self, *args) | set_exception(self) -> excinfo_t | | set_exit_code(self, *args) | set_exit_code(self, id, code) + | @param id (C++: event_id_t) + | @param code (C++: int) | | set_info(self, *args) | set_info(self, id) -> qstring & + | @param id (C++: event_id_t) | | set_modinfo(self, *args) | set_modinfo(self, id) -> modinfo_t + | @param id (C++: event_id_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39547,15 +43634,18 @@ class exception_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> exception_info_t - | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | _code: uint + | _flags: uint32 + | _name: char const * + | _desc: char const * | | __repr__ = _swig_repr(self) | | break_on(self, *args) - | break_on(self) -> bool + | Should we break on the exception? | | handle(self, *args) - | handle(self) -> bool + | Should we handle the exception? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39638,10 +43728,11 @@ class excvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> exception_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> excvec_t - | __init__(self, x) -> excvec_t + | 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. @@ -39653,9 +43744,12 @@ class excvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: exception_info_t const & | | at(self, *args) | at(self, _idx) -> exception_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39679,7 +43773,12 @@ class excvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> exception_info_t + | it: qvector< exception_info_t >::iterator + | + | | erase(self, first, last) -> exception_info_t + | first: qvector< exception_info_t >::iterator + | last: qvector< exception_info_t >::iterator | | extract(self, *args) | extract(self) -> exception_info_t @@ -39689,35 +43788,47 @@ class excvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=exception_info_t()) + | x: exception_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: exception_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> exception_info_t + | it: qvector< exception_info_t >::iterator + | x: exception_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> exception_info_t + | x: exception_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: exception_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< exception_info_t > & | | truncate(self, *args) | truncate(self) @@ -39744,41 +43855,49 @@ Help on function get_event_bpt_hea in module ida_idd: get_event_bpt_hea(*args) get_event_bpt_hea(ev) -> ea_t + ev: debug_event_t const * Help on function get_event_exc_code in module ida_idd: get_event_exc_code(*args) get_event_exc_code(ev) -> uint + ev: debug_event_t const * Help on function get_event_exc_ea in module ida_idd: get_event_exc_ea(*args) get_event_exc_ea(ev) -> ea_t + ev: debug_event_t const * Help on function get_event_exc_info in module ida_idd: get_event_exc_info(*args) get_event_exc_info(ev) -> str + ev: debug_event_t const * Help on function get_event_info in module ida_idd: get_event_info(*args) get_event_info(ev) -> str + ev: debug_event_t const * Help on function get_event_module_base in module ida_idd: get_event_module_base(*args) get_event_module_base(ev) -> ea_t + ev: debug_event_t const * Help on function get_event_module_name in module ida_idd: get_event_module_name(*args) get_event_module_name(ev) -> str + ev: debug_event_t const * Help on function get_event_module_size in module ida_idd: get_event_module_size(*args) get_event_module_size(ev) -> asize_t + ev: debug_event_t const * Help on class meminfo_vec_t in module ida_idd: @@ -39789,13 +43908,15 @@ class meminfo_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< memory_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> memory_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> meminfo_vec_t - | __init__(self, x) -> meminfo_vec_t + | 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. @@ -39805,20 +43926,26 @@ class meminfo_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< memory_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: memory_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: memory_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: memory_info_t const & | | at(self, *args) | at(self, _idx) -> memory_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39842,52 +43969,74 @@ class meminfo_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> memory_info_t + | it: qvector< memory_info_t >::iterator + | + | | erase(self, first, last) -> memory_info_t + | first: qvector< memory_info_t >::iterator + | last: qvector< memory_info_t >::iterator | | extract(self, *args) | extract(self) -> memory_info_t | | find(self, *args) | find(self, x) -> memory_info_t + | x: memory_info_t const & + | + | | find(self, x) -> memory_info_t + | x: memory_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=memory_info_t()) + | x: memory_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: memory_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: memory_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> memory_info_t + | it: qvector< memory_info_t >::iterator + | x: memory_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> memory_info_t + | x: memory_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: memory_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< memory_info_t > & | | truncate(self, *args) | truncate(self) @@ -39924,12 +44073,14 @@ class memory_info_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: memory_info_t const & | | __init__(self, *args) | __init__(self) -> memory_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: memory_info_t const & | | __repr__ = _swig_repr(self) | @@ -39965,37 +44116,58 @@ class memory_info_t(ida_range.range_t) | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -40103,10 +44275,11 @@ class procinfo_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> process_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> procinfo_vec_t - | __init__(self, x) -> procinfo_vec_t + | 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. @@ -40118,9 +44291,12 @@ class procinfo_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: process_info_t const & | | at(self, *args) | at(self, _idx) -> process_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -40144,7 +44320,12 @@ class procinfo_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> process_info_t + | it: qvector< process_info_t >::iterator + | + | | erase(self, first, last) -> process_info_t + | first: qvector< process_info_t >::iterator + | last: qvector< process_info_t >::iterator | | extract(self, *args) | extract(self) -> process_info_t @@ -40154,35 +44335,47 @@ class procinfo_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=process_info_t()) + | x: process_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: process_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> process_info_t + | it: qvector< process_info_t >::iterator + | x: process_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> process_info_t + | x: process_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: process_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< process_info_t > & | | truncate(self, *args) | truncate(self) @@ -40262,13 +44455,15 @@ class regval_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: regval_t const & | | __init__(self, *args) | __init__(self) -> regval_t - | __init__(self, r) -> regval_t + | r: regval_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: regval_t const & | | __repr__ = _swig_repr(self) | @@ -40277,7 +44472,7 @@ class regval_t(__builtin__.object) | bytes(self) -> bytevec_t const & | | clear(self, *args) - | clear(self) + | Clear register value. | | get_data(self, *args) | get_data(self) @@ -40288,20 +44483,29 @@ class regval_t(__builtin__.object) | | set_bytes(self, *args) | set_bytes(self, data, size) + | data: uchar const * + | size: size_t + | + | | set_bytes(self, v) - | set_bytes(self) -> bytevec_t & + | v: bytevec_t const & | | set_float(self, *args) | set_float(self, x) + | x: ushort const * | | set_int(self, *args) | set_int(self, x) + | x: uint64 | | set_unavailable(self, *args) | set_unavailable(self) | | swap(self, *args) + | Set this = r and r = this. + | | swap(self, r) + | @param r (C++: regval_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40367,43 +44571,66 @@ class scattered_segm_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -40428,6 +44655,8 @@ Help on function set_debug_event_code in module ida_idd: set_debug_event_code(*args) set_debug_event_code(ev, id) + @param ev (C++: debug_event_t *) + @param id (C++: event_id_t) Help on class thread_name_t in module ida_idd: @@ -40574,8 +44803,6 @@ 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 @@ -40598,296 +44825,726 @@ class IDB_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDB_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | + | adding_segm(self, *args) + | A segment is being created. + | + | adding_segm(self, s) + | @param s (C++: segment_t *) + | | allsegs_moved(self, *args) + | Program rebasing is complete. This event is generated after series of + | segm_moved events + | | allsegs_moved(self, info) + | @param info (C++: segm_move_infos_t *) | | auto_empty(self, *args) - | auto_empty(self) + | Info: all analysis queues are empty. This callback is called once when + | the initial analysis is finished. If the queue is not empty upon the + | return from this callback, it will be called later again. | | auto_empty_finally(self, *args) - | auto_empty_finally(self) + | Info: all analysis queues are empty definitively. This callback is + | called only once. | | bookmark_changed(self, *args) + | Boomarked position changed. + | | bookmark_changed(self, index, pos, desc) + | @param index (C++: uint32) + | @param pos (C++: const lochist_entry_t *) + | @param desc: if desc==NULL, then the bookmark was deleted. (C++: + | const char *) | | byte_patched(self, *args) + | A byte has been patched. + | | byte_patched(self, ea, old_value) + | @param ea (C++: ea_t) + | @param old_value (C++: uint32) | | callee_addr_changed(self, *args) + | Callee address has been updated by the user. + | | callee_addr_changed(self, ea, callee) + | @param ea (C++: ea_t) + | @param callee (C++: ea_t) | | changing_cmt(self, *args) + | An item comment is to be changed. + | | changing_cmt(self, ea, repeatable_cmt, newcmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) + | @param newcmt (C++: const char *) | | changing_enum_bf(self, *args) + | An enum type 'bitfield' attribute is to be changed. + | | changing_enum_bf(self, id, new_bf) + | @param id (C++: enum_t) + | @param new_bf (C++: bool) | | changing_enum_cmt(self, *args) + | An enum or member type comment is to be changed. + | | changing_enum_cmt(self, id, repeatable, newcmt) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_op_ti(self, *args) + | An operand typestring (c/c++ prototype) is to be changed. + | | changing_op_ti(self, ea, n, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | changing_op_type(self, *args) + | An operand type (offset, hex, etc...) is to be changed. + | | changing_op_type(self, ea, n, opinfo) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param opinfo: additional operand info (C++: const opinfo_t *) | | changing_range_cmt(self, *args) + | Range comment is to be changed. + | | changing_range_cmt(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | changing_segm_class(self, *args) + | Segment class is being changed. + | | changing_segm_class(self, s) + | @param s (C++: segment_t *) | | changing_segm_end(self, *args) + | Segment end address is to be changed. + | | changing_segm_end(self, s, new_end, segmod_flags) + | @param s (C++: segment_t *) + | @param new_end (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_segm_name(self, *args) + | Segment name is being changed. + | | changing_segm_name(self, s, oldname) + | @param s (C++: segment_t *) + | @param oldname (C++: const char *) | | changing_segm_start(self, *args) + | Segment start address is to be changed. + | | changing_segm_start(self, s, new_start, segmod_flags) + | @param s (C++: segment_t *) + | @param new_start (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_struc_align(self, *args) + | A structure type is being changed (the struct alignment). + | | changing_struc_align(self, sptr) + | @param sptr (C++: struc_t *) | | changing_struc_cmt(self, *args) + | A structure type comment is to be changed. + | | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | @param struc_id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_struc_member(self, *args) + | A structure member is to be changed. + | | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param flag (C++: flags_t) + | @param ti (C++: const opinfo_t *) + | @param nbytes (C++: asize_t) | | changing_ti(self, *args) + | An item typestring (c/c++ prototype) is to be changed. + | | changing_ti(self, ea, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | closebase(self, *args) - | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) + | An item comment has been changed. + | | cmt_changed(self, ea, repeatable_cmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) | | compiler_changed(self, *args) - | compiler_changed(self) + | The kernel has changed the compiler information. (\inf{cc} structure; + | 'get_abi_name' ) | | deleting_enum(self, *args) + | An enum type is to be deleted. + | | deleting_enum(self, id) + | @param id (C++: enum_t) | | deleting_enum_member(self, *args) + | An enum member is to be deleted. + | | deleting_enum_member(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | deleting_func(self, *args) + | The kernel is about to delete a function. + | | deleting_func(self, pfn) + | @param pfn (C++: func_t *) | | deleting_func_tail(self, *args) + | A function tail chunk is to be removed. + | | deleting_func_tail(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: const range_t *) | | deleting_segm(self, *args) + | A segment is to be deleted. + | | deleting_segm(self, start_ea) + | @param start_ea (C++: ea_t) | | deleting_struc(self, *args) + | A structure type is to be deleted. + | | deleting_struc(self, sptr) + | @param sptr (C++: struc_t *) | | deleting_struc_member(self, *args) + | A structure member is to be deleted. + | | deleting_struc_member(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | deleting_tryblks(self, *args) + | About to delete tryblk information in given range + | | deleting_tryblks(self, range) + | @param range (C++: const range_t *) | | destroyed_items(self, *args) + | Instructions/data have been destroyed in [ea1,ea2). + | | destroyed_items(self, ea1, ea2, will_disable_range) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) + | @param will_disable_range (C++: bool) | | determined_main(self, *args) + | The main() function has been determined. + | | determined_main(self, main) + | @param main: address of the main() function (C++: ea_t) + | + | dirtree_link(self, *args) + | Dirtree: an item has been linked/unlinked. + | + | dirtree_link(self, dt, path, link) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param link (C++: bool) + | + | dirtree_mkdir(self, *args) + | Dirtree: a directory has been created. + | + | dirtree_mkdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_move(self, *args) + | Dirtree: a directory or item has been moved. + | + | dirtree_move(self, dt, _from, to) + | @param dt (C++: dirtree_t *) + | @param _from (C++: const char *) + | @param to (C++: const char *) + | + | dirtree_rank(self, *args) + | Dirtree: a directory or item rank has been changed. + | + | dirtree_rank(self, dt, path, rank) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param rank (C++: size_t) + | + | dirtree_rmdir(self, *args) + | Dirtree: a directory has been deleted. + | + | dirtree_rmdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_rminode(self, *args) + | Dirtree: an inode became unavailable. + | + | dirtree_rminode(self, dt, inode) + | @param dt (C++: dirtree_t *) + | @param inode (C++: inode_t) | | enum_bf_changed(self, *args) + | An enum type 'bitfield' attribute has been changed. + | | enum_bf_changed(self, id) + | @param id (C++: enum_t) | | enum_cmt_changed(self, *args) + | An enum or member type comment has been changed. + | | enum_cmt_changed(self, id, repeatable) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) | | enum_created(self, *args) + | An enum type has been created. + | | enum_created(self, id) + | @param id (C++: enum_t) | | enum_deleted(self, *args) + | An enum type has been deleted. + | | enum_deleted(self, id) + | @param id (C++: enum_t) | | enum_member_created(self, *args) + | An enum member has been created. + | | enum_member_created(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_member_deleted(self, *args) + | An enum member has been deleted. + | | enum_member_deleted(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_renamed(self, *args) + | An enum or member has been renamed. + | | enum_renamed(self, id) + | @param id (C++: tid_t) | | expanding_struc(self, *args) + | A structure type is to be expanded/shrunk. + | | expanding_struc(self, sptr, offset, delta) + | @param sptr (C++: struc_t *) + | @param offset (C++: ea_t) + | @param delta (C++: adiff_t) | | extlang_changed(self, *args) + | The list of extlangs or the default extlang was changed. + | | extlang_changed(self, kind, el, idx) + | @param kind: 0: extlang installed 1: extlang removed 2: default + | extlang changed (C++: int) + | @param el: pointer to the extlang affected (C++: extlang_t *) + | @param idx: extlang index (C++: int) | | extra_cmt_changed(self, *args) + | An extra comment has been changed. + | | extra_cmt_changed(self, ea, line_idx, cmt) + | @param ea (C++: ea_t) + | @param line_idx (C++: int) + | @param cmt (C++: const char *) | | flow_chart_created(self, *args) + | Gui has retrieved a function flow chart. Plugins may modify the flow + | chart in this callback. + | | flow_chart_created(self, fc) + | @param fc (C++: qflow_chart_t *) | | frame_deleted(self, *args) + | The kernel has deleted a function frame. + | | frame_deleted(self, pfn) + | @param pfn (C++: func_t *) | | func_added(self, *args) + | The kernel has added a function. + | | func_added(self, pfn) + | @param pfn (C++: func_t *) + | + | func_deleted(self, *args) + | A function has been deleted. + | + | func_deleted(self, func_ea) + | @param func_ea (C++: ea_t) | | func_noret_changed(self, *args) + | 'FUNC_NORET' bit has been changed. + | | func_noret_changed(self, pfn) + | @param pfn (C++: func_t *) | | func_tail_appended(self, *args) + | A function tail chunk has been appended. + | | func_tail_appended(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: func_t *) | | func_tail_deleted(self, *args) + | A function tail chunk has been removed. + | | func_tail_deleted(self, pfn, tail_ea) + | @param pfn (C++: func_t *) + | @param tail_ea (C++: ea_t) | | func_updated(self, *args) + | The kernel has updated a function. + | | func_updated(self, pfn) + | @param pfn (C++: func_t *) | | hook(self, *args) | hook(self) -> bool | | idasgn_loaded(self, *args) + | FLIRT signature has been loaded for normal processing (not for + | recognition of startup sequences). + | | idasgn_loaded(self, short_sig_name) + | @param short_sig_name (C++: const char *) | | item_color_changed(self, *args) + | An item color has been changed. + | | item_color_changed(self, ea, color) + | @param ea (C++: ea_t) + | @param color: if color==DEFCOLOR, the the color is deleted. (C++: + | bgcolor_t) | | kernel_config_loaded(self, *args) - | kernel_config_loaded(self) + | This event is issued when ida.cfg is parsed. + | + | kernel_config_loaded(self, pass_number) + | @param pass_number (C++: int) | | loader_finished(self, *args) + | External file loader finished its work. Use this event to augment the + | existing loader functionality. + | | loader_finished(self, li, neflags, filetypename) + | @param li (C++: linput_t *) + | @param neflags: Load file flags (C++: uint16) + | @param filetypename (C++: const char *) | | local_types_changed(self, *args) - | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) + | An instruction is being created. + | | make_code(self, insn) + | @param insn (C++: const insn_t*) | | make_data(self, *args) + | A data item is being created. + | | make_data(self, ea, flags, tid, len) + | @param ea (C++: ea_t) + | @param flags (C++: flags_t) + | @param tid (C++: tid_t) + | @param len (C++: asize_t) | | op_ti_changed(self, *args) + | An operand typestring (c/c++ prototype) has been changed. + | | op_ti_changed(self, ea, n, type, fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | op_type_changed(self, *args) + | An operand type (offset, hex, etc...) has been set or deleted. + | | op_type_changed(self, ea, n) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) | | range_cmt_changed(self, *args) + | Range comment has been changed. + | | range_cmt_changed(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | renamed(self, *args) + | The kernel has renamed a byte. See also the \idpcode{rename} event + | | renamed(self, ea, new_name, local_name) + | @param ea (C++: ea_t) + | @param new_name (C++: const char *) + | @param local_name (C++: bool) | | renaming_enum(self, *args) + | An enum or enum member is to be renamed. + | | renaming_enum(self, id, is_enum, newname) + | @param id (C++: tid_t) + | @param is_enum (C++: bool) + | @param newname (C++: const char *) | | renaming_struc(self, *args) + | A structure type is to be renamed. + | | renaming_struc(self, id, oldname, newname) + | @param id (C++: tid_t) + | @param oldname (C++: const char *) + | @param newname (C++: const char *) | | renaming_struc_member(self, *args) + | A structure member is to be renamed. + | | renaming_struc_member(self, sptr, mptr, newname) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param newname (C++: const char *) | | savebase(self, *args) - | savebase(self) + | The database is being saved. | | segm_added(self, *args) + | A new segment has been created. + | | segm_added(self, s) + | @param s: See also adding_segm (C++: segment_t *) | | segm_attrs_updated(self, *args) + | Segment attributes has been changed. + | | segm_attrs_updated(self, s) + | @param s: This event is generated for secondary segment attributes + | (examples: color, permissions, etc) (C++: segment_t *) | | segm_class_changed(self, *args) + | Segment class has been changed. + | | segm_class_changed(self, s, sclass) + | @param s (C++: segment_t *) + | @param sclass (C++: const char *) | | segm_deleted(self, *args) + | A segment has been deleted. + | | segm_deleted(self, start_ea, end_ea) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) | | segm_end_changed(self, *args) + | Segment end address has been changed. + | | segm_end_changed(self, s, oldend) + | @param s (C++: segment_t *) + | @param oldend (C++: ea_t) | | segm_moved(self, *args) + | Segment has been moved. + | | segm_moved(self, _from, to, size, changed_netmap) + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param size (C++: asize_t) + | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) | | segm_name_changed(self, *args) + | Segment name has been changed. + | | segm_name_changed(self, s, name) + | @param s (C++: segment_t *) + | @param name (C++: const char *) | | segm_start_changed(self, *args) + | Segment start address has been changed. + | | segm_start_changed(self, s, oldstart) + | @param s (C++: segment_t *) + | @param oldstart (C++: ea_t) | | set_func_end(self, *args) + | Function chunk end address will be changed. + | | set_func_end(self, pfn, new_end) + | @param pfn (C++: func_t *) + | @param new_end (C++: ea_t) | | set_func_start(self, *args) + | Function chunk start address will be changed. + | | set_func_start(self, pfn, new_start) + | @param pfn (C++: func_t *) + | @param new_start (C++: ea_t) | | sgr_changed(self, *args) + | The kernel has changed a segment register value. + | | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) + | @param value (C++: sel_t) + | @param old_value (C++: sel_t) + | @param tag: Segment register range tags (C++: uchar) | | sgr_deleted(self, *args) + | The kernel has deleted a segment register value. + | | sgr_deleted(self, start_ea, end_ea, regnum) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) | | stkpnts_changed(self, *args) + | Stack change points have been modified. + | | stkpnts_changed(self, pfn) + | @param pfn (C++: func_t *) | | struc_align_changed(self, *args) + | A structure type has been changed (the struct alignment). + | | struc_align_changed(self, sptr) + | @param sptr (C++: struc_t *) | | struc_cmt_changed(self, *args) + | A structure type comment has been changed. + | | struc_cmt_changed(self, struc_id, repeatable_cmt) + | @param struc_id (C++: tid_t) + | @param repeatable_cmt (C++: bool) | | struc_created(self, *args) + | A new structure type has been created. + | | struc_created(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_deleted(self, *args) + | A structure type has been deleted. + | | struc_deleted(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_expanded(self, *args) + | A structure type has been expanded/shrank. + | | struc_expanded(self, sptr) + | @param sptr (C++: struc_t *) | | struc_member_changed(self, *args) + | A structure member has been changed. + | | struc_member_changed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_created(self, *args) + | A structure member has been created. + | | struc_member_created(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_deleted(self, *args) + | A structure member has been deleted. + | | struc_member_deleted(self, sptr, member_id, offset) + | @param sptr (C++: struc_t *) + | @param member_id (C++: tid_t) + | @param offset (C++: ea_t) | | struc_member_renamed(self, *args) + | A structure member has been renamed. + | | struc_member_renamed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_renamed(self, *args) + | A structure type has been renamed. + | | struc_renamed(self, sptr) + | @param sptr (C++: struc_t *) | | tail_owner_changed(self, *args) + | A tail chunk owner has been changed. + | | tail_owner_changed(self, tail, owner_func, old_owner) + | @param tail (C++: func_t *) + | @param owner_func (C++: ea_t) + | @param old_owner (C++: ea_t) | | thunk_func_created(self, *args) + | A thunk bit has been set for a function. + | | thunk_func_created(self, pfn) + | @param pfn (C++: func_t *) | | ti_changed(self, *args) + | An item typestring (c/c++ prototype) has been changed. + | | ti_changed(self, ea, type, fnames) + | @param ea (C++: ea_t) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | tryblks_updated(self, *args) + | Updated tryblk information + | | tryblks_updated(self, tbv) + | @param tbv (C++: const tryblks_t *) | | unhook(self, *args) | unhook(self) -> bool | | updating_tryblks(self, *args) + | About to update tryblk information + | | updating_tryblks(self, tbv) + | @param tbv (C++: const tryblks_t *) | | upgraded(self, *args) + | The database has been upgraded and the receiver can upgrade its info + | as well + | | upgraded(self, _from) + | @param _from: - old IDB version (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40918,477 +45575,1249 @@ class IDP_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDP_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | | ev_add_cref(self, *args) + | A code reference is being created. + | | ev_add_cref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: cref_t) + | @retval: <0 - cancel cref creation + | @retval: 0 - not implemented or continue | | ev_add_dref(self, *args) + | A data reference is being created. + | | ev_add_dref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: dref_t) + | @retval: <0 - cancel dref creation + | @retval: 0 - not implemented or continue | | ev_adjust_argloc(self, *args) + | Adjust argloc according to its type/size and platform endianess + | | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | @param argloc: , inout (C++: argloc_t *) + | optional_type: tinfo_t const * + | @param size: 'size' makes no sense if type != NULL (type->get_size() + | should be used instead) (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_adjust_libfunc_ea(self, *args) + | 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.'ea' initially contains the ea_t of + | the start of the pattern match + | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | @param sig (C++: const idasgn_t *) + | @param libfun (C++: const libfunc_t *) + | @param ea (C++: ea_t *) + | @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) + | 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) + | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | @param ri (C++: refinfo_t *) + | @param ea: instruction address (C++: ea_t) + | @param n: operand number (C++: int) + | @param fd (C++: const fixup_data_t *) + | @retval: <0 - do not create an offset + | @retval: 0 - not implemented or refinfo adjusted | | ev_ana_insn(self, *args) + | 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. + | | 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. + | @param out (C++: insn_t *) + | @retval: 0 - if instruction can't be decoded. | | ev_analyze_prolog(self, *args) + | Analyzes function prolog, epilog, and updates purge, and function + | attributes + | | ev_analyze_prolog(self, ea) -> int + | @param ea: start of function (C++: ea_t) + | @retval: 1 - ok + | @retval: 0 - not implemented + | + | ev_arch_changed(self, *args) + | The loader is done parsing arch-related information, which the + | processor module might want to use to finish its initialization. | | ev_arg_addrs_ready(self, *args) + | Argument address info is ready. + | | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | @param caller (C++: ea_t) + | @param n: number of formal arguments (C++: int) + | @param tif: call prototype (C++: tinfo_t *) + | @param addrs: argument intilization addresses (C++: ea_t *) + | @retval: <0 - do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) + | After setting a new assembler + | + | ev_asm_installed(self, asmnum) -> int + | @param asmnum: See also ev_newasm (C++: int) | | ev_assemble(self, *args) + | Assemble an instruction. (display a warning if an error is found). + | | 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 + | @param ea: linear address of instruction (C++: ea_t) + | @param cs: cs of instruction (C++: ea_t) + | @param ip: ip of instruction (C++: ea_t) + | @param use32: is 32bit segment? (C++: bool) + | @param line: line to assemble (C++: const char *) | | ev_auto_queue_empty(self, *args) - | ev_auto_queue_empty(self, type) + | One analysis queue is empty. + | + | ev_auto_queue_empty(self, type) -> int + | @param type (C++: atype_t) + | @retval: void - see also idb_event::auto_empty_finally | | ev_calc_arglocs(self, *args) + | Calculate function argument locations. This callback should fill + | retloc, all arglocs, and stkargs. This callback is never called for + | 'CM_CC_SPECIAL' functions. + | | ev_calc_arglocs(self, fti) -> int + | @param fti: points to the func type info (C++: func_type_data_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_calc_cdecl_purged_bytes(self, *args) + | Calculate number of purged bytes after call. + | | ev_calc_cdecl_purged_bytes(self, ea) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) + | Calculate list of addresses the instruction in 'insn' may pass control + | to. This callback is required for source level debugging. + | | ev_calc_next_eas(self, res, insn, over) -> int + | @param res: , out: array for the results. (C++: eavec_t *) + | @param insn: the instruction (C++: const insn_t*) + | @param over: calculate for step over (ignore call targets) (C++: + | bool) + | @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) + | Calculate number of purged bytes by the given function type. + | | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | @param p_purged_bytes: ptr to output (C++: int *) + | @param fti: func type details (C++: const func_type_data_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_calc_retloc(self, *args) + | Calculate return value location. + | | ev_calc_retloc(self, retloc, rettype, cc) -> int + | @param retloc (C++: argloc_t *) + | @param rettype (C++: const tinfo_t *) + | @param cc (C++: cm_t) + | @retval: 0 - not implemented + | @retval: 1 - ok, + | @retval: -1 - error | | ev_calc_spdelta(self, *args) + | Calculate amount of change to sp for the given insn. This event is + | required to decompile code snippets. + | | ev_calc_spdelta(self, spdelta, insn) -> int + | @param spdelta (C++: sval_t *) + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_calc_step_over(self, *args) + | 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' . + | | ev_calc_step_over(self, target, ip) -> int + | @param target: pointer to the answer (C++: ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_calc_switch_cases(self, *args) + | Calculate case values and targets for a custom jump table. + | | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | @param casevec: vector of case values (may be NULL) (C++: casevec_t + | *) + | @param targets: corresponding target addresses (my be NULL) (C++: + | eavec_t *) + | @param insn_ea: address of the 'indirect jump' instruction (C++: + | ea_t) + | @param si: switch information (C++: switch_info_t *) + | @retval: 1 - ok + | @retval: <=0 - failed | | ev_calc_varglocs(self, *args) + | Calculate locations of the arguments that correspond to '...'. + | | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | @param ftd: , inout: info about all arguments (including varargs) + | (C++: func_type_data_t *) + | @param aux_regs: buffer for hidden register arguments, may be NULL + | (C++: regobjs_t *) + | @param aux_stkargs: buffer for hidden stack arguments, may be NULL + | (C++: relobj_t *) + | @param nfixed: number of fixed arguments (C++: int) + | @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) - | ev_calcrel(self) -> int + | Reserved. | | ev_can_have_type(self, *args) + | 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) + | | ev_can_have_type(self, op) -> int + | @param op (C++: const op_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_clean_tbit(self, *args) + | Clear the TF bit after an insn like pushf stored it in memory. + | | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | @param ea: instruction address (C++: ea_t) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 1 - ok + | @retval: 0 - failed | | ev_cmp_operands(self, *args) + | Compare instruction operands + | | ev_cmp_operands(self, op1, op2) -> int + | @param op1 (C++: const op_t*) + | @param op2 (C++: const op_t*) + | @retval: 1 - equal + | @retval: -1 - not equal + | @retval: 0 - not implemented | | ev_coagulate(self, *args) + | 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. + | | ev_coagulate(self, start_ea) -> int + | @param start_ea (C++: ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, *args) + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. + | for thumb mode refs, we clear the last bit) + | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param may_define (C++: bool) + | @param code_ea (C++: ea_t *) + | @retval: <0 - cancel dref analysis + | @retval: 0 - not implemented or continue | | ev_create_flat_group(self, *args) + | Create special segment representing the flat group. + | | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | @param image_base (C++: ea_t) + | @param bitness (C++: int) + | @param dataseg_sel: return value is ignored (C++: sel_t) | | ev_create_func_frame(self, *args) + | Create a function frame for a newly created function Set up frame + | size, its attributes etc + | | ev_create_func_frame(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_create_switch_xrefs(self, *args) + | Create xrefs for a custom jump table. + | | ev_create_switch_xrefs(self, jumpea, si) -> int + | @param jumpea: address of the jump insn (C++: ea_t) + | @param si: switch information (C++: const switch_info_t *) + | @return: must return 1 Must be implemented if module uses custom jump + | tables, | | ev_creating_segm(self, *args) + | A new segment is about to be created. + | | ev_creating_segm(self, seg) -> int + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: <0 - segment should not be created | | ev_decorate_name(self, *args) + | Decorate/undecorate a C symbol name. + | | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | @param name: name of symbol (C++: const char *) + | @param mangle: true-mangle, false-unmangle (C++: bool) + | @param cc: calling convention (C++: cm_t) + | optional_type: tinfo_t const * + | @retval: 1 - if success + | @retval: 0 - not implemented or failed | | ev_del_cref(self, *args) + | A code reference is being deleted. + | | ev_del_cref(self, _from, to, expand) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param expand (C++: bool) + | @retval: <0 - cancel cref deletion + | @retval: 0 - not implemented or continue | | ev_del_dref(self, *args) + | A data reference is being deleted. + | | ev_del_dref(self, _from, to) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @retval: <0 - cancel dref deletion + | @retval: 0 - not implemented or continue | | ev_delay_slot_insn(self, *args) + | Get delay slot instructionInput EA may point to the instruction with a + | delay slot or to the delay slot instruction itself. + | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | @param ea: 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) (C++: ea_t *) + | @param bexec: execute slot if jumping, initially set to 'true' (C++: + | bool *) + | @param fexec: execute slot if not jumping, initally set to 'true' + | (C++: bool *) + | @retval: 1 - positive answer + | @retval: <=0 - ordinary insn | | ev_demangle_name(self, *args) + | Demangle a C++ (or another language) name into a user-readable string. + | This event is called by 'demangle_name()' if you call + | 'demangle_name()' from the handler, protect against recursion! + | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | @param name: mangled name (C++: const char *) + | @param disable_mask: flags to inhibit parts of output or compiler + | info/other (see MNG_) (C++: uint32) + | @param demreq: operation to perform (C++: demreq_type_t) + | @retval: 1 - if success + | @retval: 0 - not implemented | | 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. + | 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_emu_insn(self, insn) -> bool + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: -1 - the kernel will delete the instruction | | ev_endbinary(self, *args) + | IDA has loaded a binary file. + | | ev_endbinary(self, ok) -> int + | @param ok: file loaded successfully? (C++: bool) | | ev_ending_undo(self, *args) + | Ended undoing/redoing an action + | | ev_ending_undo(self, action_name, is_undo) -> int + | @param action_name: action that we finished undoing/redoing. is not + | NULL. (C++: const char *) + | @param is_undo: true if performing undo, false if performing redo + | (C++: bool) | | ev_equal_reglocs(self, *args) + | Are 2 register arglocs the same?. We need this callback for the pc + | module. + | | ev_equal_reglocs(self, a1, a2) -> int + | @param a1 (C++: argloc_t *) + | @param a2 (C++: argloc_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented | | ev_extract_address(self, *args) + | Extract address from a string. + | | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | @param out_ea: , out (C++: ea_t *) + | @param screen_ea (C++: ea_t) + | @param string (C++: const char *) + | @param position (C++: size_t) + | @retval: 1 - ok + | @retval: 0 - kernel should use the standard algorithm + | @retval: -1 - error | | ev_find_op_value(self, *args) + | Find operand value via a register tracker. The returned value in 'out' + | is valid before executing the instruction. + | | ev_find_op_value(self, pinsn, opn) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param opn: operand index (C++: int) + | @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) + | Find register value via a register tracker. The returned value in + | 'out' is valid before executing the instruction. + | | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param reg: register index (C++: int) + | @retval: 1 - if implemented, and value was found + | @retval: 0 - not implemented, -1 decoding failed, or no value found | | ev_func_bounds(self, *args) - | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) + | 'find_func_bounds()' finished its work. The module may fine tune the + | function bounds + | + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | @param possible_return_code: , in/out (C++: int *) + | @param pfn (C++: func_t *) + | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) + | @retval: void - | | ev_gen_asm_or_lst(self, *args) - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) + | Callback: generating asm or lst file. The kernel calls this callback + | twice, at the beginning and at the end of listing generation. The + | processor module can intercept this event and adjust its output + | + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | @param starting: beginning listing generation (C++: bool) + | @param fp: output file (C++: FILE *) + | @param is_asm: true:assembler, false:listing (C++: bool) + | @param flags: flags passed to gen_file() (C++: int) + | @param outline: 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 (C++: html_line_cb_t + | **) + | @retval: void - | | ev_gen_map_file(self, *args) + | Generate map file. If not implemented the kernel itself will create + | the map file. + | | ev_gen_map_file(self, nlines, fp) -> int + | @param nlines: number of lines in map file (-1 means write error) + | (C++: int *) + | @param fp: output file (C++: FILE *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - write error | | ev_gen_regvar_def(self, *args) + | Generate register variable definition line. + | | ev_gen_regvar_def(self, outctx, v) -> int + | @param outctx (C++: outctx_t *) + | @param v (C++: regvar_t *) + | @retval: >0 - ok, generated the definition text + | @retval: 0 - not implemented | | ev_gen_src_file_lnnum(self, *args) + | Callback: generate analog of: + | + | < #line "file.c" 123 + | < + | + | directive. + | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | @param outctx: output context (C++: outctx_t *) + | @param file: source file (may be NULL) (C++: const char *) + | @param lnnum: line number (C++: size_t) + | @retval: 1 - directive has been generated + | @retval: 0 - not implemented | | ev_gen_stkvar_def(self, *args) + | Generate stack variable definition line Default line is varname = type + | ptr value, where 'type' is one of byte,word,dword,qword,tbyte + | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | @param outctx (C++: outctx_t *) + | @param mptr (C++: const member_t *) + | @param v (C++: sval_t) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_get_abi_info(self, *args) + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and + | underscore + | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | @param abi_names: - all possible ABis each in form abiname- + | opt1-opt2-... (C++: qstrvec_t *) + | @param abi_opts: - array of all possible options in form + | "opt:description" or opt:hint-line#description (C++: + | qstrvec_t *) + | @param comp: - compiler ID (C++: comp_t) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_get_autocmt(self, *args) + | Callback: get dynamic auto comment. Will be called if the autocomments + | are enabled and the comment retrieved from ida.int starts with '$!'. + | 'insn' contains valid info. + | | ev_get_autocmt(self, insn) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @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) + | Get item background color. Plugins can hook this callback to color + | disassembly lines dynamically + | | ev_get_bg_color(self, ea) -> int or None + | @param color: , out (C++: bgcolor_t *) + | @param ea (C++: ea_t) + | @retval: 0 - not implemented + | @retval: 1 - color set | | ev_get_cc_regs(self, *args) + | Get register allocation convention for given calling convention + | | ev_get_cc_regs(self, regs, cc) -> int + | @param regs: , out (C++: callregs_t *) + | @param cc (C++: cm_t) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_get_code16_mode(self, *args) + | Get ISA 16-bit mode + | | ev_get_code16_mode(self, ea) -> int + | @param ea: address to get the ISA mode (C++: ea_t) + | @retval: 1 - 16-bit mode + | @retval: 0 - not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) + | Get the number of the operand to be displayed in the debugger + | reference view (text mode). + | | ev_get_dbr_opnum(self, opnum, insn) -> int + | @param opnum: operand number (out, -1 means no such operand) (C++: + | int *) + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_default_enum_size(self, *args) - | ev_get_default_enum_size(self, cm) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is + | used instead | | ev_get_frame_retsize(self, *args) + | Get size of function return address in bytes If this event is not + | implemented, the kernel will assume8 bytes for 64-bit function4 bytes + | for 32-bit function2 bytes otherwise + | | ev_get_frame_retsize(self, frsize, pfn) -> int + | @param frsize: frame size (out) (C++: int *) + | @param pfn: , can't be NULL (C++: const func_t *) | | ev_get_macro_insn_head(self, *args) + | Calculate the start of a macro instruction. This notification is + | called if IP points to the middle of an instruction + | | ev_get_macro_insn_head(self, head, ip) -> int + | @param head: , out: answer, BADADDR means normal instruction (C++: + | ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_operand_string(self, *args) + | Request text string for operand (cli, java, ...). + | | ev_get_operand_string(self, insn, opnum) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @param opnum: operand number, -1 means any string operand (C++: int) + | @retval: 0 - no string (or empty string) + | @retval: >0 - original string length without terminating zero + | + | ev_get_procmod(self, *args) + | 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) + | Get info about the registers that are used/changed by an instruction. + | + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | @param accvec: out: info about accessed registers (C++: + | reg_accesses_t*) + | @param insn: instruction in question (C++: const insn_t *) + | @param flags: reserved, must be 0 (C++: int) + | @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) + | 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 + | \ph{reg_names} and they all have the same size + | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | @param main_regname: , out (C++: const char **) + | @param bitrange: , out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | (C++: bitrange_t *) + | @param regname (C++: const char *) + | @retval: 1 - ok + | @retval: -1 - failed (not found) + | @retval: 0 - unimplemented | | ev_get_reg_name(self, *args) + | Generate text representation of a register. Most processor modules do + | not need to implement this callback. It is useful only if + | \ph{reg_names}[reg] does not provide the correct register name. + | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | @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 not -1 then this function will return the register + | pair (C++: int) + | @retval: -1 - if error + | @retval: strlen(buf) - if success | | ev_get_simd_types(self, *args) + | Get SIMD-related types according to given attributes ant/or argument + | location + | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | @param out (C++: simd_info_vec_t *) + | @param simd_attrs: , may be NULL (C++: const simd_info_t *) + | @param argloc: , may be NULL (C++: const argloc_t *) + | @param create_tifs: return valid tinfo_t objects, create if neccessary + | (C++: bool) + | @retval: number - of found types + | @retval: -1 - error If name==NULL, initialize all SIMD types | | ev_get_stkarg_offset(self, *args) - | ev_get_stkarg_offset(self) -> int + | Get offset from SP to the first stack argument. For example: pc: 0, + | hppa: -0x34, ppc: 0x38 | | ev_get_stkvar_scale_factor(self, *args) - | 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 + | 'PR_SCALE_STKVARS' should be set to use this callback | | ev_getreg(self, *args) + | IBM PC only internal request, should never be used for other purpose + | Get register value by internal index + | | ev_getreg(self, regval, regnum) -> int + | @param regval: , out (C++: uval_t *) + | @param regnum (C++: int) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - failed (undefined value or bad regnum) | | ev_init(self, *args) + | The IDP module is just loaded. + | | ev_init(self, idp_modname) -> int + | @param idp_modname: processor module name (C++: const char *) + | @retval: <0 - on failure | | ev_insn_reads_tbit(self, *args) + | Check if insn will read the TF bit. + | | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @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) + | Is the instruction created only for alignment purposes?. Do not + | directly call this function, use 'is_align_insn()' + | | ev_is_align_insn(self, ea) -> int + | @param ea: - instruction address (C++: ea_t) + | @retval: number - of bytes in the instruction | | ev_is_alloca_probe(self, *args) + | Does the function at 'ea' behave as __alloca_probe? + | | ev_is_alloca_probe(self, ea) -> int + | @param ea (C++: ea_t) + | @retval: 1 - yes + | @retval: 0 - no | | ev_is_basic_block_end(self, *args) + | Is the current instruction end of a basic block?. This function should + | be defined for processors with delayed jump slots. + | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param call_insn_stops_block (C++: 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 + | ev_is_call_insn(self, insn) -> int + | @param insn: instruction (C++: const insn_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_cond_insn(self, *args) + | Is conditional instruction? + | | ev_is_cond_insn(self, insn) -> int + | @param insn: instruction address (C++: const insn_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented or not instruction | | ev_is_far_jump(self, *args) + | is indirect far jump or call instruction? meaningful only if the + | processor has 'near' and 'far' reference types + | | ev_is_far_jump(self, icode) -> int + | @param icode (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - yes + | @retval: -1 - no | | ev_is_indirect_jump(self, *args) + | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot + | describe all jump types jumps, please define this callback. + | | ev_is_indirect_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - use CF_JUMP + | @retval: 1 - no + | @retval: 2 - yes | | ev_is_insn_table_jump(self, *args) + | Determine if instruction is a table jump or call. If 'CF_JUMP' bit + | cannot describe all kinds of table jumps, please define this callback. + | It will be called for insns with 'CF_JUMP' bit set. + | | ev_is_insn_table_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - yes + | @retval: <0 - no | | ev_is_jump_func(self, *args) + | Is the function a trivial "jump" function?. + | | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | @param pfn (C++: func_t *) + | @param jump_target (C++: ea_t *) + | @param func_pointer (C++: 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) - | 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_ret_insn(self, insn, strict) -> int + | @param insn: instruction (C++: const insn_t *) + | @param strict: 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog (C++: + | bool) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_sane_insn(self, *args) + | Is the instruction sane for the current file type?. + | | 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 + | @param insn: the instruction (C++: const insn_t*) + | @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. + | (C++: int) + | @retval: >=0 - ok + | @retval: <0 - no, the instruction isn't likely to appear in the + | program | | ev_is_sp_based(self, *args) + | 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. + | | ev_is_sp_based(self, mode, insn, op) -> int + | @param mode: out, combination of SP/FP operand flags (C++: int *) + | @param insn (C++: const insn_t *) + | @param op (C++: const op_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_is_switch(self, *args) + | Find 'switch' idiom. It will be called for instructions marked with + | 'CF_JUMP' . + | | ev_is_switch(self, si, insn) -> int + | @param si: , out (C++: switch_info_t *) + | @param insn: instruction possibly belonging to a switch (C++: const + | insn_t *) + | @retval: 1 - switch is found, 'si' is filled + | @retval: 0 - no switch found or not implemented | | ev_last_cb_before_loader(self, *args) | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) - | 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) + | 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. + | | ev_lower_func_type(self, argnums, fti) -> int + | @param argnums: , out - numbers of arguments to be converted to + | pointers in acsending order (C++: intvec_t *) + | @param fti: , inout func type details (special values -1/-2 for return + | value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) (C++: func_type_data_t *) + | @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) - | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. | | 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_be_func(self, insn, state) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param state: autoanalysis phase 0: creating functions 1: creating + | chunks (C++: int) + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) + | The kernel wants to display the segment registers in the messages + | window. + | | ev_may_show_sreg(self, current_ea) -> int + | @param current_ea (C++: 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) + | May the kernel move the segment? + | | ev_moving_segm(self, seg, to, flags) -> int + | @param seg: segment to move (C++: segment_t *) + | @param to: new segment start address (C++: ea_t) + | @param flags: combination of Move segment flags (C++: int) + | @retval: 0 - yes + | @retval: <0 - the kernel should stop | | ev_newasm(self, *args) + | Before setting a new assembler. + | | ev_newasm(self, asmnum) -> int + | @param asmnum: See also ev_asm_installed (C++: int) | | ev_newbinary(self, *args) + | IDA is about to load a binary file. + | | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | @param filename: binary file name (C++: char *) + | @param fileoff: offset in the file (C++: qoff64_t) + | @param basepara: base loading paragraph (C++: ea_t) + | @param binoff: loader offset (C++: ea_t) + | @param nbytes: number of bytes to load (C++: uint64) | | ev_newfile(self, *args) + | A new file has been loaded. + | | ev_newfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_newprc(self, *args) + | Before changing processor type. + | | ev_newprc(self, pnum, keep_cfg) -> int + | @param pnum: processor number in the array of processor names (C++: + | int) + | @param keep_cfg: true: do not modify kernel configuration (C++: bool) + | @retval: 1 - ok + | @retval: <0 - prohibit | | ev_next_exec_insn(self, *args) + | 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. + | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | @param target: , out: pointer to the answer (C++: ea_t *) + | @param ea: instruction address (C++: ea_t) + | @param tid: current therad id (C++: int) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_oldfile(self, *args) + | An old file has been loaded. + | | ev_oldfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_out_assumes(self, *args) + | Function to produce assume directives when segment register value + | changes. + | | ev_out_assumes(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_data(self, *args) + | Generate text representation of data items This function may change + | the database and create cross-references if analyze_only is set + | | ev_out_data(self, outctx, analyze_only) -> int + | @param outctx (C++: outctx_t *) + | @param analyze_only (C++: bool) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_footer(self, *args) - | ev_out_footer(self, outctx) + | Function to produce end of disassembled text + | + | ev_out_footer(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_header(self, *args) - | ev_out_header(self, outctx) + | Function to produce start of disassembled text + | + | ev_out_header(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_insn(self, *args) + | 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. + | | ev_out_insn(self, outctx) -> bool - | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_label(self, *args) + | The kernel is going to generate an instruction label line or a + | function header. + | | ev_out_label(self, outctx, colored_name) -> int + | @param outctx (C++: outctx_t *) + | @param colored_name (C++: const char *) + | @retval: <0 - if the kernel should not generate the label + | @retval: 0 - not implemented or continue | | ev_out_mnem(self, *args) + | Generate instruction mnemonics. This callback should append the + | colored mnemonics to ctx.outbuf Optional notification, if absent, + | out_mnem will be called. + | | ev_out_mnem(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - if appended the mnemonics + | @retval: 0 - not implemented | | ev_out_operand(self, *args) + | 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. + | | 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) + | @param outctx (C++: outctx_t *) + | @param op (C++: const op_t *) + | @retval: 1 - ok + | @retval: -1 - operand is hidden | | ev_out_segend(self, *args) + | Function to produce end of segment + | | ev_out_segend(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_segstart(self, *args) + | Function to produce start of segment + | | ev_out_segstart(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_special_item(self, *args) + | Generate text representation of an item in a special segment i.e. + | absolute symbols, externs, communal definitions etc + | | ev_out_special_item(self, outctx, segtype) -> int + | @param outctx (C++: outctx_t *) + | @param segtype (C++: uchar) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - overflow | | ev_realcvt(self, *args) + | Floating point -> IEEE conversion + | | ev_realcvt(self, m, e, swt) -> int + | @param m: pointer to data (C++: void *) + | @param e: internal IEEE format data (C++: uint16 *) + | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) + | @retval: 0 - not implemented + | @retval: 1 - ok | | 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_rename(self, ea, new_name) -> int + | @param ea (C++: ea_t) + | @param new_name (C++: 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 + | \idpcode{renamed} the return value is ignored when kernel + | is going to delete name | | ev_replaying_undo(self, *args) + | Replaying an undo/redo buffer + | | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | @param action_name: action that we perform undo/redo for. may be NULL + | for intermediary buffers. (C++: const char *) + | @param vec (C++: const undo_records_t *) + | @param is_undo: true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | (C++: bool) | | ev_set_code16_mode(self, *args) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, + | MIPS16 Set ISA 16-bit mode + | | ev_set_code16_mode(self, ea, code16) -> int + | @param ea: address to set new ISA mode (C++: ea_t) + | @param code16: true for 16-bit mode, false for 32-bit mode (C++: + | bool) | | ev_set_idp_options(self, *args) + | Set IDP-specific configuration option Also see set_options_t in + | 'config.hpp' + | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | @param keyword (C++: const char *) + | @param value_type (C++: int) + | @param value (C++: const void *) + | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been + | generated (C++: bool) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - error (and message in errbuf) | | ev_set_proc_options(self, *args) + | 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(). + | | ev_set_proc_options(self, options, confidence) -> int + | @param options (C++: const char *) + | @param confidence: 0: loader's suggestion 1: user's decision (C++: + | int) + | @retval: <0 - if bad option string | | ev_setup_til(self, *args) - | ev_setup_til(self) + | 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. | | ev_shadow_args_size(self, *args) + | Get size of shadow args in bytes. + | | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | @param shadow_args_size (C++: int *) + | @param pfn: (may be NULL) (C++: func_t *) + | @retval: 1 - if filled *shadow_args_size + | @retval: 0 - not implemented | | ev_str2reg(self, *args) + | Convert a register name to a register number. The register number is + | the register index in the \ph{reg_names} array Most processor modules + | do not need to implement this callback It is useful only if + | \ph{reg_names}[reg] does not provide the correct register names + | | ev_str2reg(self, regname) -> int + | @param regname (C++: const char *) + | @retval: register - number + 1 + | @retval: 0 - not implemented or could not be decoded | | ev_term(self, *args) - | ev_term(self) -> int + | The IDP module is being unloaded. | | ev_treat_hindering_item(self, *args) + | An item hinders creation of another item. + | | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | @param hindering_item_ea (C++: ea_t) + | @param new_item_flags: (0 for code) (C++: flags_t) + | @param new_item_ea (C++: ea_t) + | @param new_item_length (C++: asize_t) + | @retval: 0 - no reaction + | @retval: !=0 - the kernel may delete the hindering item | | ev_undefine(self, *args) + | An item in the database (insn or data) is being deleted. + | | 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 + | @param ea (C++: ea_t) + | @retval: 1 - do not delete srranges at the item end + | @retval: 0 - srranges can be deleted | | ev_use_arg_types(self, *args) + | Use information about callee arguments. + | | ev_use_arg_types(self, ea, fti, rargs) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @param fti: info about function type (C++: func_type_data_t *) + | @param rargs: array of register arguments (C++: funcargvec_t *) + | @retval: 1 - (and removes handled arguments from fti and rargs) + | @retval: 0 - not implemented | | ev_use_regarg_type(self, *args) + | Use information about register argument. + | | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | @param ea: address of the instruction (C++: ea_t) + | @param rargs: vector of register arguments (including regs extracted + | from scattered arguments) (C++: const funcargvec_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_use_stkarg_type(self, *args) + | Use information about a stack argument. + | | ev_use_stkarg_type(self, ea, arg) -> int + | @param ea: address of the push instruction which pushes the function + | argument into the stack (C++: ea_t) + | @param arg: argument info (C++: const funcarg_t *) + | @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) + | 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. + | | ev_validate_flirt_func(self, start_ea, funcname) -> int + | @param start_ea (C++: ea_t) + | @param funcname (C++: const char *) + | @retval: -1 - do not create a function, + | @retval: 0 - function is validated | | ev_verify_noreturn(self, *args) + | The kernel wants to set 'noreturn' flags for a function. + | | ev_verify_noreturn(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 0 - ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, *args) + | All function instructions have been analyzed. Now the processor module + | can analyze the stack pointer for the whole function + | | ev_verify_sp(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 0 - ok + | @retval: <0 - bad stack pointer | | 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: @@ -41453,6 +46882,13 @@ class __ph(__builtin__.object) | | version +Help on class _idp_cvar_t in module ida_idp: + +class _idp_cvar_t + | Data descriptors defined here: + | + | ash + Help on class _notify_when_dispatcher_t in module ida_idp: class _notify_when_dispatcher_t @@ -41500,293 +46936,722 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | | __repr__ = _swig_repr(self) | + | adding_segm(self, *args) + | A segment is being created. + | + | adding_segm(self, s) + | @param s (C++: segment_t *) + | | allsegs_moved(self, *args) + | Program rebasing is complete. This event is generated after series of + | segm_moved events + | | allsegs_moved(self, info) + | @param info (C++: segm_move_infos_t *) | | auto_empty(self, *args) - | auto_empty(self) + | Info: all analysis queues are empty. This callback is called once when + | the initial analysis is finished. If the queue is not empty upon the + | return from this callback, it will be called later again. | | auto_empty_finally(self, *args) - | auto_empty_finally(self) + | Info: all analysis queues are empty definitively. This callback is + | called only once. | | bookmark_changed(self, *args) + | Boomarked position changed. + | | bookmark_changed(self, index, pos, desc) + | @param index (C++: uint32) + | @param pos (C++: const lochist_entry_t *) + | @param desc: if desc==NULL, then the bookmark was deleted. (C++: + | const char *) | | byte_patched(self, *args) + | A byte has been patched. + | | byte_patched(self, ea, old_value) + | @param ea (C++: ea_t) + | @param old_value (C++: uint32) | | callee_addr_changed(self, *args) + | Callee address has been updated by the user. + | | callee_addr_changed(self, ea, callee) + | @param ea (C++: ea_t) + | @param callee (C++: ea_t) | | changing_cmt(self, *args) + | An item comment is to be changed. + | | changing_cmt(self, ea, repeatable_cmt, newcmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) + | @param newcmt (C++: const char *) | | changing_enum_bf(self, *args) + | An enum type 'bitfield' attribute is to be changed. + | | changing_enum_bf(self, id, new_bf) + | @param id (C++: enum_t) + | @param new_bf (C++: bool) | | changing_enum_cmt(self, *args) + | An enum or member type comment is to be changed. + | | changing_enum_cmt(self, id, repeatable, newcmt) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_op_ti(self, *args) + | An operand typestring (c/c++ prototype) is to be changed. + | | changing_op_ti(self, ea, n, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | changing_op_type(self, *args) + | An operand type (offset, hex, etc...) is to be changed. + | | changing_op_type(self, ea, n, opinfo) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param opinfo: additional operand info (C++: const opinfo_t *) | | changing_range_cmt(self, *args) + | Range comment is to be changed. + | | changing_range_cmt(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | changing_segm_class(self, *args) + | Segment class is being changed. + | | changing_segm_class(self, s) + | @param s (C++: segment_t *) | | changing_segm_end(self, *args) + | Segment end address is to be changed. + | | changing_segm_end(self, s, new_end, segmod_flags) + | @param s (C++: segment_t *) + | @param new_end (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_segm_name(self, *args) + | Segment name is being changed. + | | changing_segm_name(self, s, oldname) + | @param s (C++: segment_t *) + | @param oldname (C++: const char *) | | changing_segm_start(self, *args) + | Segment start address is to be changed. + | | changing_segm_start(self, s, new_start, segmod_flags) + | @param s (C++: segment_t *) + | @param new_start (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_struc_align(self, *args) + | A structure type is being changed (the struct alignment). + | | changing_struc_align(self, sptr) + | @param sptr (C++: struc_t *) | | changing_struc_cmt(self, *args) + | A structure type comment is to be changed. + | | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | @param struc_id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_struc_member(self, *args) + | A structure member is to be changed. + | | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param flag (C++: flags_t) + | @param ti (C++: const opinfo_t *) + | @param nbytes (C++: asize_t) | | changing_ti(self, *args) + | An item typestring (c/c++ prototype) is to be changed. + | | changing_ti(self, ea, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | closebase(self, *args) - | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) + | An item comment has been changed. + | | cmt_changed(self, ea, repeatable_cmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) | | compiler_changed(self, *args) - | compiler_changed(self) + | The kernel has changed the compiler information. (\inf{cc} structure; + | 'get_abi_name' ) | | deleting_enum(self, *args) + | An enum type is to be deleted. + | | deleting_enum(self, id) + | @param id (C++: enum_t) | | deleting_enum_member(self, *args) + | An enum member is to be deleted. + | | deleting_enum_member(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | deleting_func(self, *args) + | The kernel is about to delete a function. + | | deleting_func(self, pfn) + | @param pfn (C++: func_t *) | | deleting_func_tail(self, *args) + | A function tail chunk is to be removed. + | | deleting_func_tail(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: const range_t *) | | deleting_segm(self, *args) + | A segment is to be deleted. + | | deleting_segm(self, start_ea) + | @param start_ea (C++: ea_t) | | deleting_struc(self, *args) + | A structure type is to be deleted. + | | deleting_struc(self, sptr) + | @param sptr (C++: struc_t *) | | deleting_struc_member(self, *args) + | A structure member is to be deleted. + | | deleting_struc_member(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | deleting_tryblks(self, *args) + | About to delete tryblk information in given range + | | deleting_tryblks(self, range) + | @param range (C++: const range_t *) | | destroyed_items(self, *args) + | Instructions/data have been destroyed in [ea1,ea2). + | | destroyed_items(self, ea1, ea2, will_disable_range) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) + | @param will_disable_range (C++: bool) | | determined_main(self, *args) + | The main() function has been determined. + | | determined_main(self, main) + | @param main: address of the main() function (C++: ea_t) + | + | dirtree_link(self, *args) + | Dirtree: an item has been linked/unlinked. + | + | dirtree_link(self, dt, path, link) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param link (C++: bool) + | + | dirtree_mkdir(self, *args) + | Dirtree: a directory has been created. + | + | dirtree_mkdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_move(self, *args) + | Dirtree: a directory or item has been moved. + | + | dirtree_move(self, dt, _from, to) + | @param dt (C++: dirtree_t *) + | @param _from (C++: const char *) + | @param to (C++: const char *) + | + | dirtree_rank(self, *args) + | Dirtree: a directory or item rank has been changed. + | + | dirtree_rank(self, dt, path, rank) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param rank (C++: size_t) + | + | dirtree_rmdir(self, *args) + | Dirtree: a directory has been deleted. + | + | dirtree_rmdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_rminode(self, *args) + | Dirtree: an inode became unavailable. + | + | dirtree_rminode(self, dt, inode) + | @param dt (C++: dirtree_t *) + | @param inode (C++: inode_t) | | enum_bf_changed(self, *args) + | An enum type 'bitfield' attribute has been changed. + | | enum_bf_changed(self, id) + | @param id (C++: enum_t) | | enum_cmt_changed(self, *args) + | An enum or member type comment has been changed. + | | enum_cmt_changed(self, id, repeatable) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) | | enum_created(self, *args) + | An enum type has been created. + | | enum_created(self, id) + | @param id (C++: enum_t) | | enum_deleted(self, *args) + | An enum type has been deleted. + | | enum_deleted(self, id) + | @param id (C++: enum_t) | | enum_member_created(self, *args) + | An enum member has been created. + | | enum_member_created(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_member_deleted(self, *args) + | An enum member has been deleted. + | | enum_member_deleted(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_renamed(self, *args) + | An enum or member has been renamed. + | | enum_renamed(self, id) + | @param id (C++: tid_t) | | expanding_struc(self, *args) + | A structure type is to be expanded/shrunk. + | | expanding_struc(self, sptr, offset, delta) + | @param sptr (C++: struc_t *) + | @param offset (C++: ea_t) + | @param delta (C++: adiff_t) | | extlang_changed(self, *args) + | The list of extlangs or the default extlang was changed. + | | extlang_changed(self, kind, el, idx) + | @param kind: 0: extlang installed 1: extlang removed 2: default + | extlang changed (C++: int) + | @param el: pointer to the extlang affected (C++: extlang_t *) + | @param idx: extlang index (C++: int) | | extra_cmt_changed(self, *args) + | An extra comment has been changed. + | | extra_cmt_changed(self, ea, line_idx, cmt) + | @param ea (C++: ea_t) + | @param line_idx (C++: int) + | @param cmt (C++: const char *) | | flow_chart_created(self, *args) + | Gui has retrieved a function flow chart. Plugins may modify the flow + | chart in this callback. + | | flow_chart_created(self, fc) + | @param fc (C++: qflow_chart_t *) | | frame_deleted(self, *args) + | The kernel has deleted a function frame. + | | frame_deleted(self, pfn) + | @param pfn (C++: func_t *) | | func_added(self, *args) + | The kernel has added a function. + | | func_added(self, pfn) + | @param pfn (C++: func_t *) + | + | func_deleted(self, *args) + | A function has been deleted. + | + | func_deleted(self, func_ea) + | @param func_ea (C++: ea_t) | | func_noret_changed(self, *args) + | 'FUNC_NORET' bit has been changed. + | | func_noret_changed(self, pfn) + | @param pfn (C++: func_t *) | | func_tail_appended(self, *args) + | A function tail chunk has been appended. + | | func_tail_appended(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: func_t *) | | func_tail_deleted(self, *args) + | A function tail chunk has been removed. + | | func_tail_deleted(self, pfn, tail_ea) + | @param pfn (C++: func_t *) + | @param tail_ea (C++: ea_t) | | func_updated(self, *args) + | The kernel has updated a function. + | | func_updated(self, pfn) + | @param pfn (C++: func_t *) | | hook(self, *args) | hook(self) -> bool | | idasgn_loaded(self, *args) + | FLIRT signature has been loaded for normal processing (not for + | recognition of startup sequences). + | | idasgn_loaded(self, short_sig_name) + | @param short_sig_name (C++: const char *) | | item_color_changed(self, *args) + | An item color has been changed. + | | item_color_changed(self, ea, color) + | @param ea (C++: ea_t) + | @param color: if color==DEFCOLOR, the the color is deleted. (C++: + | bgcolor_t) | | kernel_config_loaded(self, *args) - | kernel_config_loaded(self) + | This event is issued when ida.cfg is parsed. + | + | kernel_config_loaded(self, pass_number) + | @param pass_number (C++: int) | | loader_finished(self, *args) + | External file loader finished its work. Use this event to augment the + | existing loader functionality. + | | loader_finished(self, li, neflags, filetypename) + | @param li (C++: linput_t *) + | @param neflags: Load file flags (C++: uint16) + | @param filetypename (C++: const char *) | | local_types_changed(self, *args) - | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) + | An instruction is being created. + | | make_code(self, insn) + | @param insn (C++: const insn_t*) | | make_data(self, *args) + | A data item is being created. + | | make_data(self, ea, flags, tid, len) + | @param ea (C++: ea_t) + | @param flags (C++: flags_t) + | @param tid (C++: tid_t) + | @param len (C++: asize_t) | | op_ti_changed(self, *args) + | An operand typestring (c/c++ prototype) has been changed. + | | op_ti_changed(self, ea, n, type, fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | op_type_changed(self, *args) + | An operand type (offset, hex, etc...) has been set or deleted. + | | op_type_changed(self, ea, n) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) | | range_cmt_changed(self, *args) + | Range comment has been changed. + | | range_cmt_changed(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | renamed(self, *args) + | The kernel has renamed a byte. See also the \idpcode{rename} event + | | renamed(self, ea, new_name, local_name) + | @param ea (C++: ea_t) + | @param new_name (C++: const char *) + | @param local_name (C++: bool) | | renaming_enum(self, *args) + | An enum or enum member is to be renamed. + | | renaming_enum(self, id, is_enum, newname) + | @param id (C++: tid_t) + | @param is_enum (C++: bool) + | @param newname (C++: const char *) | | renaming_struc(self, *args) + | A structure type is to be renamed. + | | renaming_struc(self, id, oldname, newname) + | @param id (C++: tid_t) + | @param oldname (C++: const char *) + | @param newname (C++: const char *) | | renaming_struc_member(self, *args) + | A structure member is to be renamed. + | | renaming_struc_member(self, sptr, mptr, newname) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param newname (C++: const char *) | | savebase(self, *args) - | savebase(self) + | The database is being saved. | | segm_added(self, *args) + | A new segment has been created. + | | segm_added(self, s) + | @param s: See also adding_segm (C++: segment_t *) | | segm_attrs_updated(self, *args) + | Segment attributes has been changed. + | | segm_attrs_updated(self, s) + | @param s: This event is generated for secondary segment attributes + | (examples: color, permissions, etc) (C++: segment_t *) | | segm_class_changed(self, *args) + | Segment class has been changed. + | | segm_class_changed(self, s, sclass) + | @param s (C++: segment_t *) + | @param sclass (C++: const char *) | | segm_deleted(self, *args) + | A segment has been deleted. + | | segm_deleted(self, start_ea, end_ea) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) | | segm_end_changed(self, *args) + | Segment end address has been changed. + | | segm_end_changed(self, s, oldend) + | @param s (C++: segment_t *) + | @param oldend (C++: ea_t) | | segm_moved(self, *args) + | Segment has been moved. + | | segm_moved(self, _from, to, size, changed_netmap) + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param size (C++: asize_t) + | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) | | segm_name_changed(self, *args) + | Segment name has been changed. + | | segm_name_changed(self, s, name) + | @param s (C++: segment_t *) + | @param name (C++: const char *) | | segm_start_changed(self, *args) + | Segment start address has been changed. + | | segm_start_changed(self, s, oldstart) + | @param s (C++: segment_t *) + | @param oldstart (C++: ea_t) | | set_func_end(self, *args) + | Function chunk end address will be changed. + | | set_func_end(self, pfn, new_end) + | @param pfn (C++: func_t *) + | @param new_end (C++: ea_t) | | set_func_start(self, *args) + | Function chunk start address will be changed. + | | set_func_start(self, pfn, new_start) + | @param pfn (C++: func_t *) + | @param new_start (C++: ea_t) | | sgr_changed(self, *args) + | The kernel has changed a segment register value. + | | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) + | @param value (C++: sel_t) + | @param old_value (C++: sel_t) + | @param tag: Segment register range tags (C++: uchar) | | sgr_deleted(self, *args) + | The kernel has deleted a segment register value. + | | sgr_deleted(self, start_ea, end_ea, regnum) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) | | stkpnts_changed(self, *args) + | Stack change points have been modified. + | | stkpnts_changed(self, pfn) + | @param pfn (C++: func_t *) | | struc_align_changed(self, *args) + | A structure type has been changed (the struct alignment). + | | struc_align_changed(self, sptr) + | @param sptr (C++: struc_t *) | | struc_cmt_changed(self, *args) + | A structure type comment has been changed. + | | struc_cmt_changed(self, struc_id, repeatable_cmt) + | @param struc_id (C++: tid_t) + | @param repeatable_cmt (C++: bool) | | struc_created(self, *args) + | A new structure type has been created. + | | struc_created(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_deleted(self, *args) + | A structure type has been deleted. + | | struc_deleted(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_expanded(self, *args) + | A structure type has been expanded/shrank. + | | struc_expanded(self, sptr) + | @param sptr (C++: struc_t *) | | struc_member_changed(self, *args) + | A structure member has been changed. + | | struc_member_changed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_created(self, *args) + | A structure member has been created. + | | struc_member_created(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_deleted(self, *args) + | A structure member has been deleted. + | | struc_member_deleted(self, sptr, member_id, offset) + | @param sptr (C++: struc_t *) + | @param member_id (C++: tid_t) + | @param offset (C++: ea_t) | | struc_member_renamed(self, *args) + | A structure member has been renamed. + | | struc_member_renamed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_renamed(self, *args) + | A structure type has been renamed. + | | struc_renamed(self, sptr) + | @param sptr (C++: struc_t *) | | tail_owner_changed(self, *args) + | A tail chunk owner has been changed. + | | tail_owner_changed(self, tail, owner_func, old_owner) + | @param tail (C++: func_t *) + | @param owner_func (C++: ea_t) + | @param old_owner (C++: ea_t) | | thunk_func_created(self, *args) + | A thunk bit has been set for a function. + | | thunk_func_created(self, pfn) + | @param pfn (C++: func_t *) | | ti_changed(self, *args) + | An item typestring (c/c++ prototype) has been changed. + | | ti_changed(self, ea, type, fnames) + | @param ea (C++: ea_t) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | tryblks_updated(self, *args) + | Updated tryblk information + | | tryblks_updated(self, tbv) + | @param tbv (C++: const tryblks_t *) | | unhook(self, *args) | unhook(self) -> bool | | updating_tryblks(self, *args) + | About to update tryblk information + | | updating_tryblks(self, tbv) + | @param tbv (C++: const tryblks_t *) | | upgraded(self, *args) + | The database has been upgraded and the receiver can upgrade its info + | as well + | | upgraded(self, _from) + | @param _from: - old IDB version (C++: int) | | ---------------------------------------------------------------------- | Data descriptors inherited from IDB_Hooks: @@ -41993,8 +47858,6 @@ 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 @@ -42008,57 +47871,69 @@ 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 * + compid: comp_t Help on function cfg_get_cc_parm in module ida_idp: cfg_get_cc_parm(*args) cfg_get_cc_parm(compid, name) -> char const * + compid: comp_t + 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 * + compid: comp_t + +Help on function clr_module_data in module ida_idp: + +clr_module_data(*args) + Unregister pointer to database specific module data. + + clr_module_data(data_id) -> void * + @param data_id: an data_id that was assigned by set_module_data() + (C++: int) + @return: previously registered pointer for the current database. it + can be deallocated now. Multiple calls to this function with + the same id are forbidden. 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 *) + ea: ea_t * + bexec: bool * + fexec: 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) + gen_idb_event(code) + @param code (C++: idb_event::event_code_t) + +Help on function get_ash in module ida_idp: + +get_ash(*args) + get_ash() -> asm_t Help on function get_idb_notifier_addr in module ida_idp: get_idb_notifier_addr(*args) get_idb_notifier_addr(arg1) -> PyObject * + 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 * + hooks: IDB_Hooks * 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 @@ -42068,147 +47943,132 @@ Help on function get_idp_notifier_addr in module ida_idp: get_idp_notifier_addr(*args) get_idp_notifier_addr(arg1) -> PyObject * + 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 * + hooks: IDP_Hooks * + +Help on function get_module_data in module ida_idp: + +get_module_data(*args) + Get pointer to the database specific module data. + + get_module_data(data_id) -> void * + @param data_id: data id that was initialized by set_module_data() + (C++: int) + @return: previously registered pointer for the current database + +Help on function get_ph in module ida_idp: + +get_ph(*args) + get_ph() -> processor_t * 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 + regname: char const * + bitrange: bitrange_t * 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 + get_reg_name(reg, width, reghi=-1) -> str + @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) + has_cf_chg(feature, opnum) -> bool + @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) + has_cf_use(feature, opnum) -> bool + @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) + has_insn_feature(icode, bit) -> bool + @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) + is_align_insn(ea) -> int + @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) + is_basic_block_end(insn, call_insn_stops_block) -> bool + @param insn - 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) - is_call_insn(insn) -> bool - - Is the instruction a "call"? - - @param insn (C++: const insn_t &) + is_call_insn(insn) -> bool + @param insn - 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) - is_indirect_jump_insn(insn) -> bool - - Is the instruction an indirect jump? - - @param insn (C++: const insn_t &) + is_indirect_jump_insn(insn) -> bool + @param insn - 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) - is_ret_insn(insn, strict=True) -> bool - - Is the instruction a "return"? - - @param insn (C++: const insn_t &) - @param strict (C++: bool) + is_ret_insn(insn, strict=True) -> bool + @param insn - an ida_ua.insn_t, or an address (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 + parse_reg_name(ri, regname) -> bool + @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: @@ -42259,63 +48119,56 @@ Help on function ph_calcrel in module ida_idp: ph_calcrel(*args) ph_calcrel(ea) + ea: ea_t Help on function ph_find_op_value in module ida_idp: ph_find_op_value(*args) ph_find_op_value(insn, op) -> ssize_t + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + op: int Help on function ph_find_reg_value in module ida_idp: ph_find_reg_value(*args) ph_find_reg_value(insn, reg) -> ssize_t + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + reg: int 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 @@ -42323,24 +48176,18 @@ 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 @@ -42349,70 +48196,69 @@ ph_get_operand_info(*args) @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) + ph_get_reg_accesses(accvec, insn, flags) -> ssize_t + accvec: reg_accesses_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + flags: int + 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 function process_config_directive in module ida_idp: + +process_config_directive(*args) + process_config_directive(directive, priority=2) + directive: char const * + priority: int + Help on class processor_t in module ida_idp: class processor_t(IDP_Hooks) @@ -42615,205 +48461,667 @@ class processor_t(IDP_Hooks) | __repr__ = _swig_repr(self) | | ev_add_cref(self, *args) + | A code reference is being created. + | | ev_add_cref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: cref_t) + | @retval: <0 - cancel cref creation + | @retval: 0 - not implemented or continue | | ev_add_dref(self, *args) + | A data reference is being created. + | | ev_add_dref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: dref_t) + | @retval: <0 - cancel dref creation + | @retval: 0 - not implemented or continue | | ev_adjust_argloc(self, *args) + | Adjust argloc according to its type/size and platform endianess + | | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | @param argloc: , inout (C++: argloc_t *) + | optional_type: tinfo_t const * + | @param size: 'size' makes no sense if type != NULL (type->get_size() + | should be used instead) (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_adjust_libfunc_ea(self, *args) + | 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.'ea' initially contains the ea_t of + | the start of the pattern match + | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | @param sig (C++: const idasgn_t *) + | @param libfun (C++: const libfunc_t *) + | @param ea (C++: ea_t *) + | @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) + | 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) + | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | @param ri (C++: refinfo_t *) + | @param ea: instruction address (C++: ea_t) + | @param n: operand number (C++: int) + | @param fd (C++: const fixup_data_t *) + | @retval: <0 - do not create an offset + | @retval: 0 - not implemented or refinfo adjusted | | ev_analyze_prolog(self, *args) + | Analyzes function prolog, epilog, and updates purge, and function + | attributes + | | ev_analyze_prolog(self, ea) -> int + | @param ea: start of function (C++: ea_t) + | @retval: 1 - ok + | @retval: 0 - not implemented + | + | ev_arch_changed(self, *args) + | The loader is done parsing arch-related information, which the + | processor module might want to use to finish its initialization. | | ev_arg_addrs_ready(self, *args) + | Argument address info is ready. + | | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | @param caller (C++: ea_t) + | @param n: number of formal arguments (C++: int) + | @param tif: call prototype (C++: tinfo_t *) + | @param addrs: argument intilization addresses (C++: ea_t *) + | @retval: <0 - do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) + | After setting a new assembler + | + | ev_asm_installed(self, asmnum) -> int + | @param asmnum: See also ev_newasm (C++: int) | | ev_calc_arglocs(self, *args) + | Calculate function argument locations. This callback should fill + | retloc, all arglocs, and stkargs. This callback is never called for + | 'CM_CC_SPECIAL' functions. + | | ev_calc_arglocs(self, fti) -> int + | @param fti: points to the func type info (C++: func_type_data_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_calc_cdecl_purged_bytes(self, *args) + | Calculate number of purged bytes after call. + | | ev_calc_cdecl_purged_bytes(self, ea) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) + | Calculate list of addresses the instruction in 'insn' may pass control + | to. This callback is required for source level debugging. + | | ev_calc_next_eas(self, res, insn, over) -> int + | @param res: , out: array for the results. (C++: eavec_t *) + | @param insn: the instruction (C++: const insn_t*) + | @param over: calculate for step over (ignore call targets) (C++: + | bool) + | @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) + | Calculate number of purged bytes by the given function type. + | | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | @param p_purged_bytes: ptr to output (C++: int *) + | @param fti: func type details (C++: const func_type_data_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_calc_retloc(self, *args) + | Calculate return value location. + | | ev_calc_retloc(self, retloc, rettype, cc) -> int + | @param retloc (C++: argloc_t *) + | @param rettype (C++: const tinfo_t *) + | @param cc (C++: cm_t) + | @retval: 0 - not implemented + | @retval: 1 - ok, + | @retval: -1 - error | | ev_calc_spdelta(self, *args) + | Calculate amount of change to sp for the given insn. This event is + | required to decompile code snippets. + | | ev_calc_spdelta(self, spdelta, insn) -> int + | @param spdelta (C++: sval_t *) + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_calc_switch_cases(self, *args) + | Calculate case values and targets for a custom jump table. + | | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | @param casevec: vector of case values (may be NULL) (C++: casevec_t + | *) + | @param targets: corresponding target addresses (my be NULL) (C++: + | eavec_t *) + | @param insn_ea: address of the 'indirect jump' instruction (C++: + | ea_t) + | @param si: switch information (C++: switch_info_t *) + | @retval: 1 - ok + | @retval: <=0 - failed | | ev_calc_varglocs(self, *args) + | Calculate locations of the arguments that correspond to '...'. + | | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | @param ftd: , inout: info about all arguments (including varargs) + | (C++: func_type_data_t *) + | @param aux_regs: buffer for hidden register arguments, may be NULL + | (C++: regobjs_t *) + | @param aux_stkargs: buffer for hidden stack arguments, may be NULL + | (C++: relobj_t *) + | @param nfixed: number of fixed arguments (C++: int) + | @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) - | ev_calcrel(self) -> int + | Reserved. | | ev_clean_tbit(self, *args) + | Clear the TF bit after an insn like pushf stored it in memory. + | | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | @param ea: instruction address (C++: ea_t) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 1 - ok + | @retval: 0 - failed | | ev_create_flat_group(self, *args) + | Create special segment representing the flat group. + | | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | @param image_base (C++: ea_t) + | @param bitness (C++: int) + | @param dataseg_sel: return value is ignored (C++: sel_t) | | ev_decorate_name(self, *args) + | Decorate/undecorate a C symbol name. + | | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | @param name: name of symbol (C++: const char *) + | @param mangle: true-mangle, false-unmangle (C++: bool) + | @param cc: calling convention (C++: cm_t) + | optional_type: tinfo_t const * + | @retval: 1 - if success + | @retval: 0 - not implemented or failed | | ev_del_cref(self, *args) + | A code reference is being deleted. + | | ev_del_cref(self, _from, to, expand) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param expand (C++: bool) + | @retval: <0 - cancel cref deletion + | @retval: 0 - not implemented or continue | | ev_del_dref(self, *args) + | A data reference is being deleted. + | | ev_del_dref(self, _from, to) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @retval: <0 - cancel dref deletion + | @retval: 0 - not implemented or continue | | ev_delay_slot_insn(self, *args) + | Get delay slot instructionInput EA may point to the instruction with a + | delay slot or to the delay slot instruction itself. + | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | @param ea: 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) (C++: ea_t *) + | @param bexec: execute slot if jumping, initially set to 'true' (C++: + | bool *) + | @param fexec: execute slot if not jumping, initally set to 'true' + | (C++: bool *) + | @retval: 1 - positive answer + | @retval: <=0 - ordinary insn | | ev_demangle_name(self, *args) + | Demangle a C++ (or another language) name into a user-readable string. + | This event is called by 'demangle_name()' if you call + | 'demangle_name()' from the handler, protect against recursion! + | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | @param name: mangled name (C++: const char *) + | @param disable_mask: flags to inhibit parts of output or compiler + | info/other (see MNG_) (C++: uint32) + | @param demreq: operation to perform (C++: demreq_type_t) + | @retval: 1 - if success + | @retval: 0 - not implemented | | ev_ending_undo(self, *args) + | Ended undoing/redoing an action + | | ev_ending_undo(self, action_name, is_undo) -> int + | @param action_name: action that we finished undoing/redoing. is not + | NULL. (C++: const char *) + | @param is_undo: true if performing undo, false if performing redo + | (C++: bool) | | ev_equal_reglocs(self, *args) + | Are 2 register arglocs the same?. We need this callback for the pc + | module. + | | ev_equal_reglocs(self, a1, a2) -> int + | @param a1 (C++: argloc_t *) + | @param a2 (C++: argloc_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented | | ev_extract_address(self, *args) + | Extract address from a string. + | | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | @param out_ea: , out (C++: ea_t *) + | @param screen_ea (C++: ea_t) + | @param string (C++: const char *) + | @param position (C++: size_t) + | @retval: 1 - ok + | @retval: 0 - kernel should use the standard algorithm + | @retval: -1 - error | | ev_find_op_value(self, *args) + | Find operand value via a register tracker. The returned value in 'out' + | is valid before executing the instruction. + | | ev_find_op_value(self, pinsn, opn) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param opn: operand index (C++: int) + | @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) + | Find register value via a register tracker. The returned value in + | 'out' is valid before executing the instruction. + | | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param reg: register index (C++: int) + | @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) - | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) + | Callback: generating asm or lst file. The kernel calls this callback + | twice, at the beginning and at the end of listing generation. The + | processor module can intercept this event and adjust its output + | + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | @param starting: beginning listing generation (C++: bool) + | @param fp: output file (C++: FILE *) + | @param is_asm: true:assembler, false:listing (C++: bool) + | @param flags: flags passed to gen_file() (C++: int) + | @param outline: 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 (C++: html_line_cb_t + | **) + | @retval: void - | | ev_gen_stkvar_def(self, *args) + | Generate stack variable definition line Default line is varname = type + | ptr value, where 'type' is one of byte,word,dword,qword,tbyte + | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | @param outctx (C++: outctx_t *) + | @param mptr (C++: const member_t *) + | @param v (C++: sval_t) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_get_abi_info(self, *args) + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and + | underscore + | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | @param abi_names: - all possible ABis each in form abiname- + | opt1-opt2-... (C++: qstrvec_t *) + | @param abi_opts: - array of all possible options in form + | "opt:description" or opt:hint-line#description (C++: + | qstrvec_t *) + | @param comp: - compiler ID (C++: comp_t) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_get_bg_color(self, *args) + | Get item background color. Plugins can hook this callback to color + | disassembly lines dynamically + | | ev_get_bg_color(self, ea) -> int or None + | @param color: , out (C++: bgcolor_t *) + | @param ea (C++: ea_t) + | @retval: 0 - not implemented + | @retval: 1 - color set | | ev_get_cc_regs(self, *args) + | Get register allocation convention for given calling convention + | | ev_get_cc_regs(self, regs, cc) -> int + | @param regs: , out (C++: callregs_t *) + | @param cc (C++: cm_t) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_get_code16_mode(self, *args) + | Get ISA 16-bit mode + | | ev_get_code16_mode(self, ea) -> int + | @param ea: address to get the ISA mode (C++: ea_t) + | @retval: 1 - 16-bit mode + | @retval: 0 - not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) + | Get the number of the operand to be displayed in the debugger + | reference view (text mode). + | | ev_get_dbr_opnum(self, opnum, insn) -> int + | @param opnum: operand number (out, -1 means no such operand) (C++: + | int *) + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_default_enum_size(self, *args) - | ev_get_default_enum_size(self, cm) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is + | used instead | | ev_get_macro_insn_head(self, *args) + | Calculate the start of a macro instruction. This notification is + | called if IP points to the middle of an instruction + | | ev_get_macro_insn_head(self, head, ip) -> int + | @param head: , out: answer, BADADDR means normal instruction (C++: + | ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented + | + | ev_get_procmod(self, *args) + | 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) + | Get info about the registers that are used/changed by an instruction. + | + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | @param accvec: out: info about accessed registers (C++: + | reg_accesses_t*) + | @param insn: instruction in question (C++: const insn_t *) + | @param flags: reserved, must be 0 (C++: int) + | @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) + | 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 + | \ph{reg_names} and they all have the same size + | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | @param main_regname: , out (C++: const char **) + | @param bitrange: , out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | (C++: bitrange_t *) + | @param regname (C++: const char *) + | @retval: 1 - ok + | @retval: -1 - failed (not found) + | @retval: 0 - unimplemented | | ev_get_reg_name(self, *args) + | Generate text representation of a register. Most processor modules do + | not need to implement this callback. It is useful only if + | \ph{reg_names}[reg] does not provide the correct register name. + | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | @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 not -1 then this function will return the register + | pair (C++: int) + | @retval: -1 - if error + | @retval: strlen(buf) - if success | | ev_get_simd_types(self, *args) + | Get SIMD-related types according to given attributes ant/or argument + | location + | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | @param out (C++: simd_info_vec_t *) + | @param simd_attrs: , may be NULL (C++: const simd_info_t *) + | @param argloc: , may be NULL (C++: const argloc_t *) + | @param create_tifs: return valid tinfo_t objects, create if neccessary + | (C++: bool) + | @retval: number - of found types + | @retval: -1 - error If name==NULL, initialize all SIMD types | | ev_get_stkarg_offset(self, *args) - | ev_get_stkarg_offset(self) -> int + | Get offset from SP to the first stack argument. For example: pc: 0, + | hppa: -0x34, ppc: 0x38 | | ev_get_stkvar_scale_factor(self, *args) - | 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 + | 'PR_SCALE_STKVARS' should be set to use this callback | | ev_getreg(self, *args) + | IBM PC only internal request, should never be used for other purpose + | Get register value by internal index + | | ev_getreg(self, regval, regnum) -> int + | @param regval: , out (C++: uval_t *) + | @param regnum (C++: int) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - failed (undefined value or bad regnum) | | ev_init(self, *args) + | The IDP module is just loaded. + | | ev_init(self, idp_modname) -> int + | @param idp_modname: processor module name (C++: const char *) + | @retval: <0 - on failure | | ev_insn_reads_tbit(self, *args) + | Check if insn will read the TF bit. + | | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @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) + | Is conditional instruction? + | | ev_is_cond_insn(self, insn) -> int + | @param insn: instruction address (C++: const insn_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented or not instruction | | ev_is_jump_func(self, *args) + | Is the function a trivial "jump" function?. + | | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | @param pfn (C++: func_t *) + | @param jump_target (C++: ea_t *) + | @param func_pointer (C++: 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) | ev_last_cb_before_loader(self) -> int | | ev_loader(self, *args) - | 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) + | 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. + | | ev_lower_func_type(self, argnums, fti) -> int + | @param argnums: , out - numbers of arguments to be converted to + | pointers in acsending order (C++: intvec_t *) + | @param fti: , inout func type details (special values -1/-2 for return + | value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) (C++: func_type_data_t *) + | @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) - | ev_max_ptr_size(self) -> int + | Get maximal size of a pointer in bytes. | | ev_newasm(self, *args) + | Before setting a new assembler. + | | ev_newasm(self, asmnum) -> int + | @param asmnum: See also ev_asm_installed (C++: int) | | ev_next_exec_insn(self, *args) + | 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. + | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | @param target: , out: pointer to the answer (C++: ea_t *) + | @param ea: instruction address (C++: ea_t) + | @param tid: current therad id (C++: int) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_realcvt(self, *args) + | Floating point -> IEEE conversion + | | ev_realcvt(self, m, e, swt) -> int + | @param m: pointer to data (C++: void *) + | @param e: internal IEEE format data (C++: uint16 *) + | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_replaying_undo(self, *args) + | Replaying an undo/redo buffer + | | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | @param action_name: action that we perform undo/redo for. may be NULL + | for intermediary buffers. (C++: const char *) + | @param vec (C++: const undo_records_t *) + | @param is_undo: true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | (C++: bool) | | ev_set_code16_mode(self, *args) + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, + | MIPS16 Set ISA 16-bit mode + | | ev_set_code16_mode(self, ea, code16) -> int + | @param ea: address to set new ISA mode (C++: ea_t) + | @param code16: true for 16-bit mode, false for 32-bit mode (C++: + | bool) | | ev_setup_til(self, *args) - | ev_setup_til(self) + | 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. | | ev_shadow_args_size(self, *args) + | Get size of shadow args in bytes. + | | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | @param shadow_args_size (C++: int *) + | @param pfn: (may be NULL) (C++: func_t *) + | @retval: 1 - if filled *shadow_args_size + | @retval: 0 - not implemented | | ev_term(self, *args) - | ev_term(self) -> int + | The IDP module is being unloaded. | | ev_use_arg_types(self, *args) + | Use information about callee arguments. + | | ev_use_arg_types(self, ea, fti, rargs) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @param fti: info about function type (C++: func_type_data_t *) + | @param rargs: array of register arguments (C++: funcargvec_t *) + | @retval: 1 - (and removes handled arguments from fti and rargs) + | @retval: 0 - not implemented | | ev_use_regarg_type(self, *args) + | Use information about register argument. + | | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | @param ea: address of the instruction (C++: ea_t) + | @param rargs: vector of register arguments (including regs extracted + | from scattered arguments) (C++: const funcargvec_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_use_stkarg_type(self, *args) + | Use information about a stack argument. + | | ev_use_stkarg_type(self, ea, arg) -> int + | @param ea: address of the push instruction which pushes the function + | argument into the stack (C++: ea_t) + | @param arg: argument info (C++: const funcarg_t *) + | @retval: 1 - ok + | @retval: <=0 - failed, the kernel will create a comment with the + | argument name or type for the instruction | | 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: @@ -42833,6 +49141,390 @@ class processor_t(IDP_Hooks) | __swig_destroy__ = | delete_IDP_Hooks(self) +Help on class reg_access_t in module ida_idp: + +class reg_access_t(__builtin__.object) + | Proxy of C++ reg_access_t class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: reg_access_t const & + | + | __init__(self, *args) + | __init__(self) -> reg_access_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: reg_access_t const & + | + | __repr__ = _swig_repr(self) + | + | have_common_bits(self, *args) + | have_common_bits(self, r) -> bool + | @param r (C++: const reg_access_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | access_type + | reg_access_t_access_type_get(self) -> access_type_t + | + | opnum + | reg_access_t_opnum_get(self) -> uchar + | + | range + | reg_access_t_range_get(self) -> bitrange_t + | + | regnum + | reg_access_t_regnum_get(self) -> int + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_reg_access_t(self) + +Help on class reg_access_vec_t in module ida_idp: + +class reg_access_vec_t(__builtin__.object) + | Proxy of C++ qvector< reg_access_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> reg_access_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> reg_access_vec_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< reg_access_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: reg_access_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: reg_access_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: reg_access_t const & + | + | at(self, *args) + | at(self, _idx) -> reg_access_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> reg_access_t + | begin(self) -> reg_access_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_access_t + | end(self) -> reg_access_t + | + | erase(self, *args) + | erase(self, it) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | + | + | erase(self, first, last) -> reg_access_t + | first: qvector< reg_access_t >::iterator + | last: qvector< reg_access_t >::iterator + | + | extract(self, *args) + | extract(self) -> reg_access_t + | + | find(self, *args) + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=reg_access_t()) + | x: reg_access_t const & + | + | has(self, *args) + | has(self, x) -> bool + | x: reg_access_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: reg_access_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | x: reg_access_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: reg_access_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_access_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< reg_access_t > & + | + | 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_reg_access_vec_t(self) + +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 + | __builtin__.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> reg_accesses_t + | + | __repr__ = _swig_repr(self) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_reg_accesses_t(self) + | + | ---------------------------------------------------------------------- + | Methods inherited from reg_access_vec_t: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> reg_access_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< reg_access_t > const & + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: reg_access_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: reg_access_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: reg_access_t const & + | + | at(self, *args) + | at(self, _idx) -> reg_access_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> reg_access_t + | begin(self) -> reg_access_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_access_t + | end(self) -> reg_access_t + | + | erase(self, *args) + | erase(self, it) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | + | + | erase(self, first, last) -> reg_access_t + | first: qvector< reg_access_t >::iterator + | last: qvector< reg_access_t >::iterator + | + | extract(self, *args) + | extract(self) -> reg_access_t + | + | find(self, *args) + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=reg_access_t()) + | x: reg_access_t const & + | + | has(self, *args) + | has(self, x) -> bool + | x: reg_access_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: reg_access_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | x: reg_access_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: reg_access_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_access_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< reg_access_t > & + | + | truncate(self, *args) + | 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) + Help on class reg_info_t in module ida_idp: class reg_info_t(__builtin__.object) @@ -42842,29 +49534,36 @@ class reg_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: reg_info_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: reg_info_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: reg_info_t const & | | __init__(self, *args) | __init__(self) -> reg_info_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: reg_info_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: reg_info_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: reg_info_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: reg_info_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -42890,50 +49589,66 @@ class reg_info_t(__builtin__.object) | __swig_destroy__ = | delete_reg_info_t(self) +Help on function register_cfgopts in module ida_idp: + +register_cfgopts(*args) + register_cfgopts(opts, nopts, cb=None, obj=None) -> bool + opts: cfgopt_t const [] + nopts: size_t + cb: config_changed_cb_t * + obj: void * + +Help on function set_module_data in module ida_idp: + +set_module_data(*args) + Starting from IDA v7.5 all modules should use the following 3 + functions to handle idb specific static data because now the kernel + supports opening and working with multiple idbs files simultaneously. + See the source code of the processor modules in the SDK for the usage + examples. Register pointer to database specific module data. + + set_module_data(data_id, data_ptr) -> void * + @param data_id: initially the pointed-to value must be 0, the kernel + will fill it with a unique id. once assigned, the + data_id does not change. (C++: int *) + @param data_ptr: pointer to the data to register (C++: void *) + @return: data_ptr. The registered pointer can later be retrieved using + get_module_data() + 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 + set_processor_type(procname, level) -> bool + @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 + set_target_assembler(asmnum) -> bool + @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 *) + str2reg(p) -> int + @param p (C++: const char *) === ida_idp EPYDOC INJECTIONS === ida_idp.AS2_BRACE @@ -43315,6 +50030,19 @@ Custom instruction codes defined by processor extension plugins must be greater than or equal to this """ +ida_idp.HKCB_AUTODEL +""" +automatically delete event listener object after uninstalling it +""" + +ida_idp.HKCB_GLOBAL +""" +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. +""" + ida_idp.IDP_INTERFACE_VERSION """ The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' @@ -43850,7 +50578,7 @@ use \\ph{use_arg_types} callback ida_idp.PR_USE_TBYTE """ - 'BTMT_SPECFLT' means _TBYTE type +'BTMT_SPECFLT' means _TBYTE type """ ida_idp.PR_WORD_INS @@ -43957,6 +50685,10 @@ class Choose(__builtin__.object) | | CHCOL_DEC = 196608 | + | CHCOL_DEFHIDDEN = 1048576 + | + | CHCOL_DRAGHINT = 2097152 + | | CHCOL_EA = 262144 | | CHCOL_FNAME = 327680 @@ -43965,6 +50697,8 @@ class Choose(__builtin__.object) | | CHCOL_HEX = 131072 | + | CHCOL_INODENAME = 4194304 + | | CHCOL_PATH = 65536 | | CHCOL_PLAIN = 0 @@ -44005,6 +50739,8 @@ class Choose(__builtin__.object) | | CH_FORCE_DEFAULT = 128 | + | CH_HAS_DIRTREE = 33554432 + | | CH_MODAL = 1 | | CH_MULTI = 4 @@ -44195,7 +50931,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44683,7 +51422,10 @@ class IDAViewWrapper(CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44835,6 +51577,7 @@ Help on function TWidget__from_ptrval__ in module ida_kernwin: TWidget__from_ptrval__(*args) TWidget__from_ptrval__(ptrval) -> TWidget * + ptrval: size_t Help on class UI_Hooks in module ida_kernwin: @@ -44847,175 +51590,250 @@ class UI_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> UI_Hooks + | _flags: uint32 + | + | __real_database_closed = database_closed(self, *args) + | The database has been closed. See also processor_t::closebase, it + | occurs earlier. See also ui_initing_database. This is not the same as + | IDA exiting. If you need to perform cleanup at the exiting time, use + | 'qatexit()' . | | __repr__ = _swig_repr(self) | | create_desktop_widget(self, *args) + | create a widget, to be placed in the widget tree (at desktop- + | creation time.) + | | create_desktop_widget(self, title, cfg) -> PyObject * + | @param title (C++: const char *) + | @param cfg (C++: const jobj_t *) | | current_widget_changed(self, *args) + | The currently-active TWidget changed. + | | current_widget_changed(self, widget, prev_widget) + | @param widget (C++: TWidget *) + | @param prev_widget (C++: TWidget *) + | + | database_closed = __wrapper(self, *args) + | The database has been closed. See also processor_t::closebase, it + | occurs earlier. See also ui_initing_database. This is not the same as + | IDA exiting. If you need to perform cleanup at the exiting time, use + | 'qatexit()' . | | database_inited(self, *args) + | database initialization has completed. the kernel is about to run + | idc scripts + | | database_inited(self, is_new_database, idc_script) + | @param is_new_database (C++: int) + | @param idc_script: - may be NULL (C++: const char *) | | debugger_menu_change(self, *args) + | debugger menu modification detected + | | debugger_menu_change(self, enable) + | @param enable: true: debugger menu has been added, or a different + | debugger has been selected false: debugger menu will be + | removed (user switched to "No debugger") (C++: bool) + | + | destroying_plugmod(self, *args) + | The plugin object is about to be destroyed + | + | destroying_plugmod(self, plugmod) + | @param plugmod (C++: const plugmod_t *) + | + | destroying_procmod(self, *args) + | The processor module is about to be destroyed + | + | destroying_procmod(self, procmod) + | @param procmod (C++: const procmod_t *) | | finish_populating_widget_popup(self, *args) + | IDA is about to be done populating the context menu for a widget. + | This is your chance to 'attach_action_to_popup()' . + | | finish_populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | 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 (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param ctx (C++: const action_activation_ctx_t *) | | get_chooser_item_attrs(self, *args) + | get item-specific attributes for a chooser. This callback is + | generated only after enable_chooser_attrs() + | | get_chooser_item_attrs(self, chooser, n, attrs) + | @param chooser (C++: const chooser_base_t *) + | @param n (C++: size_t) + | @param attrs (C++: chooser_item_attrs_t *) | | get_custom_viewer_hint(self, *args) + | ui wants to display a hint for a viewer (idaview or custom). If + | the REG_HINTS_MARKER sequence is found in the returned hints string, + | it will be replaced with the contents of the "regular" hints. If the + | SRCDBG_HINTS_MARKER sequence is found in the returned hints string, it + | will be replaced with the contents of the source-level debugger- + | generated hints. The following keywords might appear at the beginning + | of the returned hints: HIGHLIGHT textwhere text will be highlighted + | CAPTION captioncaption for the hint widget + | | get_custom_viewer_hint(self, viewer, place) -> PyObject * + | @param viewer: viewer (C++: TWidget*) + | @param place: current position in the viewer (C++: place_t *) | | get_ea_hint(self, *args) + | ui wants to display a simple hint for an address. Use this event + | to generate a custom hint See also more generic 'ui_get_item_hint' + | | get_ea_hint(self, ea) -> PyObject * - | - | - | 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 (C++: ea_t) | | get_item_hint(self, *args) + | ui wants to display multiline hint for an item. See also more + | generic 'ui_get_custom_viewer_hint' + | | get_item_hint(self, ea, max_lines) -> PyObject * + | @param ea: or item id like a structure or enum member (C++: ea_t) + | @param max_lines: maximal number of lines (C++: int) + | + | get_lines_rendering_info(self, *args) + | get lines rendering information + | + | get_lines_rendering_info(self, out, widget, info) + | @param out (C++: lines_rendering_output_t *) + | @param widget (C++: const TWidget *) + | @param info (C++: const lines_rendering_input_t *) | | get_widget_config(self, *args) + | retrieve the widget configuration (it will be passed back at + | ui_create_desktop_widget-, and ui_set_widget_config-time) + | | get_widget_config(self, widget, cfg) -> PyObject * + | @param widget (C++: const TWidget *) + | @param cfg (C++: jobj_t *) | | hook(self, *args) | hook(self) -> bool - | - | - | Creates an UI hook - | - | @return: Boolean true on success | | idcstart(self, *args) - | idcstart(self) + | Start of IDC engine work. | | idcstop(self, *args) - | idcstop(self) + | Stop of IDC engine work. + | + | initing_database(self, *args) + | database initialization has started. | | plugin_loaded(self, *args) + | The plugin was loaded in memory. + | | plugin_loaded(self, plugin_info) + | @param plugin_info (C++: const plugin_info_t *) | | plugin_unloading(self, *args) + | The plugin is about to be unloaded + | | plugin_unloading(self, plugin_info) + | @param plugin_info (C++: const plugin_info_t *) | | populating_widget_popup(self, *args) + | IDA is populating the context menu for a widget. This is your + | chance to 'attach_action_to_popup()' .Have a look at + | ui_finish_populating_widget_popup, if you want to augment the context + | menu with your own actions after the menu has had a chance to be + | properly populated by the owning component or plugin (which typically + | does it on ui_populating_widget_popup.) + | | populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | 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 (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param ctx (C++: const action_activation_ctx_t *) | | postprocess_action(self, *args) - | postprocess_action(self) - | - | - | An ida ui action has been handled - | - | @return: Ignored + | an ida ui action has been handled | | preprocess_action(self, *args) + | ida ui is about to handle a user action. + | | 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 + | @param name: ui action name. these names can be looked up in + | ida[tg]ui.cfg (C++: const char *) + | @retval: 0 - ok + | @retval: nonzero - a plugin has handled the command | | range(self, *args) - | range(self) + | The disassembly range has been changed (\inf{min_ea} ... + | \inf{max_ea}). UI should redraw the scrollbars. See also: + | 'ui_lock_range_refresh' | | ready_to_run(self, *args) - | ready_to_run(self) + | all UI elements have been initialized. Automatic plugins may hook + | to this event to perform their tasks. | | resume(self, *args) - | resume(self) + | Resume the suspended graphical interface. Only the text version. + | Interface should respond to it | | saved(self, *args) - | saved(self) - | - | - | The kernel has saved the database. - | - | @return: Ignored + | The kernel has saved the database. This callback just informs the + | interface. | | saving(self, *args) - | 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) + | The "current address" changed + | | screen_ea_changed(self, ea, prev_ea) + | @param ea (C++: ea_t) + | @param prev_ea (C++: ea_t) | | set_widget_config(self, *args) + | set the widget configuration + | | set_widget_config(self, widget, cfg) + | @param widget (C++: const TWidget *) + | @param cfg (C++: const jobj_t *) | | 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. + | Suspend graphical interface. Only the text version. Interface + | should respond to it. | | 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 + | IDA is done updating actions. | | updating_actions(self, *args) + | IDA is about to update all actions. If your plugin needs to + | perform expensive operations more than once (e.g., once per action it + | registers), you should do them only once, right away. + | | updating_actions(self, ctx) - | - | - | The UI is about to batch-update some actions. - | - | @param ctx: The action_update_ctx_t instance - | @return: Ignored + | @param ctx (C++: action_update_ctx_t *) | | widget_closing(self, *args) + | TWidget is about to close. This event precedes ui_widget_invisible. + | Use this to perform some possible actions relevant to the lifecycle of + | this widget + | | widget_closing(self, widget) + | @param widget (C++: TWidget *) | | widget_invisible(self, *args) + | TWidget is being closed. Use this event to destroy the window controls + | | widget_invisible(self, widget) + | @param widget (C++: TWidget *) | | widget_visible(self, *args) + | TWidget is displayed on the screen. Use this event to populate the + | window with controls + | | widget_visible(self, widget) + | @param widget (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45046,6 +51864,7 @@ class View_Hooks(__builtin__.object) | | __init__(self, *args) | __init__(self, _flags=0) -> View_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -45056,40 +51875,87 @@ class View_Hooks(__builtin__.object) | unhook(self) -> bool | | view_activated(self, *args) + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, *args) + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, *args) + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_created(self, *args) + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, *args) + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, *args) + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, *args) + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, *args) + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, *args) + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, *args) + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, *args) + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, *args) + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45147,16 +52013,34 @@ Help on function _ask_addr in module ida_kernwin: _ask_addr(*args) _ask_addr(addr, format) -> bool + addr: ea_t * + format: char const * Help on function _ask_long in module ida_kernwin: _ask_long(*args) _ask_long(value, format) -> bool + value: sval_t * + format: char const * Help on function _ask_seg in module ida_kernwin: _ask_seg(*args) _ask_seg(sel, format) -> bool + sel: sel_t * + format: char const * + +Help on function _kludge_force_declare_dirspec_t in module ida_kernwin: + +_kludge_force_declare_dirspec_t(*args) + _kludge_force_declare_dirspec_t(arg1) + arg1: dirspec_t const * + +Help on function _kludge_force_declare_dirtree_t in module ida_kernwin: + +_kludge_force_declare_dirtree_t(*args) + _kludge_force_declare_dirtree_t(arg1) + arg1: dirtree_t const * Help on class action_ctx_base_t in module ida_kernwin: @@ -45180,10 +52064,13 @@ class action_ctx_base_t(__builtin__.object) | _get_form_type(self) -> twidget_type_t | | has_flag(self, *args) + | Check if the given flag is set. + | | has_flag(self, flag) -> bool + | @param flag (C++: uint32) | | reset(self, *args) - | reset(self) + | Invalidate all context info. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45206,6 +52093,9 @@ class action_ctx_base_t(__builtin__.object) | cur_enum | action_ctx_base_t_cur_enum_get(self) -> enum_t | + | cur_enum_member + | action_ctx_base_t_cur_enum_member_get(self) -> const_t + | | cur_extracted_ea | action_ctx_base_t_cur_value_get(self) -> uval_t | @@ -45230,6 +52120,9 @@ class action_ctx_base_t(__builtin__.object) | cur_value | action_ctx_base_t_cur_value_get(self) -> uval_t | + | dirtree_selection + | action_ctx_base_t_dirtree_selection_get(self) -> dirtree_selection_t * + | | focus | action_ctx_base_t_focus_get(self) -> TWidget * | @@ -45275,6 +52168,13 @@ class action_desc_t(__builtin__.object) | | __init__(self, *args) | __init__(self, name, label, handler, shortcut=None, tooltip=None, icon=-1, flags=0) -> action_desc_t + | name: char const * + | label: char const * + | handler: PyObject * + | shortcut: char const * + | tooltip: char const * + | icon: int + | flags: int | | __repr__ = _swig_repr(self) | @@ -45303,7 +52203,7 @@ class action_desc_t(__builtin__.object) | action_desc_t_name_get(self) -> char const * | | owner - | action_desc_t_owner_get(self) -> plugin_t const * + | action_desc_t_owner_get(self) -> void const * | | shortcut | action_desc_t_shortcut_get(self) -> char const * @@ -45345,20 +52245,16 @@ class action_handler_t(__builtin__.object) 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) + activate_widget(widget, take_focus) + @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 @@ -45370,34 +52266,28 @@ add_hotkey(*args) 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 + add_idc_hotkey(hotkey, idcfunc) -> int + @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 + add_spaces(s, len) -> PyObject * + s: char const * + @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: @@ -45460,9 +52350,6 @@ class addon_info_t(__builtin__.object) 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' ) @@ -45474,38 +52361,37 @@ 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) + ask_buttons(Yes, No, Cancel, deflt, format) -> int + @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 * + @param for_saving (C++: bool) + @param defval (C++: const char *) + @param format (C++: const 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 - *) + ask_for_feedback(format) + @param format: the reason why the input file is bad (C++: const char + *) Help on function ask_form in module ida_kernwin: @@ -45530,8 +52416,6 @@ 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 @@ -45543,8 +52427,6 @@ 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 @@ -45555,228 +52437,220 @@ ask_text(*args) 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 . + ask_yn(deflt, format) -> int + @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 + attach_action_to_menu(menupath, name, flags) -> bool + @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 + attach_action_to_popup(widget, popup_handle, name, popuppath=None, flags=0) -> bool + @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 + attach_action_to_toolbar(toolbar_name, name) -> bool + @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 + attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=0) -> bool + @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) + banner(wait) -> bool + @param wait: time to wait before closing (C++: int) + @retval: 1 - ok + @retval: 0 - esc was pressed 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) + beep(beep_type=beep_default) + @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) + cancel_exec_request(req_id) -> bool + @param req_id: request id (C++: int) + @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) + Try to cancel asynchronous exec requests created by the specified + thread. + + cancel_thread_exec_requests(tid) -> int + @param tid: thread id (C++: qthread_t) + @return: number of the canceled requests. Help on function choose_activate in module ida_kernwin: choose_activate(*args) choose_activate(_self) + self: PyObject * Help on function choose_choose in module ida_kernwin: choose_choose(*args) choose_choose(_self) -> PyObject * + self: PyObject * Help on function choose_close in module ida_kernwin: choose_close(*args) choose_close(_self) + self: PyObject * Help on function choose_create_embedded_chobj in module ida_kernwin: choose_create_embedded_chobj(*args) choose_create_embedded_chobj(_self) -> PyObject * + 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 + choose_entry(title) -> ea_t + @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 + choose_enum(title, default_id) -> enum_t + @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 + choose_enum_by_value(title, default_id, value, nbytes) -> enum_t + @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++: uint64) + @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 * + title: char const * 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 + choose_func(title, default_ea) -> func_t * + @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 * + self: PyObject * 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 @@ -45784,85 +52658,71 @@ choose_idasgn(*args) 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 + choose_name(title) -> ea_t + @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) + self: PyObject * 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 + choose_segm(title, default_ea) -> segment_t * + @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 + choose_srcp(title) -> sreg_range_t * + @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 + choose_stkvar_xref(pfn, mptr) -> ea_t + @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 + choose_struc(title) -> struc_t * + @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 + choose_xref(to) -> ea_t + @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: @@ -45907,6 +52767,7 @@ Help on function clear_refresh_request in module ida_kernwin: clear_refresh_request(*args) clear_refresh_request(mask) + @param mask (C++: uint64) Help on class cli_t in module ida_kernwin: @@ -45922,6 +52783,43 @@ 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) @@ -45956,65 +52854,51 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) 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 + close_chooser(title) -> bool + @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) + close_widget(widget, options) + @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 *) + create_code_viewer(custview, flags=0, parent=None) -> TWidget * + @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) + create_empty_widget(title, icon=-1) -> TWidget * + @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, @@ -46036,49 +52920,44 @@ create_menu(*args) 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 + create_menu(name, label, menupath=None) -> bool + @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 + create_toolbar(name, label, before=None, flags=0) -> bool + @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 + custom_viewer_jump(v, loc, flags=0) -> bool + @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() @@ -46088,73 +52967,63 @@ del_hotkey(*args) 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 *) + del_idc_hotkey(hotkey) -> bool + @param hotkey: hotkey name (C++: const char *) + @retval: 1 - ok + @retval: 0 - failed 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 + delete_menu(name) -> bool + @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 + delete_toolbar(name) -> bool + @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 + detach_action_from_menu(menupath, name) -> bool + @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 *) + detach_action_from_popup(widget, name) -> bool + @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 + detach_action_from_toolbar(toolbar_name, name) -> bool + @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: @@ -46183,7 +53052,7 @@ class disasm_line_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> disasm_line_t - | __init__(self, other) -> disasm_line_t + | other: disasm_line_t const & | | __repr__ = _swig_repr(self) | @@ -46229,10 +53098,11 @@ class disasm_text_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> disasm_line_t + | i: size_t | | __init__(self, *args) | __init__(self) -> disasm_text_t - | __init__(self, x) -> disasm_text_t + | 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. @@ -46244,9 +53114,12 @@ class disasm_text_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: disasm_line_t const & | | at(self, *args) | at(self, _idx) -> disasm_line_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -46270,7 +53143,12 @@ class disasm_text_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> disasm_line_t + | it: qvector< disasm_line_t >::iterator + | + | | erase(self, first, last) -> disasm_line_t + | first: qvector< disasm_line_t >::iterator + | last: qvector< disasm_line_t >::iterator | | extract(self, *args) | extract(self) -> disasm_line_t @@ -46280,35 +53158,47 @@ class disasm_text_t(__builtin__.object) | | grow(self, *args) | grow(self, x=disasm_line_t()) + | x: disasm_line_t const & | | inject(self, *args) | inject(self, s, len) + | s: disasm_line_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> disasm_line_t + | it: qvector< disasm_line_t >::iterator + | x: disasm_line_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> disasm_line_t + | x: disasm_line_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: disasm_line_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< disasm_line_t > & | | truncate(self, *args) | truncate(self) @@ -46334,60 +53224,45 @@ class disasm_text_t(__builtin__.object) 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 *) + display_widget(widget, options, dest_ctrl=None) + @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) + ea2str(ea) -> str + @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) + ea_viewer_history_push_and_jump(v, ea, x, y, lnnum) -> bool + @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 @@ -46396,9 +53271,10 @@ enable_chooser_item_attrs(*args) 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 + enable_chooser_item_attrs(chooser_caption, enable) -> bool + @param chooser_caption (C++: const char *) + @param enable (C++: bool) + @return: success Help on class enumplace_t in module ida_kernwin: @@ -46445,78 +53321,183 @@ class enumplace_t(place_t) | | _print(self, *args) | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @return: number of generated lines | | id(self, *args) - | id(self) -> int + | Get the place's ID (i.e., the value returned by + | 'register_place_class()' ) | | leave(self, *args) + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | name(self) -> char const * + | Get this place type name. All instances of a given class must return + | the same string. | | next(self, *args) + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | 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) - | toea(self) -> ea_t + | Map the location to an ea_t. | | touval(self, *args) + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -46534,8 +53515,6 @@ 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 @@ -46544,8 +53523,6 @@ 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. @@ -46558,8 +53535,6 @@ 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. @@ -46571,340 +53546,306 @@ execute_ui_requests(*args) 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 + find_widget(caption) -> TWidget * + @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) + p_fa: size_t + close_normally: int Help on function formchgcbfa_enable_field in module ida_kernwin: formchgcbfa_enable_field(*args) formchgcbfa_enable_field(p_fa, fid, enable) -> bool + p_fa: size_t + fid: int + 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 * + p_fa: size_t + fid: int + ft: int + sz: size_t Help on function formchgcbfa_get_focused_field in module ida_kernwin: formchgcbfa_get_focused_field(*args) formchgcbfa_get_focused_field(p_fa) -> int + p_fa: size_t 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 + p_fa: size_t + fid: int + x: int + y: int + w: int + h: int Help on function formchgcbfa_refresh_field in module ida_kernwin: formchgcbfa_refresh_field(*args) formchgcbfa_refresh_field(p_fa, fid) + p_fa: size_t + fid: int 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 + p_fa: size_t + fid: int + ft: int + py_val: PyObject * Help on function formchgcbfa_set_focused_field in module ida_kernwin: formchgcbfa_set_focused_field(*args) formchgcbfa_set_focused_field(p_fa, fid) -> bool + p_fa: size_t + fid: int Help on function formchgcbfa_show_field in module ida_kernwin: formchgcbfa_show_field(*args) formchgcbfa_show_field(p_fa, fid, show) -> bool + p_fa: size_t + fid: int + 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) + gen_disasm_text(text, ea1, ea2, truncate_lines) + @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 + get_action_checkable(name) -> bool + @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 + get_action_checked(name) -> bool + @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 + get_action_icon(name) -> bool + @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 + get_action_label(name) -> str + @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 + get_action_shortcut(name) -> str + @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 + get_action_state(name) -> bool + @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 + get_action_tooltip(name) -> str + @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 + get_action_visibility(name) -> bool + @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 + get_addon_info(id, info) -> bool + @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 + get_addon_info_idx(index, info) -> bool + @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) + get_chooser_data(chooser_caption, n) -> PyObject * + @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 + get_chooser_obj(chooser_caption) -> void * + @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 + get_custom_viewer_curline(custom_viewer, mouse) -> char const * + @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) + get_custom_viewer_location(out, custom_viewer, mouse=False) -> 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) - 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) + get_custom_viewer_place(custom_viewer, mouse) -> place_t + @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 *) + get_ea_viewer_history_info(nback, nfwd, v) -> bool + @param nback: number of available back steps (C++: int *) + @param nfwd: number of available forward steps (C++: int *) + @param v: ea viewer (C++: TWidget *) + @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) - get_hexdump_ea(hexdump_num) -> ea_t - - Get the current address in a hex view. - @param hexdump_num: number of hexview window (C++: int) + get_hexdump_ea(hexdump_num) -> ea_t + @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 @@ -46913,39 +53854,28 @@ get_highlight(*args) 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 *) + get_key_code(keyname) -> ushort + @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) + get_navband_ea(pixel) -> ea_t + @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 @@ -46954,28 +53884,20 @@ get_navband_pixel(*args) 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 + get_output_curline(mouse) -> str + @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 @@ -46983,159 +53905,129 @@ get_output_cursor(*args) 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 + get_place_class(out_flags, out_sdk_version, id) -> place_t + @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 + get_place_class_id(name) -> int + @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) + get_place_class_template(id) -> place_t + @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_synced_group in module ida_kernwin: + +get_synced_group(*args) + Get the group of widgets/registers this view is synchronized with + + get_synced_group(w) -> synced_group_t + @param w: the widget (C++: const TWidget *) + @return: the group of widgets/registers, or NULL + 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 *) + get_tab_size(path) -> int + @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) + @param out (C++: strwinsetup_t *) 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 *) + get_view_renderer_type(v) -> tcc_renderer_type_t + @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 *) + get_viewer_place_type(viewer) -> tcc_place_type_t + @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 *) + get_viewer_user_data(viewer) -> void * + @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 *) + get_widget_title(widget) -> str + @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 *) + get_widget_type(widget) -> twidget_type_t + @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 + get_window_id(name=None) -> void * + @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: @@ -47174,78 +54066,183 @@ class idaplace_t(place_t) | | _print(self, *args) | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @return: number of generated lines | | id(self, *args) - | id(self) -> int + | Get the place's ID (i.e., the value returned by + | 'register_place_class()' ) | | leave(self, *args) + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | name(self) -> char const * + | Get this place type name. All instances of a given class must return + | the same string. | | next(self, *args) + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | 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) - | toea(self) -> ea_t + | Map the location to an ea_t. | | touval(self, *args) + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -47263,79 +54260,68 @@ Help on function info in module ida_kernwin: info(*args) info(format) + @param format (C++: const char *) 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' ) + + install_command_interpreter(py_obj) -> int + py_obj: PyObject * 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 + @param tmplate (C++: const place_t *) + @param flags (C++: int) + @param owner (C++: const plugin_t *) + @param sdk_version (C++: 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) + is_action_enabled(s) -> bool + @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) + is_chooser_widget(t) -> bool + @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) + is_place_class_ea_capable(id) -> bool + @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) + is_refresh_requested(mask) -> bool + @param mask: Window refresh flags (C++: uint64) + @return: the state (set or cleared) Help on class jobj_wrapper_t in module ida_kernwin: @@ -47366,16 +54352,342 @@ class jobj_wrapper_t(__builtin__.object) 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 + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + @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 + + + jumpto(custom_viewer, place, x, y) -> bool + custom_viewer: TWidget * + place: place_t * + x: int + y: int + @return: success + +Help on class line_rendering_output_entries_refs_t in module ida_kernwin: + +class line_rendering_output_entries_refs_t(__builtin__.object) + | Proxy of C++ qvector< line_rendering_output_entry_t * > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< line_rendering_output_entry_t * > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> line_rendering_output_entry_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> line_rendering_output_entries_refs_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< line_rendering_output_entry_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: line_rendering_output_entry_t *const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: line_rendering_output_entry_t *const & + | + | _internal_push_back(self, *args) + | _internal_push_back(self, e) + | e: line_rendering_output_entry_t * + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: line_rendering_output_entry_t *const & + | + | at(self, *args) + | at(self, _idx) -> line_rendering_output_entry_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> qvector< line_rendering_output_entry_t * >::iterator + | begin(self) -> qvector< line_rendering_output_entry_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< line_rendering_output_entry_t * >::iterator + | end(self) -> qvector< line_rendering_output_entry_t * >::const_iterator + | + | erase(self, *args) + | erase(self, it) -> qvector< line_rendering_output_entry_t * >::iterator + | it: qvector< line_rendering_output_entry_t * >::iterator + | + | + | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator + | first: qvector< line_rendering_output_entry_t * >::iterator + | last: qvector< line_rendering_output_entry_t * >::iterator + | + | extract(self, *args) + | extract(self) -> line_rendering_output_entry_t ** + | + | find(self, *args) + | find(self, x) -> qvector< line_rendering_output_entry_t * >::iterator + | x: line_rendering_output_entry_t *const & + | + | + | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator + | x: line_rendering_output_entry_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) + | has(self, x) -> bool + | x: line_rendering_output_entry_t *const & + | + | inject(self, *args) + | inject(self, s, len) + | s: line_rendering_output_entry_t ** + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator + | it: qvector< line_rendering_output_entry_t * >::iterator + | x: line_rendering_output_entry_t *const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, e) + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: line_rendering_output_entry_t *const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< line_rendering_output_entry_t * > & + | + | 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__ = bool + | r: line_rendering_output_entry_t const & + | + | __init__(self, *args) + | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t + | _line: twinline_t const * + | _flags: uint32 + | _bg_color: bgcolor_t + | + | + | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t + | _line: twinline_t const * + | _cpx: int + | _nchars: int + | _flags: uint32 + | _bg_color: bgcolor_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: line_rendering_output_entry_t const & + | + | __repr__ = _swig_repr(self) + | + | is_bg_color_direct(self, *args) + | is_bg_color_direct(self) -> bool + | + | is_bg_color_empty(self, *args) + | is_bg_color_empty(self) -> bool + | + | is_bg_color_key(self, *args) + | 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 + | line_rendering_output_entry_t_bg_color_get(self) -> bgcolor_t + | + | cpx + | line_rendering_output_entry_t_cpx_get(self) -> int + | + | flags + | line_rendering_output_entry_t_flags_get(self) -> uint32 + | + | line + | line_rendering_output_entry_t_line_get(self) -> twinline_t + | + | nchars + | line_rendering_output_entry_t_nchars_get(self) -> int + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = lines_rendering_input_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 + | lines_rendering_input_t_cb_get(self) -> int + | + | sections_lines + | lines_rendering_input_t_sections_lines_get(self) -> sections_lines_refs_t + | + | sync_group + | lines_rendering_input_t_sync_group_get(self) -> synced_group_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_lines_rendering_input_t(self) + +Help on class lines_rendering_output_t in module ida_kernwin: + +class lines_rendering_output_t(__builtin__.object) + | Proxy of C++ lines_rendering_output_t class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: lines_rendering_output_t const & + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_output_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: lines_rendering_output_t const & + | + | __repr__ = _swig_repr(self) + | + | clear(self, *args) + | clear(self) + | + | swap(self, *args) + | swap(self, r) + | @param r (C++: 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 + | lines_rendering_output_t_entries_get(self) -> line_rendering_output_entries_refs_t + | + | flags + | lines_rendering_output_t_flags_get(self) -> uint32 + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_lines_rendering_output_t(self) Help on function load_custom_icon in module ida_kernwin: @@ -47390,44 +54702,32 @@ load_custom_icon(file_name=None, data=None, format=None) @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) + load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool + @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) + lookup_key_code(key, shift, is_qt) -> ushort + @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 @@ -47440,100 +54740,84 @@ msg(*args) 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) + msg_get_lines(count=-1) -> PyObject * + @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 + msg_save(path) -> bool + @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) + @param format (C++: const char *) 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 + open_bpts_window(ea) -> TWidget * + @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 + open_calls_window(ea) -> TWidget * + @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 + open_disasm_window(window_title, ranges=None) -> TWidget * + @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 + open_enums_window(const_id=BADADDR) -> TWidget * + @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 + open_exports_window(ea) -> TWidget * + @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: @@ -47542,244 +54826,175 @@ 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 + open_frame_window(pfn, offset) -> TWidget * + @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 + open_funcs_window(ea) -> TWidget * + @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 + open_hexdump_window(window_title) -> TWidget * + @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 + open_imports_window(ea) -> TWidget * + @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 + open_loctypes_window(ordinal) -> TWidget * + @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 + open_names_window(ea) -> TWidget * + @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 + open_navband_window(ea, zoom) -> TWidget * + @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 + open_problems_window(ea) -> TWidget * + @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 + open_segments_window(ea) -> TWidget * + @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 + open_segregs_window(ea) -> TWidget * + @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 + open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * + @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 + open_structs_window(id=BADADDR, offset=0) -> TWidget * + @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 *) + open_url(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 + open_xrefs_window(ea) -> TWidget * + @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: @@ -47794,78 +55009,183 @@ class place_t(__builtin__.object) | | _print(self, *args) | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @return: number of generated lines | | id(self, *args) - | id(self) -> int + | Get the place's ID (i.e., the value returned by + | 'register_place_class()' ) | | leave(self, *args) + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | name(self) -> char const * + | Get this place type name. All instances of a given class must return + | the same string. | | next(self, *args) + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | 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) - | toea(self) -> ea_t + | Map the location to an ea_t. | | touval(self, *args) + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods defined here: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -47892,31 +55212,38 @@ 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 + p: place_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 + p: place_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 + p: 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 + p: place_t * Help on function plgform_close in module ida_kernwin: plgform_close(*args) plgform_close(py_link, options) + py_link: PyObject * + options: int Help on function plgform_get_widget in module ida_kernwin: plgform_get_widget(*args) plgform_get_widget(py_link) -> TWidget * + py_link: PyObject * Help on function plgform_new in module ida_kernwin: @@ -47927,13 +55254,15 @@ 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 + py_link: PyObject * + py_obj: PyObject * + caption: char const * + options: int 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 @@ -47953,148 +55282,192 @@ 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 + data: PyObject * + format: char const * 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 + filename: char const * Help on function py_register_compiled_form in module ida_kernwin: py_register_compiled_form(*args) py_register_compiled_form(py_form) + py_form: PyObject * Help on function py_ss_restore_callback in module ida_kernwin: py_ss_restore_callback(*args) py_ss_restore_callback(err_msg, userdata) + err_msg: char const * + userdata: void * Help on function py_unregister_compiled_form in module ida_kernwin: py_unregister_compiled_form(*args) py_unregister_compiled_form(py_form) + py_form: PyObject * Help on function pyidag_bind in module ida_kernwin: pyidag_bind(*args) pyidag_bind(_self) -> bool + self: PyObject * Help on function pyidag_unbind in module ida_kernwin: pyidag_unbind(*args) pyidag_unbind(_self) -> bool + self: PyObject * Help on function pyscv_add_line in module ida_kernwin: pyscv_add_line(*args) pyscv_add_line(py_this, py_sl) -> bool + py_this: PyObject * + py_sl: PyObject * Help on function pyscv_clear_lines in module ida_kernwin: pyscv_clear_lines(*args) pyscv_clear_lines(py_this) -> PyObject * + py_this: PyObject * Help on function pyscv_close in module ida_kernwin: pyscv_close(*args) pyscv_close(py_this) + py_this: PyObject * Help on function pyscv_count in module ida_kernwin: pyscv_count(*args) pyscv_count(py_this) -> size_t + py_this: PyObject * Help on function pyscv_del_line in module ida_kernwin: pyscv_del_line(*args) pyscv_del_line(py_this, nline) -> bool + py_this: PyObject * + nline: size_t Help on function pyscv_edit_line in module ida_kernwin: pyscv_edit_line(*args) pyscv_edit_line(py_this, nline, py_sl) -> bool + py_this: PyObject * + nline: size_t + py_sl: PyObject * 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 * + py_this: PyObject * + mouse: bool + notags: bool Help on function pyscv_get_current_word in module ida_kernwin: pyscv_get_current_word(*args) pyscv_get_current_word(py_this, mouse) -> PyObject * + py_this: PyObject * + mouse: bool Help on function pyscv_get_line in module ida_kernwin: pyscv_get_line(*args) pyscv_get_line(py_this, nline) -> PyObject * + py_this: PyObject * + nline: size_t Help on function pyscv_get_pos in module ida_kernwin: pyscv_get_pos(*args) pyscv_get_pos(py_this, mouse) -> PyObject * + py_this: PyObject * + mouse: bool Help on function pyscv_get_selection in module ida_kernwin: pyscv_get_selection(*args) pyscv_get_selection(py_this) -> PyObject * + py_this: PyObject * Help on function pyscv_get_widget in module ida_kernwin: pyscv_get_widget(*args) pyscv_get_widget(py_this) -> TWidget * + py_this: PyObject * Help on function pyscv_init in module ida_kernwin: pyscv_init(*args) pyscv_init(py_link, title) -> PyObject * + py_link: PyObject * + title: char const * Help on function pyscv_insert_line in module ida_kernwin: pyscv_insert_line(*args) pyscv_insert_line(py_this, nline, py_sl) -> bool + py_this: PyObject * + nline: size_t + py_sl: PyObject * Help on function pyscv_is_focused in module ida_kernwin: pyscv_is_focused(*args) pyscv_is_focused(py_this) -> bool + py_this: PyObject * Help on function pyscv_jumpto in module ida_kernwin: pyscv_jumpto(*args) pyscv_jumpto(py_this, ln, x, y) -> bool + py_this: PyObject * + ln: size_t + x: int + y: int Help on function pyscv_patch_line in module ida_kernwin: pyscv_patch_line(*args) pyscv_patch_line(py_this, nline, offs, value) -> bool + py_this: PyObject * + nline: size_t + offs: size_t + value: int Help on function pyscv_refresh in module ida_kernwin: pyscv_refresh(*args) pyscv_refresh(py_this) -> bool + py_this: PyObject * Help on function pyscv_show in module ida_kernwin: pyscv_show(*args) pyscv_show(py_this) -> bool + py_this: PyObject * 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 + qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str + @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: @@ -48121,21 +55494,19 @@ class quick_widget_commands_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 *) + read_range_selection(v) -> bool + @param v: view, NULL means the last active window containing addresses + (C++: TWidget *) + @retval: 0 - no range is selected + @retval: 1 - ok, start ea and end ea are filled 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: @@ -48169,14 +55540,12 @@ read_selection(*args) 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 + refresh_chooser(title) -> bool + @param title: title of chooser (C++: const char *) + @return: success Help on function refresh_choosers in module ida_kernwin: @@ -48186,36 +55555,25 @@ refresh_choosers(*args) 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) + refresh_navband(force) + @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 ( @@ -48224,47 +55582,43 @@ register_action(*args) 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 + register_action(desc) -> bool + @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 *) + register_addon(info) -> int + @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 *) + register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner, action_desc_t_flags) -> bool + @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++: void *) + @param action_desc_t_flags (C++: int) 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 @@ -48277,10 +55631,10 @@ register_timer(*args) 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' ) + + remove_command_interpreter(cli_idx) + cli_idx: int Help on class renderer_pos_info_t in module ida_kernwin: @@ -48291,12 +55645,14 @@ class renderer_pos_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: renderer_pos_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_pos_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: renderer_pos_info_t const & | | __repr__ = _swig_repr(self) | @@ -48333,173 +55689,454 @@ class renderer_pos_info_t(__builtin__.object) 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 *) + repaint_custom_viewer(custom_viewer) + @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 *) + replace_wait_box(format) + @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) + request_refresh(mask, cnd=True) + @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. + restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> PyObject * + @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const + snapshot_t *) + pyfunc_or_none: PyObject * + pytuple_or_none: PyObject * + @return: false if restoration could not be started (snapshot file was + not found). If the returned value is True then check if + the operation succeeded from the callback. + +Help on class section_lines_refs_t in module ida_kernwin: + +class section_lines_refs_t(__builtin__.object) + | Proxy of C++ qvector< twinline_t const * > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< twinline_t const * > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> twinline_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> section_lines_refs_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< twinline_t const * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: twinline_t const *const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: twinline_t const *const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: twinline_t const *const & + | + | at(self, *args) + | at(self, _idx) -> twinline_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> qvector< twinline_t const * >::iterator + | begin(self) -> qvector< twinline_t const * >::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< twinline_t const * >::iterator + | end(self) -> qvector< twinline_t const * >::const_iterator + | + | erase(self, *args) + | erase(self, it) -> qvector< twinline_t const * >::iterator + | it: qvector< twinline_t const * >::iterator + | + | + | erase(self, first, last) -> qvector< twinline_t const * >::iterator + | first: qvector< twinline_t const * >::iterator + | last: qvector< twinline_t const * >::iterator + | + | extract(self, *args) + | extract(self) -> twinline_t const ** + | + | find(self, *args) + | find(self, x) -> qvector< twinline_t const * >::iterator + | x: twinline_t const *const & + | + | + | find(self, x) -> qvector< twinline_t const * >::const_iterator + | x: twinline_t const *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) + | has(self, x) -> bool + | x: twinline_t const *const & + | + | inject(self, *args) + | inject(self, s, len) + | s: twinline_t const ** + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> qvector< twinline_t const * >::iterator + | it: qvector< twinline_t const * >::iterator + | x: twinline_t const *const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: twinline_t const *const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: twinline_t const *const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< twinline_t const * > & + | + | 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_section_lines_refs_t(self) + +Help on class sections_lines_refs_t in module ida_kernwin: + +class sections_lines_refs_t(__builtin__.object) + | Proxy of C++ qvector< section_lines_refs_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< section_lines_refs_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> section_lines_refs_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> sections_lines_refs_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< section_lines_refs_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: section_lines_refs_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: section_lines_refs_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: section_lines_refs_t const & + | + | at(self, *args) + | at(self, _idx) -> section_lines_refs_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> qvector< section_lines_refs_t >::iterator + | begin(self) -> qvector< section_lines_refs_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< section_lines_refs_t >::iterator + | end(self) -> qvector< section_lines_refs_t >::const_iterator + | + | erase(self, *args) + | erase(self, it) -> qvector< section_lines_refs_t >::iterator + | it: qvector< section_lines_refs_t >::iterator + | + | + | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator + | first: qvector< section_lines_refs_t >::iterator + | last: qvector< section_lines_refs_t >::iterator + | + | extract(self, *args) + | extract(self) -> section_lines_refs_t + | + | find(self, *args) + | find(self, x) -> qvector< section_lines_refs_t >::iterator + | x: section_lines_refs_t const & + | + | + | find(self, x) -> qvector< section_lines_refs_t >::const_iterator + | x: section_lines_refs_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=section_lines_refs_t()) + | x: section_lines_refs_t const & + | + | has(self, *args) + | has(self, x) -> bool + | x: section_lines_refs_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: section_lines_refs_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator + | it: qvector< section_lines_refs_t >::iterator + | x: section_lines_refs_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: section_lines_refs_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: section_lines_refs_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< section_lines_refs_t > & + | + | 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_sections_lines_refs_t(self) 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 + set_code_viewer_handler(code_viewer, handler_id, handler_or_data) -> void * + @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 *) + set_code_viewer_is_source(code_viewer) -> bool + @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 *) + set_code_viewer_line_handlers(code_viewer, click_handler, popup_handler, dblclick_handler, drawicon_handler, linenum_handler) + @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) + set_code_viewer_lines_alignment(code_viewer, align) -> bool + @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) + set_code_viewer_lines_icon_margin(code_viewer, margin) -> bool + @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) + set_code_viewer_lines_radix(code_viewer, radix) -> bool + @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 *) + set_code_viewer_user_data(code_viewer, ud) -> bool + @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 *) + set_custom_viewer_qt_aware(custom_viewer) -> bool + @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 @@ -48514,24 +56151,20 @@ set_dock_pos(*args) 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 + set_highlight(viewer, str, flags) -> bool + @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: @@ -48561,21 +56194,15 @@ set_nav_colorizer(*args) 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) + set_view_renderer_type(v, rt) + @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 @@ -48591,6 +56218,9 @@ show_wait_box(*args) currently displayed,alternatively it can call 'replace_wait_box()' , to replace the text of thedialog without pushing the currently- displayed text on the stack. + + show_wait_box(message) + message: char const * Help on class simplecustviewer_t in module ida_kernwin: @@ -48748,78 +56378,183 @@ class simpleline_place_t(place_t) | | _print(self, *args) | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @return: number of generated lines | | id(self, *args) - | id(self) -> int + | Get the place's ID (i.e., the value returned by + | 'register_place_class()' ) | | leave(self, *args) + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | name(self) -> char const * + | Get this place type name. All instances of a given class must return + | the same string. | | next(self, *args) + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | 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) - | toea(self) -> ea_t + | Map the location to an ea_t. | | touval(self, *args) + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -48842,8 +56577,12 @@ class simpleline_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> simpleline_t - | __init__(self, c, str) -> simpleline_t + | c: color_t + | str: char const * + | + | | __init__(self, str) -> simpleline_t + | str: char const * | | __repr__ = _swig_repr(self) | @@ -48878,8 +56617,6 @@ 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 @@ -48888,8 +56625,6 @@ 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 @@ -48897,17 +56632,15 @@ str2user(*args) 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) + strarray(array, array_size, code) -> char const * + @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: @@ -48984,78 +56717,183 @@ class structplace_t(place_t) | | _print(self, *args) | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @return: number of generated lines | | id(self, *args) - | id(self) -> int + | Get the place's ID (i.e., the value returned by + | 'register_place_class()' ) | | leave(self, *args) + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @return: a freshly allocated object. See also PCF_MAKEPLACE_ALLOCATES | | name(self, *args) - | name(self) -> char const * + | Get this place type name. All instances of a given class must return + | the same string. | | next(self, *args) + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | serialize(self, *args) - | 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) - | toea(self) -> ea_t + | Map the location to an ea_t. | | touval(self, *args) + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -49078,13 +56916,19 @@ class sync_source_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, _o) -> bool + | _o: sync_source_t const & | | __init__(self, *args) | __init__(self, _view) -> sync_source_t + | _view: TWidget const * + | + | | __init__(self, _regname) -> sync_source_t + | _regname: char const * | | __ne__(self, *args) | __ne__(self, _o) -> bool + | _o: sync_source_t const & | | __repr__ = _swig_repr(self) | @@ -49118,30 +56962,470 @@ class sync_source_t(__builtin__.object) | __swig_destroy__ = | delete_sync_source_t(self) +Help on class sync_source_vec_t in module ida_kernwin: + +class sync_source_vec_t(__builtin__.object) + | Proxy of C++ qvector< sync_source_t > class. + | + | Methods defined here: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> sync_source_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> sync_source_vec_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< sync_source_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: sync_source_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: sync_source_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: sync_source_t const & + | + | at(self, *args) + | at(self, _idx) -> sync_source_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> sync_source_t + | begin(self) -> sync_source_t + | + | capacity(self, *args) + | capacity(self) -> size_t + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> sync_source_t + | end(self) -> sync_source_t + | + | erase(self, *args) + | erase(self, it) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | + | + | erase(self, first, last) -> sync_source_t + | first: qvector< sync_source_t >::iterator + | last: qvector< sync_source_t >::iterator + | + | extract(self, *args) + | extract(self) -> sync_source_t + | + | find(self, *args) + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) + | has(self, x) -> bool + | x: sync_source_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: sync_source_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | x: sync_source_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: sync_source_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< sync_source_t > & + | + | 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_sync_source_vec_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 + sync_sources(what, _with, sync) -> 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 + | __builtin__.object + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> synced_group_t + | + | __repr__ = _swig_repr(self) + | + | has(self, *args) + | has(self, ss) -> bool + | @param ss (C++: const sync_source_t &) + | + | has_register(self, *args) + | has_register(self, r) -> bool + | @param r (C++: const char *) + | + | has_widget(self, *args) + | has_widget(self, v) -> bool + | @param v (C++: const TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_synced_group_t(self) + | + | ---------------------------------------------------------------------- + | Methods inherited from sync_source_vec_t: + | + | __eq__(self, *args) + | __eq__(self, r) -> bool + | r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) + | __getitem__(self, i) -> sync_source_t + | 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) + | __len__(self) -> size_t + | + | __ne__(self, *args) + | __ne__(self, r) -> bool + | r: qvector< sync_source_t > const & + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: sync_source_t const & + | + | _del(self, *args) + | _del(self, x) -> bool + | x: sync_source_t const & + | + | add_unique(self, *args) + | add_unique(self, x) -> bool + | x: sync_source_t const & + | + | at(self, *args) + | at(self, _idx) -> sync_source_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> sync_source_t + | begin(self) -> sync_source_t + | + | capacity(self, *args) + | capacity(self) -> size_t + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> sync_source_t + | end(self) -> sync_source_t + | + | erase(self, *args) + | erase(self, it) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | + | + | erase(self, first, last) -> sync_source_t + | first: qvector< sync_source_t >::iterator + | last: qvector< sync_source_t >::iterator + | + | extract(self, *args) + | extract(self) -> sync_source_t + | + | find(self, *args) + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | inject(self, *args) + | inject(self, s, len) + | s: sync_source_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | x: sync_source_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: sync_source_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< sync_source_t > & + | + | truncate(self, *args) + | 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) 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 + take_database_snapshot(ss) -> PyObject * + @param ss: in/out parameter. in: description, flags out: filename, + id (C++: snapshot_t *) + @return: success + +Help on class text_t in module ida_kernwin: + +class text_t(__builtin__.object) + | Proxy of C++ qvector< twinline_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) + | __getitem__(self, i) -> twinline_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> text_t + | 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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: twinline_t const & + | + | at(self, *args) + | at(self, _idx) -> twinline_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) + | begin(self) -> twinline_t + | begin(self) -> twinline_t + | + | capacity(self, *args) + | capacity(self) -> size_t + | + | clear(self, *args) + | clear(self) + | + | empty(self, *args) + | empty(self) -> bool + | + | end(self, *args) + | end(self) -> twinline_t + | end(self) -> twinline_t + | + | erase(self, *args) + | erase(self, it) -> twinline_t + | it: qvector< twinline_t >::iterator + | + | + | erase(self, first, last) -> twinline_t + | first: qvector< twinline_t >::iterator + | last: qvector< twinline_t >::iterator + | + | extract(self, *args) + | extract(self) -> twinline_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) + | grow(self, x=twinline_t()) + | x: twinline_t const & + | + | inject(self, *args) + | inject(self, s, len) + | s: twinline_t * + | len: size_t + | + | insert(self, *args) + | insert(self, it, x) -> twinline_t + | it: qvector< twinline_t >::iterator + | x: twinline_t const & + | + | pop_back(self, *args) + | pop_back(self) + | + | push_back(self, *args) + | push_back(self, x) + | x: twinline_t const & + | + | qclear(self, *args) + | qclear(self) + | + | reserve(self, *args) + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) + | resize(self, _newsize, x) + | _newsize: size_t + | x: twinline_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) + | size(self) -> size_t + | + | swap(self, *args) + | swap(self, r) + | r: qvector< twinline_t > & + | + | 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_text_t(self) Help on class textctrl_info_t in module ida_kernwin: @@ -49252,6 +57536,8 @@ Help on function textctrl_info_t_assign in module ida_kernwin: textctrl_info_t_assign(*args) textctrl_info_t_assign(_self, other) -> bool + self: PyObject * + other: PyObject * Help on function textctrl_info_t_create in module ida_kernwin: @@ -49262,46 +57548,106 @@ Help on function textctrl_info_t_destroy in module ida_kernwin: textctrl_info_t_destroy(*args) textctrl_info_t_destroy(py_obj) -> bool + py_obj: PyObject * 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 * + self: PyObject * 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 * + 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 + self: PyObject * 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 + self: PyObject * 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 * + self: PyObject * 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 + self: PyObject * + flags: unsigned int 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 + self: PyObject * + tabsize: unsigned int 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 + self: PyObject * + s: char const * + +Help on class twinline_t in module ida_kernwin: + +class twinline_t(__builtin__.object) + | Proxy of C++ twinline_t class. + | + | Methods defined here: + | + | __init__(self, *args) + | __init__(self) -> twinline_t + | t: place_t * + | pc: color_t + | bc: bgcolor_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 + | twinline_t_at_get(self) -> place_t + | + | bg_color + | twinline_t_bg_color_get(self) -> bgcolor_t + | + | is_default + | twinline_t_is_default_get(self) -> bool + | + | line + | twinline_t_line_get(self) -> qstring * + | + | prefix_color + | twinline_t_prefix_color_get(self) -> color_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_twinline_t(self) Help on class twinpos_t in module ida_kernwin: @@ -49310,16 +57656,14 @@ class twinpos_t(__builtin__.object) | | Methods defined here: | - | __eq__(self, *args) - | __eq__(self, r) -> bool - | | __init__(self, *args) | __init__(self) -> twinpos_t - | __init__(self, t) -> twinpos_t + | t: place_t * + | + | | __init__(self, t, x0) -> twinpos_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool + | t: place_t * + | x0: int | | __repr__ = _swig_repr(self) | @@ -49360,21 +57704,21 @@ class twinpos_t(__builtin__.object) 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 **) + ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool + @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 **) + @retval: true - file was successfully loaded + @retval: false - otherwise Help on class ui_requests_t in module ida_kernwin: @@ -49409,43 +57753,34 @@ class ui_requests_t(__builtin__.object) 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 + ui_run_debugger(dbgopts, exename, argc, argv) -> bool + @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 + unregister_action(name) -> bool + @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() @@ -49455,105 +57790,86 @@ unregister_timer(*args) 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 + update_action_checkable(name, checkable) -> bool + @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 + update_action_checked(name, checked) -> bool + @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 + update_action_icon(name, icon) -> bool + @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 + update_action_label(name, label) -> bool + @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 + update_action_shortcut(name, shortcut) -> bool + @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 + update_action_state(name, state) -> bool + @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 + update_action_tooltip(name, tooltip) -> bool + @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 + update_action_visibility(name, visible) -> bool + @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: @@ -49647,8 +57963,6 @@ 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) @@ -49658,6 +57972,11 @@ warning(*args) the screen === ida_kernwin EPYDOC INJECTIONS === +ida_kernwin.ACF_HAS_FIELD_DIRTREE_SELECTION +""" +'cur_enum_member' and 'dirtree_selection' fields are present +""" + ida_kernwin.ACF_HAS_SELECTION """ there is currently a valid selection @@ -49668,6 +57987,20 @@ ida_kernwin.ACF_XTRN_EA cur_ea is in 'externs' segment """ +ida_kernwin.ADF_GLOBAL +""" +available even if no IDB is present + +Register the action globally, so that it's +""" + +ida_kernwin.ADF_NO_HIGHLIGHT +""" +according to what's under the cursor (listings only.) + +After activating, do not update the highlight +""" + ida_kernwin.ADF_NO_UNDO """ useful for actions that do not modify the database. @@ -49675,6 +58008,26 @@ useful for actions that do not modify the database. the action does not create an undo point. """ +ida_kernwin.ADF_OT_MASK +""" +Owner type mask. +""" + +ida_kernwin.ADF_OT_PLUGIN +""" +Owner is a 'plugin_t' . +""" + +ida_kernwin.ADF_OT_PLUGMOD +""" +Owner is a 'plugmod_t' . +""" + +ida_kernwin.ADF_OT_PROCMOD +""" +Owner is a 'procmod_t' . +""" + ida_kernwin.ADF_OWN_HANDLER """ handler is owned by the action; it'll be destroyed when the action is @@ -50030,6 +58383,13 @@ ida_kernwin.CHCOL_DEFHIDDEN column should be hidden by default """ +ida_kernwin.CHCOL_DRAGHINT +""" +the column number that will be used to build hints for the dragging +undo label. This should be provided for at most one column for any +given chooser. +""" + ida_kernwin.CHCOL_EA """ address @@ -50050,6 +58410,13 @@ ida_kernwin.CHCOL_HEX hexadecimal number """ +ida_kernwin.CHCOL_INODENAME +""" +if CH_HAS_DIRTREE has been specified, this instructs the chooser that +this column shows the inode name. This should be provided for at most +one column for any given chooser. +""" + ida_kernwin.CHCOL_PATH """ file path @@ -50157,6 +58524,12 @@ if a non-modal chooser was already open, change selection to the default one """ +ida_kernwin.CH_HAS_DIRTREE +""" +The chooser can provide a 'dirtree_t' , meaning a tree-like structure +can be provided to the user (instead of a flat table) +""" + ida_kernwin.CH_KEEP """ The chooser instance's lifecycle is not tied to the lifecycle of the @@ -50233,6 +58606,111 @@ restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) """ +ida_kernwin.CH_TM_FOLDERS_ONLY +""" +chooser will show in folders-only mode +""" + +ida_kernwin.CH_TM_FULL_TREE +""" +chooser will show in no-tree mode +""" + +ida_kernwin.CH_TM_NO_TREE +""" +chooser will show up in no-tree mode +""" + +ida_kernwin.CK_EXTRA1 +""" +extra background overlay #1 +""" + +ida_kernwin.CK_EXTRA10 +""" +extra background overlay #10 +""" + +ida_kernwin.CK_EXTRA11 +""" +extra background overlay #11 +""" + +ida_kernwin.CK_EXTRA12 +""" +extra background overlay #12 +""" + +ida_kernwin.CK_EXTRA13 +""" +extra background overlay #13 +""" + +ida_kernwin.CK_EXTRA14 +""" +extra background overlay #14 +""" + +ida_kernwin.CK_EXTRA15 +""" +extra background overlay #15 +""" + +ida_kernwin.CK_EXTRA16 +""" +extra background overlay #16 +""" + +ida_kernwin.CK_EXTRA2 +""" +extra background overlay #2 +""" + +ida_kernwin.CK_EXTRA3 +""" +extra background overlay #3 +""" + +ida_kernwin.CK_EXTRA4 +""" +extra background overlay #4 +""" + +ida_kernwin.CK_EXTRA5 +""" +extra background overlay #5 +""" + +ida_kernwin.CK_EXTRA6 +""" +extra background overlay #6 +""" + +ida_kernwin.CK_EXTRA7 +""" +extra background overlay #7 +""" + +ida_kernwin.CK_EXTRA8 +""" +extra background overlay #8 +""" + +ida_kernwin.CK_EXTRA9 +""" +extra background overlay #9 +""" + +ida_kernwin.CK_TRACE +""" +traced address +""" + +ida_kernwin.CK_TRACE_OVL +""" +overlay trace address +""" + ida_kernwin.CLNL_FINDCMT """ Search for the comment symbol everywhere in the line, not only at the @@ -50640,6 +59118,16 @@ ida_kernwin.IWID_XREFS xrefs (18) """ +ida_kernwin.LROEF_CPS_RANGE +""" +background for range of chars +""" + +ida_kernwin.LROEF_FULL_LINE +""" +full line background +""" + ida_kernwin.MFF_FAST """ Execute code as soon as possible. this mode is ok for calling ui @@ -50650,10 +59138,10 @@ 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. +not, the request will be ignored. the request must be created using +the 'new' operator to use it with this flag. it can be used in +'cancel_exec_request()' . This flag can be used to delay the code +execution until the next UI loop run even from the main thread. """ ida_kernwin.MFF_READ @@ -50673,6 +59161,19 @@ 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.PCF_EA_CAPABLE +""" +toea() implementation returns meaningful data +""" + +ida_kernwin.PCF_MAKEPLACE_ALLOCATES +""" +makeplace() returns a freshly allocated (i.e., non-static) instance. +All new code should pass that flag to 'register_place_class()' , and +the corresponding makeplace() class implementation should return new +instances. +""" + ida_kernwin.SETMENU_APP """ add menu item after the specified path @@ -50733,161 +59234,114 @@ COLSTR(str, tag) 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 + add_extra_cmt(ea, isprev, format) -> bool + @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 + add_extra_line(ea, isprev, format) -> bool + @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 + add_pgm_cmt(format) -> 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_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) + add_sourcefile(ea1, ea2, filename) -> bool + @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 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 + calc_bg_color(ea) -> bgcolor_t + @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 + calc_prefix_color(ea) -> color_t + @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 * + encidx: int + nr: enum encoder_t::notify_recerr_t Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) del_extra_cmt(ea, what) + ea: ea_t + what: int 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 + del_sourcefile(ea) -> bool + @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) + ea: ea_t + what: int Help on function generate_disasm_line in module ida_lines: generate_disasm_line(*args) generate_disasm_line(ea, flags=0) -> str + ea: ea_t + flags: int 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 @@ -50902,25 +59356,43 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) get_extra_cmt(ea, what) -> ssize_t + ea: ea_t + what: int 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 + ea: ea_t + 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 + get_sourcefile(ea, bounds=None) -> char const * + @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 install_user_defined_prefix in module ida_lines: + +install_user_defined_prefix(*args) + 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. + + install_user_defined_prefix(prefix_len, udp, owner) -> bool + @param prefix_len: prefixed length. if 0, then uninstall UDP (C++: + size_t) + @param udp: object to generate user-defined prefix (C++: struct + user_defined_prefix_t *) + @param owner: pointer to the plugin_t that owns UDP if non-NULL, + then the object will be uninstalled and destroyed when + the plugin gets unloaded (C++: const void *) Help on function requires_color_esc in module ida_lines: @@ -50928,107 +59400,128 @@ 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 + Deprecated. Please use install_user_defined_prefix() instead 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) + tag_addr(ea) -> PyObject * + @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 + tag_advance(line, cnt) -> int + @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) + Remove color escape sequences from a string. + 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 + nonnul_instr: char const * + @return: length of resulting string, -1 if error 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 + tag_skipcode(line) -> int + @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 + tag_skipcodes(line) -> int + @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 + tag_strlen(line) -> ssize_t + @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) + ea: ea_t + what: int + str: char const * + +Help on class user_defined_prefix_t in module ida_lines: + +class user_defined_prefix_t(__builtin__.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 + | prefix_len: size_t + | owner: void const * + | + | __repr__ = _swig_repr(self) + | + | get_user_defined_prefix(self, *args) + | This callback must be overridden by the derived class. + | + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) + | @param ea: the current address (C++: ea_t) + | @param insn: the current instruction. if the current item is not an + | instruction, then insn.itype is zero. - an + | ida_ua.insn_t, or an address (C++: const insn_t &) + | @param lnnum (C++: int) + | @param indent: see explanations for gen_printf() (C++: int) + | @param line: the line to be generated. the line usually contains color + | tags. this argument can be examined to decide whether to + | generate the prefix. (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for 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_defined_prefix_t(self) === ida_lines EPYDOC INJECTIONS === ida_lines.COLOR_ADDR_SIZE @@ -51351,193 +59844,169 @@ Void operand. 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 + base2file(fp, pos, ea1, ea2) -> int + @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 + build_snapshot_tree(root) -> bool + @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) + @param dbfl (C++: uint32) 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) + extract_module_from_archive(fname, is_remote=False) -> PyObject * + fname: char const * + @param is_remote: is the input file remote? (C++: bool) + @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) - 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) + file2base(li, pos, ea1, ea2, patchable) -> int + @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) + @retval: 1 - ok + @retval: 0 - read error, a warning is displayed 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 + find_plugin(name, load_if_needed=False) -> plugin_t * + @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 + gen_exe_file(fp) -> int + @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 + @retval: 1 - ok + @retval: 0 - failed 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 + gen_file(otype, fp, ea1, ea2, flags) -> int + @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 + @retval: 0 - can't generate exe file + @retval: 1 - ok 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 *) + get_basic_file_type(li) -> filetype_t + @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) + get_fileregion_ea(offset) -> ea_t + @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) + get_fileregion_offset(ea) -> qoff64_t + @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 + get_path(pt) -> char const * + @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 *) + get_plugin_options(plugin) -> char const * + @param plugin (C++: const char *) Help on class idp_desc_t in module ida_loader: @@ -51629,62 +60098,51 @@ class idp_name_t(__builtin__.object) 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) + is_database_flag(dbfl) -> bool + @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) + load_and_run_plugin(name, arg) -> bool + @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) + load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool + @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) + @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) - 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, @@ -51692,14 +60150,16 @@ load_ids_module(*args) 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 *) + load_ids_module(fname) -> int + @param fname: name of file to apply (C++: char *) + @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) load_plugin(name) -> PyObject * - - Loads a plugin @return: - None if plugin could not be loaded @@ -51745,8 +60205,6 @@ 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 @@ -51822,20 +60280,18 @@ class plugin_info_t(__builtin__.object) 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 *) + process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str + @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: @@ -51846,13 +60302,15 @@ class qvector_snapshotvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< snapshot_t * > const & | | __getitem__(self, *args) | __getitem__(self, i) -> snapshot_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_snapshotvec_t - | __init__(self, x) -> qvector_snapshotvec_t + | x: qvector< snapshot_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -51862,20 +60320,26 @@ class qvector_snapshotvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< snapshot_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: snapshot_t *const & | | _del(self, *args) | _del(self, x) -> bool + | x: snapshot_t *const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: snapshot_t *const & | | at(self, *args) | at(self, _idx) -> snapshot_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -51899,49 +60363,70 @@ class qvector_snapshotvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< snapshot_t * >::iterator + | it: qvector< snapshot_t * >::iterator + | + | | erase(self, first, last) -> qvector< snapshot_t * >::iterator + | first: qvector< snapshot_t * >::iterator + | last: qvector< snapshot_t * >::iterator | | extract(self, *args) | extract(self) -> snapshot_t ** | | find(self, *args) | find(self, x) -> qvector< snapshot_t * >::iterator + | x: snapshot_t *const & + | + | | find(self, x) -> qvector< snapshot_t * >::const_iterator + | x: snapshot_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: snapshot_t *const & | | inject(self, *args) | inject(self, s, len) + | s: snapshot_t ** + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< snapshot_t * >::iterator + | it: qvector< snapshot_t * >::iterator + | x: snapshot_t *const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> snapshot_t *& + | x: snapshot_t *const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: snapshot_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< snapshot_t * > & | | truncate(self, *args) | truncate(self) @@ -51967,25 +60452,21 @@ class qvector_snapshotvec_t(__builtin__.object) 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 + reload_file(file, is_remote) -> bool + @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 @@ -51993,41 +60474,35 @@ run_plugin(*args) 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 + save_database(outfile, flags, root=None, attr=None) -> bool + @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) + set_database_flag(dbfl, cnd=True) + @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 *) + set_path(pt, 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: @@ -52038,24 +60513,30 @@ class snapshot_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: snapshot_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: snapshot_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: snapshot_t const & | | __init__(self, *args) | __init__(self) -> snapshot_t | | __le__(self, *args) | __le__(self, r) -> bool + | r: snapshot_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: snapshot_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: snapshot_t const & | | __repr__ = _swig_repr(self) | @@ -52149,43 +60630,43 @@ iterated data, etc) ida_loader.GENFLG_ASMINC """ - 'OFILE_ASM' , 'OFILE_LST' : gen information only about types +'OFILE_ASM' , 'OFILE_LST' : gen information only about types """ ida_loader.GENFLG_ASMTYPE """ - 'OFILE_ASM' , 'OFILE_LST' : gen information about types too +'OFILE_ASM' , 'OFILE_LST' : gen information about types too """ ida_loader.GENFLG_GENHTML """ - 'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' +'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' will be used) """ ida_loader.GENFLG_IDCTYPE """ - 'OFILE_IDC' : gen only information about types +'OFILE_IDC' : gen only information about types """ ida_loader.GENFLG_MAPDMNG """ - 'OFILE_MAP' : demangle names +'OFILE_MAP' : demangle names """ ida_loader.GENFLG_MAPLOC """ - 'OFILE_MAP' : include local names +'OFILE_MAP' : include local names """ ida_loader.GENFLG_MAPNAME """ - 'OFILE_MAP' : include dummy names +'OFILE_MAP' : include dummy names """ ida_loader.GENFLG_MAPSEG """ - 'OFILE_MAP' : generate map of segments +'OFILE_MAP' : generate map of segments """ ida_loader.LDRF_RELOAD @@ -52317,21 +60798,40 @@ class bookmarks_t(__builtin__.object) | | erase(*args) | erase(e, index, ud) -> bool + | e: lochist_entry_t const & + | index: uint32 + | ud: void * | | find_index(*args) | find_index(e, ud) -> uint32 + | e: lochist_entry_t const & + | ud: void * | | get(*args) | get(out_entry, out_desc, index, ud) -> bool + | out_entry: lochist_entry_t * + | out_desc: qstring * + | index: uint32 * + | ud: void * | | get_desc(*args) | get_desc(e, index, ud) -> bool + | e: lochist_entry_t const & + | index: uint32 + | ud: void * | | mark(*args) | mark(e, index, title, desc, ud) -> uint32 + | e: lochist_entry_t const & + | index: uint32 + | title: char const * + | desc: char const * + | ud: void * | | size(*args) | size(e, ud) -> uint32 + | e: lochist_entry_t const & + | ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52349,31 +60849,50 @@ Help on function bookmarks_t_erase in module ida_moves: bookmarks_t_erase(*args) bookmarks_t_erase(e, index, ud) -> bool + e: lochist_entry_t const & + index: uint32 + ud: void * Help on function bookmarks_t_find_index in module ida_moves: bookmarks_t_find_index(*args) bookmarks_t_find_index(e, ud) -> uint32 + e: lochist_entry_t const & + ud: void * Help on function bookmarks_t_get in module ida_moves: bookmarks_t_get(*args) bookmarks_t_get(out_entry, out_desc, index, ud) -> bool + out_entry: lochist_entry_t * + out_desc: qstring * + index: uint32 * + ud: void * Help on function bookmarks_t_get_desc in module ida_moves: bookmarks_t_get_desc(*args) bookmarks_t_get_desc(e, index, ud) -> str + e: lochist_entry_t const & + index: uint32 + ud: void * Help on function bookmarks_t_mark in module ida_moves: bookmarks_t_mark(*args) bookmarks_t_mark(e, index, title, desc, ud) -> uint32 + e: lochist_entry_t const & + index: uint32 + title: char const * + desc: char const * + ud: void * Help on function bookmarks_t_size in module ida_moves: bookmarks_t_size(*args) bookmarks_t_size(e, ud) -> uint32 + e: lochist_entry_t const & + ud: void * Help on class graph_location_info_t in module ida_moves: @@ -52384,12 +60903,14 @@ class graph_location_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: graph_location_info_t const & | | __init__(self, *args) | __init__(self) -> graph_location_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: graph_location_info_t const & | | __repr__ = _swig_repr(self) | @@ -52427,21 +60948,20 @@ class lochist_entry_t(__builtin__.object) | | 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 + | p: place_t const * + | r: renderer_info_t const & + | + | | __init__(self, other) -> lochist_entry_t - | - | __ne__(self, *args) - | __ne__(self, r) -> bool + | other: lochist_entry_t const & | | __repr__ = _swig_repr(self) | | acquire_place(self, *args) | acquire_place(self, in_p) + | @param in_p (C++: place_t *) | | is_valid(self, *args) | is_valid(self) -> bool @@ -52456,6 +60976,7 @@ class lochist_entry_t(__builtin__.object) | | set_place(self, *args) | set_place(self, p) + | @param p (C++: const place_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52495,6 +61016,8 @@ class lochist_t(__builtin__.object) | | back(self, *args) | back(self, cnt, try_to_unhide) -> bool + | @param cnt (C++: uint32) + | @param try_to_unhide (C++: bool) | | clear(self, *args) | clear(self) @@ -52504,9 +61027,13 @@ class lochist_t(__builtin__.object) | | fwd(self, *args) | fwd(self, cnt, try_to_unhide) -> bool + | @param cnt (C++: uint32) + | @param try_to_unhide (C++: bool) | | get(self, *args) | get(self, out, index) -> bool + | @param out (C++: lochist_entry_t *) + | @param index (C++: uint32) | | get_current(self, *args) | get_current(self) -> lochist_entry_t @@ -52519,12 +61046,18 @@ class lochist_t(__builtin__.object) | | init(self, *args) | init(self, stream_name, _defpos, _ud, _flags) -> bool + | @param stream_name (C++: const char *) + | @param _defpos (C++: const place_t *) + | @param _ud (C++: void *) + | @param _flags (C++: uint32) | | is_history_enabled(self, *args) | is_history_enabled(self) -> bool | | jump(self, *args) | jump(self, try_to_unhide, e) + | @param try_to_unhide (C++: bool) + | @param e (C++: const lochist_entry_t &) | | netcode(self, *args) | netcode(self) -> nodeidx_t @@ -52534,12 +61067,17 @@ class lochist_t(__builtin__.object) | | seek(self, *args) | seek(self, index, try_to_unhide) -> bool + | @param index (C++: uint32) + | @param try_to_unhide (C++: bool) | | set(self, *args) | set(self, index, e) + | @param index (C++: uint32) + | @param e (C++: const lochist_entry_t &) | | set_current(self, *args) | set_current(self, e) + | @param e (C++: const lochist_entry_t &) | | size(self, *args) | size(self) -> uint32 @@ -52571,12 +61109,14 @@ class renderer_info_pos_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: renderer_info_pos_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_pos_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: renderer_info_pos_t const & | | __repr__ = _swig_repr(self) | @@ -52616,12 +61156,14 @@ class renderer_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: renderer_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: renderer_info_t const & | | __repr__ = _swig_repr(self) | @@ -52664,12 +61206,17 @@ class segm_move_info_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: segm_move_info_t const & | | __init__(self, *args) | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t + | _from: ea_t + | _to: ea_t + | _sz: size_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: segm_move_info_t const & | | __repr__ = _swig_repr(self) | @@ -52709,13 +61256,15 @@ class segm_move_info_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> segm_move_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> segm_move_info_vec_t - | __init__(self, x) -> segm_move_info_vec_t + | 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. @@ -52725,20 +61274,26 @@ class segm_move_info_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: segm_move_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: segm_move_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: segm_move_info_t const & | | at(self, *args) | at(self, _idx) -> segm_move_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52762,52 +61317,74 @@ class segm_move_info_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | + | | erase(self, first, last) -> segm_move_info_t + | first: qvector< segm_move_info_t >::iterator + | last: qvector< segm_move_info_t >::iterator | | extract(self, *args) | extract(self) -> segm_move_info_t | | find(self, *args) | find(self, x) -> segm_move_info_t + | x: segm_move_info_t const & + | + | | find(self, x) -> segm_move_info_t + | x: segm_move_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=segm_move_info_t()) + | x: segm_move_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: segm_move_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: segm_move_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | x: segm_move_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> segm_move_info_t + | x: segm_move_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: segm_move_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< segm_move_info_t > & | | truncate(self, *args) | truncate(self) @@ -52849,6 +61426,7 @@ class segm_move_infos_t(segm_move_info_vec_t) | | find(self, *args) | find(self, ea) -> segm_move_info_t + | @param ea (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52867,9 +61445,11 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> segm_move_info_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -52879,18 +61459,24 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: segm_move_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: segm_move_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: segm_move_info_t const & | | at(self, *args) | at(self, _idx) -> segm_move_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52914,7 +61500,12 @@ class segm_move_infos_t(segm_move_info_vec_t) | | erase(self, *args) | erase(self, it) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | + | | erase(self, first, last) -> segm_move_info_t + | first: qvector< segm_move_info_t >::iterator + | last: qvector< segm_move_info_t >::iterator | | extract(self, *args) | extract(self) -> segm_move_info_t @@ -52924,38 +61515,51 @@ class segm_move_infos_t(segm_move_info_vec_t) | | grow(self, *args) | grow(self, x=segm_move_info_t()) + | x: segm_move_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: segm_move_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: segm_move_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | x: segm_move_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> segm_move_info_t + | x: segm_move_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: segm_move_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< segm_move_info_t > & | | truncate(self, *args) | truncate(self) @@ -52973,18 +61577,18 @@ Help on function get_switch_info in module ida_nalt: get_switch_info(*args) get_switch_info(out, ea) -> ssize_t + @param out (C++: switch_info_t *) + @param ea (C++: ea_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 + add_encoding(encoding) -> int + @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: @@ -53029,132 +61633,154 @@ Help on function clr__bnot0 in module ida_nalt: clr__bnot0(*args) clr__bnot0(ea) + @param ea (C++: ea_t) Help on function clr__bnot1 in module ida_nalt: clr__bnot1(*args) clr__bnot1(ea) + @param ea (C++: ea_t) Help on function clr__invsign0 in module ida_nalt: clr__invsign0(*args) clr__invsign0(ea) + @param ea (C++: ea_t) Help on function clr__invsign1 in module ida_nalt: clr__invsign1(*args) clr__invsign1(ea) + @param ea (C++: ea_t) Help on function clr_abits in module ida_nalt: clr_abits(*args) clr_abits(ea, bits) + @param ea (C++: ea_t) + @param bits (C++: uint32) Help on function clr_align_flow in module ida_nalt: clr_align_flow(*args) clr_align_flow(ea) + @param ea (C++: ea_t) Help on function clr_colored_item in module ida_nalt: clr_colored_item(*args) clr_colored_item(ea) + @param ea (C++: ea_t) Help on function clr_fixed_spd in module ida_nalt: clr_fixed_spd(*args) clr_fixed_spd(ea) + @param ea (C++: ea_t) Help on function clr_has_lname in module ida_nalt: clr_has_lname(*args) clr_has_lname(ea) + @param ea (C++: ea_t) Help on function clr_has_ti in module ida_nalt: clr_has_ti(*args) clr_has_ti(ea) + @param ea (C++: ea_t) Help on function clr_has_ti0 in module ida_nalt: clr_has_ti0(*args) clr_has_ti0(ea) + @param ea (C++: ea_t) Help on function clr_has_ti1 in module ida_nalt: clr_has_ti1(*args) clr_has_ti1(ea) + @param ea (C++: ea_t) Help on function clr_libitem in module ida_nalt: clr_libitem(*args) clr_libitem(ea) + @param ea (C++: ea_t) Help on function clr_lzero0 in module ida_nalt: clr_lzero0(*args) clr_lzero0(ea) + @param ea (C++: ea_t) Help on function clr_lzero1 in module ida_nalt: clr_lzero1(*args) clr_lzero1(ea) + @param ea (C++: ea_t) Help on function clr_noret in module ida_nalt: clr_noret(*args) clr_noret(ea) + @param ea (C++: ea_t) Help on function clr_notcode in module ida_nalt: clr_notcode(*args) - clr_notcode(ea) - - Clear not-code mark. - - @param ea (C++: ea_t) + clr_notcode(ea) + @param ea (C++: ea_t) Help on function clr_notproc in module ida_nalt: clr_notproc(*args) clr_notproc(ea) + @param ea (C++: ea_t) Help on function clr_retfp in module ida_nalt: clr_retfp(*args) clr_retfp(ea) + @param ea (C++: ea_t) Help on function clr_terse_struc in module ida_nalt: clr_terse_struc(*args) clr_terse_struc(ea) + @param ea (C++: ea_t) Help on function clr_tilcmt in module ida_nalt: clr_tilcmt(*args) clr_tilcmt(ea) + @param ea (C++: ea_t) Help on function clr_usemodsp in module ida_nalt: clr_usemodsp(*args) clr_usemodsp(ea) + @param ea (C++: ea_t) Help on function clr_usersp in module ida_nalt: clr_usersp(*args) clr_usersp(ea) + @param ea (C++: ea_t) Help on function clr_userti in module ida_nalt: clr_userti(*args) clr_userti(ea) + @param ea (C++: ea_t) Help on function clr_zstroff in module ida_nalt: clr_zstroff(*args) clr_zstroff(ea) + @param ea (C++: ea_t) Help on class custom_data_type_ids_fids_array in module ida_nalt: @@ -53165,9 +61791,11 @@ class custom_data_type_ids_fids_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> short const & + | i: size_t | | __init__(self, *args) | __init__(self, data) -> custom_data_type_ids_fids_array + | data: short (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53179,6 +61807,8 @@ class custom_data_type_ids_fids_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: short const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53216,6 +61846,10 @@ class custom_data_type_ids_t(__builtin__.object) | _custom_data_type_ids_t__getFids = __getFids(self, *args) | __getFids(self) -> custom_data_type_ids_fids_array | + | set(self, *args) + | set(self, tid) + | @param tid (C++: tid_t) + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -53243,121 +61877,122 @@ class custom_data_type_ids_t(__builtin__.object) 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) + @param ea (C++: ea_t) Help on function del_aflags in module ida_nalt: del_aflags(*args) del_aflags(ea) + @param ea (C++: ea_t) Help on function del_alignment in module ida_nalt: del_alignment(*args) del_alignment(ea) + @param ea (C++: ea_t) Help on function del_array_parameters in module ida_nalt: del_array_parameters(*args) del_array_parameters(ea) + @param ea (C++: ea_t) Help on function del_custom_data_type_ids in module ida_nalt: del_custom_data_type_ids(*args) del_custom_data_type_ids(ea) + @param ea (C++: ea_t) 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) + del_encoding(idx) -> bool + @param idx (C++: int) Help on function del_ind_purged in module ida_nalt: del_ind_purged(*args) del_ind_purged(ea) + @param ea (C++: ea_t) Help on function del_item_color in module ida_nalt: del_item_color(*args) del_item_color(ea) -> bool + @param ea (C++: ea_t) Help on function del_op_tinfo in module ida_nalt: del_op_tinfo(*args) del_op_tinfo(ea, n) + @param ea (C++: ea_t) + @param n (C++: int) Help on function del_refinfo in module ida_nalt: del_refinfo(*args) del_refinfo(ea, n) -> bool + @param ea (C++: ea_t) + @param n (C++: int) Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) del_source_linnum(ea) + @param ea (C++: ea_t) Help on function del_str_type in module ida_nalt: del_str_type(*args) del_str_type(ea) + @param ea (C++: ea_t) Help on function del_switch_info in module ida_nalt: del_switch_info(*args) del_switch_info(ea) + @param ea (C++: ea_t) Help on function del_switch_parent in module ida_nalt: del_switch_parent(*args) del_switch_parent(ea) + @param ea (C++: ea_t) Help on function del_tinfo in module ida_nalt: del_tinfo(*args) del_tinfo(ea) + @param ea (C++: ea_t) 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) + ea2node(ea) -> nodeidx_t + @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) + encoding_from_strtype(strtype) -> char const * + @param strtype (C++: int32) Help on class enum_const_t in module ida_nalt: @@ -53399,8 +62034,6 @@ 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. @@ -53411,13 +62044,10 @@ enum_import_names(*args) 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 *) + find_custom_refinfo(name) -> int + @param name (C++: const char *) Help on function get_abi_name in module ida_nalt: @@ -53427,96 +62057,85 @@ Help on function get_absbase in module ida_nalt: get_absbase(*args) get_absbase(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_aflags in module ida_nalt: get_aflags(*args) get_aflags(ea) -> uint32 + @param ea (C++: ea_t) Help on function get_alignment in module ida_nalt: get_alignment(*args) get_alignment(ea) -> uint32 + @param ea (C++: ea_t) 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 + @param out (C++: array_parameters_t *) + @param ea (C++: ea_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 + @param cdis (C++: custom_data_type_ids_t *) + @param ea (C++: ea_t) 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) + get_custom_refinfo(crid) -> custom_refinfo_handler_t const * + @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) + get_default_encoding_idx(bpu) -> int + @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 + get_encoding_bpu(idx) -> int + @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 + get_encoding_name(idx) -> char const * + @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: @@ -53527,65 +62146,53 @@ get_gotea(*args) 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 + @param ea (C++: 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 + @param ea (C++: ea_t) Help on function get_op_tinfo in module ida_nalt: get_op_tinfo(*args) get_op_tinfo(tif, ea, n) -> bool + @param tif (C++: tinfo_t *) + @param ea (C++: ea_t) + @param n (C++: int) 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 @@ -53593,66 +62200,73 @@ Help on function get_refinfo in module ida_nalt: get_refinfo(*args) get_refinfo(ri, ea, n) -> bool + @param ri (C++: refinfo_t *) + @param ea (C++: ea_t) + @param n (C++: int) 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) + get_reftype_by_size(size) -> reftype_t + @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 + @param ea (C++: ea_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) + get_str_encoding_idx(strtype) -> uchar + @param strtype (C++: int32) Help on function get_str_term1 in module ida_nalt: get_str_term1(*args) get_str_term1(strtype) -> char + @param strtype (C++: int32) Help on function get_str_term2 in module ida_nalt: get_str_term2(*args) get_str_term2(strtype) -> char + @param strtype (C++: int32) Help on function get_str_type in module ida_nalt: get_str_type(*args) get_str_type(ea) -> uint32 + @param ea (C++: ea_t) Help on function get_str_type_code in module ida_nalt: get_str_type_code(*args) get_str_type_code(strtype) -> uchar + @param strtype (C++: int32) + +Help on function get_str_type_prefix_length in module ida_nalt: + +get_str_type_prefix_length(*args) + get_str_type_prefix_length(strtype) -> size_t + @param strtype (C++: int32) Help on function get_strtype_bpu in module ida_nalt: get_strtype_bpu(*args) get_strtype_bpu(strtype) -> int + @param strtype (C++: int32) Help on function get_switch_info in module ida_nalt: @@ -53662,200 +62276,220 @@ Help on function get_switch_parent in module ida_nalt: get_switch_parent(*args) get_switch_parent(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_tinfo in module ida_nalt: get_tinfo(*args) get_tinfo(tif, ea) -> bool + @param tif (C++: tinfo_t *) + @param ea (C++: ea_t) Help on function getnode in module ida_nalt: getnode(*args) getnode(ea) -> netnode + @param ea (C++: ea_t) Help on function has_lname in module ida_nalt: has_lname(*args) has_lname(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti in module ida_nalt: has_ti(*args) has_ti(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti0 in module ida_nalt: has_ti0(*args) has_ti0(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti1 in module ida_nalt: has_ti1(*args) has_ti1(ea) -> bool + @param ea (C++: ea_t) Help on function hide_border in module ida_nalt: hide_border(*args) hide_border(ea) + @param ea (C++: ea_t) Help on function hide_item in module ida_nalt: hide_item(*args) hide_item(ea) + @param ea (C++: ea_t) Help on function is__bnot0 in module ida_nalt: is__bnot0(*args) is__bnot0(ea) -> bool + @param ea (C++: ea_t) Help on function is__bnot1 in module ida_nalt: is__bnot1(*args) is__bnot1(ea) -> bool + @param ea (C++: ea_t) Help on function is__invsign0 in module ida_nalt: is__invsign0(*args) is__invsign0(ea) -> bool + @param ea (C++: ea_t) Help on function is__invsign1 in module ida_nalt: is__invsign1(*args) is__invsign1(ea) -> bool + @param ea (C++: ea_t) Help on function is_align_flow in module ida_nalt: is_align_flow(*args) is_align_flow(ea) -> bool + @param ea (C++: ea_t) Help on function is_colored_item in module ida_nalt: is_colored_item(*args) is_colored_item(ea) -> bool + @param ea (C++: ea_t) 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) + is_finally_visible_item(ea) -> bool + @param ea (C++: ea_t) Help on function is_fixed_spd in module ida_nalt: is_fixed_spd(*args) is_fixed_spd(ea) -> bool + @param ea (C++: ea_t) Help on function is_hidden_border in module ida_nalt: is_hidden_border(*args) is_hidden_border(ea) -> bool + @param ea (C++: ea_t) Help on function is_hidden_item in module ida_nalt: is_hidden_item(*args) is_hidden_item(ea) -> bool + @param ea (C++: ea_t) Help on function is_libitem in module ida_nalt: is_libitem(*args) is_libitem(ea) -> bool + @param ea (C++: ea_t) Help on function is_lzero0 in module ida_nalt: is_lzero0(*args) is_lzero0(ea) -> bool + @param ea (C++: ea_t) Help on function is_lzero1 in module ida_nalt: is_lzero1(*args) is_lzero1(ea) -> bool + @param ea (C++: ea_t) Help on function is_noret in module ida_nalt: is_noret(*args) is_noret(ea) -> bool + @param ea (C++: ea_t) 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) + is_notcode(ea) -> bool + @param ea (C++: ea_t) Help on function is_notproc in module ida_nalt: is_notproc(*args) is_notproc(ea) -> bool + @param ea (C++: ea_t) Help on function is_pascal in module ida_nalt: is_pascal(*args) is_pascal(strtype) -> bool + @param strtype (C++: int32) 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) + is_reftype_target_optional(type) -> bool + @param type (C++: reftype_t) Help on function is_retfp in module ida_nalt: is_retfp(*args) is_retfp(ea) -> bool + @param ea (C++: ea_t) Help on function is_terse_struc in module ida_nalt: is_terse_struc(*args) is_terse_struc(ea) -> bool + @param ea (C++: ea_t) Help on function is_tilcmt in module ida_nalt: is_tilcmt(*args) is_tilcmt(ea) -> bool + @param ea (C++: ea_t) Help on function is_usersp in module ida_nalt: is_usersp(*args) is_usersp(ea) -> bool + @param ea (C++: ea_t) Help on function is_userti in module ida_nalt: is_userti(*args) is_userti(ea) -> bool + @param ea (C++: ea_t) 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) + is_visible_item(ea) -> bool + @param ea (C++: ea_t) Help on function is_zstroff in module ida_nalt: is_zstroff(*args) is_zstroff(ea) -> bool + @param ea (C++: ea_t) Help on function node2ea in module ida_nalt: node2ea(*args) node2ea(ndx) -> ea_t + @param ndx (C++: nodeidx_t) Help on class opinfo_t in module ida_nalt: @@ -53928,9 +62562,11 @@ class printop_t(__builtin__.object) | | set_aflags_initialized(self, *args) | set_aflags_initialized(self, v=True) + | @param v (C++: bool) | | set_ti_initialized(self, *args) | set_ti_initialized(self, v=True) + | @param v (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -53982,6 +62618,10 @@ class refinfo_t(__builtin__.object) | | init(self, *args) | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) + | @param reft_and_flags (C++: uint32) + | @param _base (C++: ea_t) + | @param _target (C++: ea_t) + | @param _tdelta (C++: adiff_t) | | is_custom(self, *args) | is_custom(self) -> bool @@ -53999,13 +62639,14 @@ class refinfo_t(__builtin__.object) | is_subtract(self) -> bool | | is_target_optional(self, *args) - | is_target_optional(self) -> bool + | < 'is_reftype_target_optional()' | | no_base_xref(self, *args) | no_base_xref(self) -> bool | | set_type(self, *args) - | set_type(self, t) + | set_type(self, rt) + | @param rt (C++: reftype_t) | | type(self, *args) | type(self) -> reftype_t @@ -54043,343 +62684,363 @@ class refinfo_t(__builtin__.object) 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 *) + rename_encoding(idx, encoding) -> bool + @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) + @param ea (C++: ea_t) Help on function set__bnot1 in module ida_nalt: set__bnot1(*args) set__bnot1(ea) + @param ea (C++: ea_t) Help on function set__invsign0 in module ida_nalt: set__invsign0(*args) set__invsign0(ea) + @param ea (C++: ea_t) Help on function set__invsign1 in module ida_nalt: set__invsign1(*args) set__invsign1(ea) + @param ea (C++: ea_t) Help on function set_abits in module ida_nalt: set_abits(*args) set_abits(ea, bits) + @param ea (C++: ea_t) + @param bits (C++: uint32) Help on function set_absbase in module ida_nalt: set_absbase(*args) set_absbase(ea, x) + @param ea (C++: ea_t) + @param x (C++: ea_t) Help on function set_aflags in module ida_nalt: set_aflags(*args) set_aflags(ea, flags) + @param ea (C++: ea_t) + @param flags (C++: uint32) Help on function set_align_flow in module ida_nalt: set_align_flow(*args) set_align_flow(ea) + @param ea (C++: ea_t) Help on function set_alignment in module ida_nalt: set_alignment(*args) set_alignment(ea, x) + @param ea (C++: ea_t) + @param x (C++: uint32) 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 *) + set_archive_path(file) -> bool + @param file (C++: const char *) Help on function set_array_parameters in module ida_nalt: set_array_parameters(*args) set_array_parameters(ea, _in) + @param ea (C++: ea_t) + in: array_parameters_t const * 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 *) + set_asm_inc_file(file) -> bool + @param file (C++: const char *) Help on function set_colored_item in module ida_nalt: set_colored_item(*args) set_colored_item(ea) + @param ea (C++: ea_t) 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) + @param ea (C++: ea_t) + @param cdis (C++: const custom_data_type_ids_t *) 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) + set_default_encoding_idx(bpu, idx) -> bool + @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) + @param ea (C++: ea_t) Help on function set_gotea in module ida_nalt: set_gotea(*args) set_gotea(gotea) + @param gotea (C++: ea_t) Help on function set_has_lname in module ida_nalt: set_has_lname(*args) set_has_lname(ea) + @param ea (C++: ea_t) Help on function set_has_ti in module ida_nalt: set_has_ti(*args) set_has_ti(ea) + @param ea (C++: ea_t) Help on function set_has_ti0 in module ida_nalt: set_has_ti0(*args) set_has_ti0(ea) + @param ea (C++: ea_t) Help on function set_has_ti1 in module ida_nalt: set_has_ti1(*args) set_has_ti1(ea) + @param ea (C++: ea_t) 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) + set_ids_modnode(id) + @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) + set_imagebase(base) + @param base (C++: ea_t) Help on function set_item_color in module ida_nalt: set_item_color(*args) set_item_color(ea, color) + @param ea (C++: ea_t) + @param color (C++: bgcolor_t) Help on function set_libitem in module ida_nalt: set_libitem(*args) set_libitem(ea) + @param ea (C++: ea_t) Help on function set_lzero0 in module ida_nalt: set_lzero0(*args) set_lzero0(ea) + @param ea (C++: ea_t) Help on function set_lzero1 in module ida_nalt: set_lzero1(*args) set_lzero1(ea) + @param ea (C++: ea_t) Help on function set_noret in module ida_nalt: set_noret(*args) set_noret(ea) + @param ea (C++: ea_t) 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) + set_notcode(ea) + @param ea (C++: ea_t) Help on function set_notproc in module ida_nalt: set_notproc(*args) set_notproc(ea) + @param ea (C++: ea_t) Help on function set_op_tinfo in module ida_nalt: set_op_tinfo(*args) set_op_tinfo(ea, n, tif) -> bool + @param ea (C++: ea_t) + @param n (C++: int) + @param tif (C++: const tinfo_t *) 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) + set_outfile_encoding_idx(idx) -> bool + @param idx: + Help on function set_refinfo in module ida_nalt: set_refinfo(*args) set_refinfo(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + @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 set_refinfo_ex in module ida_nalt: set_refinfo_ex(*args) set_refinfo_ex(ea, n, ri) -> bool + @param ea (C++: ea_t) + @param n (C++: int) + @param ri (C++: const refinfo_t *) Help on function set_retfp in module ida_nalt: set_retfp(*args) set_retfp(ea) + @param ea (C++: ea_t) 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 *) + set_root_filename(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) + @param ea (C++: ea_t) + @param lnnum (C++: uval_t) Help on function set_str_type in module ida_nalt: set_str_type(*args) set_str_type(ea, x) + @param ea (C++: ea_t) + @param x (C++: uint32) Help on function set_switch_info in module ida_nalt: set_switch_info(*args) set_switch_info(ea, _in) + @param ea (C++: ea_t) + in: switch_info_t const & Help on function set_switch_parent in module ida_nalt: set_switch_parent(*args) set_switch_parent(ea, x) + @param ea (C++: ea_t) + @param x (C++: ea_t) Help on function set_terse_struc in module ida_nalt: set_terse_struc(*args) set_terse_struc(ea) + @param ea (C++: ea_t) Help on function set_tilcmt in module ida_nalt: set_tilcmt(*args) set_tilcmt(ea) + @param ea (C++: ea_t) Help on function set_tinfo in module ida_nalt: set_tinfo(*args) set_tinfo(ea, tif) -> bool + @param ea (C++: ea_t) + @param tif (C++: const tinfo_t *) Help on function set_usemodsp in module ida_nalt: set_usemodsp(*args) set_usemodsp(ea) + @param ea (C++: ea_t) Help on function set_usersp in module ida_nalt: set_usersp(*args) set_usersp(ea) + @param ea (C++: ea_t) Help on function set_userti in module ida_nalt: set_userti(*args) set_userti(ea) + @param ea (C++: ea_t) 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) + set_visible_item(ea, visible) + @param ea (C++: ea_t) + @param visible (C++: bool) Help on function set_zstroff in module ida_nalt: set_zstroff(*args) set_zstroff(ea) + @param ea (C++: ea_t) Help on class strpath_ids_array in module ida_nalt: @@ -54390,9 +63051,11 @@ class strpath_ids_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t | | __init__(self, *args) | __init__(self, data) -> strpath_ids_array + | 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. @@ -54404,6 +63067,8 @@ class strpath_ids_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: unsigned-ea-like-numeric-type const &↗ | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -54485,15 +63150,21 @@ class switch_info_t(__builtin__.object) | | _set_values_lowcase(self, *args) | _set_values_lowcase(self, values) + | values: ea_t | | assign(self, *args) | assign(self, other) + | other: switch_info_t const & | | clear(self, *args) | clear(self) | | get_jrange_vrange(self, *args) + | get separate parts of the switch + | | get_jrange_vrange(self, jrange=None, vrange=None) -> bool + | @param jrange (C++: range_t *) + | @param vrange (C++: range_t *) | | get_jtable_element_size(self, *args) | get_jtable_element_size(self) -> int @@ -54505,7 +63176,7 @@ class switch_info_t(__builtin__.object) | get_lowcase(self) -> sval_t | | get_shift(self, *args) - | get_shift(self) -> int + | See 'SWI_SHIFT_MASK' . possible answers: 0..3. | | get_version(self, *args) | get_version(self) -> int @@ -54536,21 +63207,30 @@ class switch_info_t(__builtin__.object) | | set_elbase(self, *args) | set_elbase(self, base) + | @param base (C++: ea_t) | | set_expr(self, *args) | set_expr(self, r, dt) + | @param r (C++: int) + | @param dt (C++: op_dtype_t) | | set_jtable_element_size(self, *args) | set_jtable_element_size(self, size) + | @param size (C++: int) | | set_jtable_size(self, *args) | set_jtable_size(self, size) + | @param size (C++: int) | | set_shift(self, *args) + | See 'SWI_SHIFT_MASK' . + | | set_shift(self, shift) + | @param shift (C++: int) | | set_vtable_element_size(self, *args) | set_vtable_element_size(self, size) + | @param size (C++: int) | | use_std_table(self, *args) | use_std_table(self) -> bool @@ -54624,26 +63304,31 @@ 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 + ptrval: size_t Help on function unhide_border in module ida_nalt: unhide_border(*args) unhide_border(ea) + @param ea (C++: ea_t) Help on function unhide_item in module ida_nalt: unhide_item(*args) unhide_item(ea) + @param ea (C++: ea_t) Help on function uses_modsp in module ida_nalt: uses_modsp(*args) uses_modsp(ea) -> bool + @param ea (C++: ea_t) Help on function validate_idb_names in module ida_nalt: validate_idb_names(*args) validate_idb_names(do_repair) -> int + do_repair: bool === ida_nalt EPYDOC INJECTIONS === ida_nalt.AFL_ALIGNFLOW @@ -55576,24 +64261,22 @@ class NearestName(__builtin__.object) 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 + append_struct_fields(disp, n, path, flags, delta, appzero) -> str + @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: @@ -55609,36 +64292,41 @@ Help on function cleanup_name in module ida_name: cleanup_name(*args) cleanup_name(ea, name, flags=0) -> str + @param ea (C++: ea_t) + @param name (C++: const char *) + @param flags (C++: uint32) Help on function del_debug_names in module ida_name: del_debug_names(*args) del_debug_names(ea1, ea2) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) Help on function del_global_name in module ida_name: del_global_name(*args) del_global_name(ea) -> bool + @param ea (C++: ea_t) Help on function del_local_name in module ida_name: del_local_name(*args) del_local_name(ea) -> bool + @param ea (C++: ea_t) 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 + demangle_name(name, disable_mask, demreq=DQT_FULL) -> str + @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: @@ -55649,7 +64337,8 @@ class ea_name_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> ea_name_t - | __init__(self, _ea, _name) -> ea_name_t + | _ea: ea_t + | _name: qstring const & | | __repr__ = _swig_repr(self) | @@ -55686,10 +64375,11 @@ class ea_name_vec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> ea_name_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ea_name_vec_t - | __init__(self, x) -> ea_name_vec_t + | 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. @@ -55701,9 +64391,12 @@ class ea_name_vec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: ea_name_t const & | | at(self, *args) | at(self, _idx) -> ea_name_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -55727,7 +64420,12 @@ class ea_name_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> ea_name_t + | it: qvector< ea_name_t >::iterator + | + | | erase(self, first, last) -> ea_name_t + | first: qvector< ea_name_t >::iterator + | last: qvector< ea_name_t >::iterator | | extract(self, *args) | extract(self) -> ea_name_t @@ -55737,35 +64435,47 @@ class ea_name_vec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=ea_name_t()) + | x: ea_name_t const & | | inject(self, *args) | inject(self, s, len) + | s: ea_name_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> ea_name_t + | it: qvector< ea_name_t >::iterator + | x: ea_name_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> ea_name_t + | x: ea_name_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: ea_name_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< ea_name_t > & | | truncate(self, *args) | truncate(self) @@ -55791,506 +64501,488 @@ class ea_name_vec_t(__builtin__.object) 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 + extract_name(line, x) -> str + @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 + @param ea (C++: ea_t) + @param name (C++: const char *) + @param flags (C++: int) 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 + @param ea (C++: ea_t) + @param inhibitor (C++: int32) + @param demform (C++: int) + @param gtn_flags (C++: int) 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 + @param ea (C++: ea_t) + @param gtn_flags (C++: int) Help on function get_colored_name in module ida_name: get_colored_name(*args) get_colored_name(ea) -> qstring + @param ea (C++: ea_t) 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 + @param ea (C++: ea_t) + @param gtn_flags (C++: int) 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) + get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool + @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 + @param ea_ptr (C++: ea_t *) + @param how (C++: debug_name_how_t) Help on function get_debug_name_ea in module ida_name: get_debug_name_ea(*args) get_debug_name_ea(name) -> ea_t + @param name (C++: const char *) Help on function get_debug_names in module ida_name: get_debug_names(*args) get_debug_names(names, ea1, ea2) + @param names (C++: ea_name_vec_t *) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + + get_debug_names(ea1, ea2, return_list=False) -> PyObject * + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + return_list: bool Help on function get_demangled_name in module ida_name: get_demangled_name(*args) get_demangled_name(ea, inhibitor, demform, gtn_flags=0) -> qstring + @param ea (C++: ea_t) + @param inhibitor (C++: int32) + @param demform (C++: int) + @param gtn_flags (C++: int) 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 + get_ea_name(ea, gtn_flags=0) -> qstring + @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 + @param ea (C++: ea_t) + @param gtn_flags (C++: int) Help on function get_name in module ida_name: get_name(*args) get_name(ea) -> qstring + @param ea (C++: ea_t) 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 + get_name_base_ea(_from, to) -> ea_t + @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) + get_name_color(_from, ea) -> color_t + @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 + get_name_ea(_from, name) -> ea_t + @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. + get_name_expr(_from, n, ea, off, flags=0x0001) -> str + @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 + get_name_value(_from, name) -> int + @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. + get_nice_colored_name(ea, flags=0) -> str + @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) + get_nlist_ea(idx) -> ea_t + @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) + get_nlist_idx(ea) -> size_t + @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) + get_nlist_name(idx) -> char const * + @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 + @param ea (C++: ea_t) + @param gtn_flags (C++: int) Help on function get_visible_name in module ida_name: get_visible_name(*args) get_visible_name(ea, gtn_flags=0) -> qstring + @param ea (C++: ea_t) + @param gtn_flags (C++: int) 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) + hide_name(ea) + @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 *) + is_ident(name) -> bool + @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) + is_ident_cp(cp) -> bool + @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) + is_in_nlist(ea) -> bool + @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 + is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool + @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 + @param ea (C++: ea_t) 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 *) + is_strlit_cp(cp, specific_ranges=None) -> bool + @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 *) + is_uname(name) -> bool + @param name: name to test. may be NULL. (C++: const char *) + @retval: 1 - yes + @retval: 0 - no 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 *) + is_valid_cp(cp, kind, data=None) -> bool + @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 *) + is_valid_typename(name) -> bool + @param name: name to test. may be NULL. (C++: const char *) + @retval: 1 - yes + @retval: 0 - no 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) + is_visible_cp(cp) -> bool + @param cp (C++: wchar32_t) Help on function is_weak_name in module ida_name: is_weak_name(*args) is_weak_name(ea) -> bool + @param ea (C++: ea_t) Help on function make_name_auto in module ida_name: make_name_auto(*args) make_name_auto(ea) -> bool + @param ea (C++: ea_t) Help on function make_name_non_public in module ida_name: make_name_non_public(*args) make_name_non_public(ea) + @param ea (C++: ea_t) Help on function make_name_non_weak in module ida_name: make_name_non_weak(*args) make_name_non_weak(ea) + @param ea (C++: ea_t) Help on function make_name_public in module ida_name: make_name_public(*args) make_name_public(ea) + @param ea (C++: ea_t) Help on function make_name_user in module ida_name: make_name_user(*args) make_name_user(ea) -> bool + @param ea (C++: ea_t) Help on function make_name_weak in module ida_name: make_name_weak(*args) make_name_weak(ea) + @param ea (C++: ea_t) 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) + set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) + @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 + @param ea (C++: ea_t) + @param name (C++: const char *) 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) + set_dummy_name(_from, ea) -> bool + @param _from: linear address of the operand which references to the + address (C++: ea_t) + @param ea: linear address (C++: ea_t) + @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) - 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) + set_name(ea, name, flags=0) -> bool + @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) + @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) - show_name(ea) - - Insert name to the list of names. - - @param ea (C++: ea_t) + show_name(ea) + @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 + validate_name(name, type, flags=0) -> PyObject * + @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 @@ -56556,6 +65248,7 @@ Help on function exist in module ida_netnode: exist(*args) exist(n) -> bool + n: netnode const & Help on class netnode in module ida_netnode: @@ -56566,176 +65259,293 @@ class netnode(__builtin__.object) | | __eq__(self, *args) | __eq__(self, n) -> bool + | n: netnode & + | + | | __eq__(self, x) -> bool + | x: nodeidx_t | | __init__(self, *args) - | __init__(self) -> netnode - | __init__(self, num) -> netnode + | __init__(self, num=nodeidx_t(-1)) -> netnode + | num: nodeidx_t + | + | | __init__(self, _name, namlen=0, do_create=False) -> netnode + | _name: char const * + | namlen: size_t + | do_create: bool | | __ne__(self, *args) | __ne__(self, n) -> bool + | n: netnode & + | + | | __ne__(self, x) -> bool + | x: nodeidx_t | | __repr__ = _swig_repr(self) | | altdel(self, *args) | altdel(self, alt, tag=atag) -> bool - | altdel(self) -> bool + | alt: nodeidx_t + | tag: uchar | | altdel_all(self, *args) - | altdel_all(self, tag) -> bool + | altdel_all(self, tag=atag) -> bool + | tag: uchar | | altdel_ea(self, *args) | altdel_ea(self, ea, tag=atag) -> bool + | ea: ea_t + | tag: uchar | | altdel_idx8(self, *args) | altdel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | altfirst(self, *args) | altfirst(self, tag=atag) -> nodeidx_t + | tag: uchar | | altfirst_idx8(self, *args) | altfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | altlast(self, *args) | altlast(self, tag=atag) -> nodeidx_t + | tag: uchar | | altlast_idx8(self, *args) | altlast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | altnext(self, *args) | altnext(self, cur, tag=atag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | altnext_idx8(self, *args) | altnext_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | altprev(self, *args) | altprev(self, cur, tag=atag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | altprev_idx8(self, *args) | altprev_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | altset(self, *args) | altset(self, alt, value, tag=atag) -> bool + | alt: nodeidx_t + | value: nodeidx_t + | tag: uchar | | altset_ea(self, *args) | altset_ea(self, ea, value, tag=atag) -> bool + | ea: ea_t + | value: nodeidx_t + | tag: uchar | | altset_idx8(self, *args) | altset_idx8(self, alt, val, tag) -> bool + | alt: uchar + | val: nodeidx_t + | tag: uchar | | altshift(self, *args) | altshift(self, _from, to, size, tag=atag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | altval(self, *args) | altval(self, alt, tag=atag) -> nodeidx_t + | alt: nodeidx_t + | tag: uchar | | altval_ea(self, *args) | altval_ea(self, ea, tag=atag) -> nodeidx_t + | ea: ea_t + | tag: uchar | | altval_idx8(self, *args) | altval_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | blobsize(self, *args) | blobsize(self, _start, tag) -> size_t + | _start: nodeidx_t + | tag: uchar | | blobsize_ea(self, *args) | blobsize_ea(self, ea, tag) -> size_t + | ea: ea_t + | tag: uchar | | chardel(self, *args) | chardel(self, alt, tag) -> bool + | alt: nodeidx_t + | tag: uchar | | chardel_ea(self, *args) | chardel_ea(self, ea, tag) -> bool + | ea: ea_t + | tag: uchar | | chardel_idx8(self, *args) | chardel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | charfirst(self, *args) | charfirst(self, tag) -> nodeidx_t + | tag: uchar | | charfirst_idx8(self, *args) | charfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | charlast(self, *args) | charlast(self, tag) -> nodeidx_t + | tag: uchar | | charlast_idx8(self, *args) | charlast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | charnext(self, *args) | charnext(self, cur, tag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | charnext_idx8(self, *args) | charnext_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | charprev(self, *args) | charprev(self, cur, tag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | charprev_idx8(self, *args) | charprev_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | charset(self, *args) | charset(self, alt, val, tag) -> bool + | alt: nodeidx_t + | val: uchar + | tag: uchar | | charset_ea(self, *args) | charset_ea(self, ea, val, tag) -> bool + | ea: ea_t + | val: uchar + | tag: uchar | | charset_idx8(self, *args) | charset_idx8(self, alt, val, tag) -> bool + | alt: uchar + | val: uchar + | tag: uchar | | charshift(self, *args) | charshift(self, _from, to, size, tag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | charval(self, *args) | charval(self, alt, tag) -> uchar + | alt: nodeidx_t + | tag: uchar | | charval_ea(self, *args) | charval_ea(self, ea, tag) -> uchar + | ea: ea_t + | tag: uchar | | charval_idx8(self, *args) | charval_idx8(self, alt, tag) -> uchar + | alt: uchar + | tag: uchar | | copyto(self, *args) | copyto(self, target, count=1) -> size_t + | target: netnode + | count: nodeidx_t | | create(self, *args) | create(self, _name, namlen=0) -> bool - | create(self) -> bool + | _name: char const * + | namlen: size_t | | delblob(self, *args) | delblob(self, _start, tag) -> int + | _start: nodeidx_t + | tag: uchar | | delblob_ea(self, *args) | delblob_ea(self, ea, tag) -> int + | ea: ea_t + | tag: uchar | | delvalue(self, *args) | delvalue(self) -> bool | | eadel(self, *args) | eadel(self, ea, tag) -> bool + | ea: ea_t + | tag: uchar | | eadel_idx8(self, *args) | eadel_idx8(self, idx, tag) -> bool + | idx: uchar + | tag: uchar | | eaget(self, *args) | eaget(self, ea, tag) -> ea_t + | ea: ea_t + | tag: uchar | | eaget_idx(self, *args) | eaget_idx(self, idx, tag) -> ea_t + | idx: nodeidx_t + | tag: uchar | | eaget_idx8(self, *args) | eaget_idx8(self, idx, tag) -> ea_t + | idx: uchar + | tag: uchar | | easet(self, *args) | easet(self, ea, addr, tag) -> bool + | ea: ea_t + | addr: ea_t + | tag: uchar | | easet_idx(self, *args) | easet_idx(self, idx, addr, tag) -> bool + | idx: nodeidx_t + | addr: ea_t + | tag: uchar | | easet_idx8(self, *args) | easet_idx8(self, idx, addr, tag) -> bool + | idx: uchar + | addr: ea_t + | tag: uchar | | end(self, *args) | end(self) -> bool @@ -56745,51 +65555,83 @@ class netnode(__builtin__.object) | | getblob(self, *args) | getblob(self, start, tag) -> PyObject * + | start: nodeidx_t + | tag: char | | getblob_ea(self, *args) | getblob_ea(self, ea, tag) -> PyObject * + | ea: ea_t + | tag: char | | getclob(self, *args) | getclob(self, start, tag) -> PyObject * + | start: nodeidx_t + | tag: char | | hashdel(self, *args) | hashdel(self, idx, tag=htag) -> bool + | idx: char const * + | tag: uchar | | hashdel_all(self, *args) | hashdel_all(self, tag=htag) -> bool + | tag: uchar | | hashfirst(self, *args) | hashfirst(self, tag=htag) -> ssize_t + | tag: uchar | | hashlast(self, *args) | hashlast(self, tag=htag) -> ssize_t + | tag: uchar | | hashnext(self, *args) | hashnext(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashprev(self, *args) | hashprev(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashset(self, *args) | hashset(self, idx, value, tag=htag) -> bool + | idx: char const * + | value: void const * + | tag: uchar | | hashset_buf(self, *args) | hashset_buf(self, idx, py_str, tag=htag) -> bool + | idx: char const * + | py_str: PyObject * + | tag: char | | hashset_idx(self, *args) | hashset_idx(self, idx, value, tag=htag) -> bool + | idx: char const * + | value: nodeidx_t + | tag: uchar | | hashstr(self, *args) | hashstr(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashstr_buf(self, *args) | hashstr_buf(self, idx, tag=htag) -> PyObject * + | idx: char const * + | tag: char | | hashval(self, *args) | hashval(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashval_long(self, *args) | hashval_long(self, idx, tag=htag) -> nodeidx_t + | idx: char const * + | tag: uchar | | index(self, *args) | index(self) -> nodeidx_t @@ -56802,15 +65644,23 @@ class netnode(__builtin__.object) | | lower_bound(self, *args) | lower_bound(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | lower_bound_ea(self, *args) | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t + | ea: ea_t + | tag: uchar | | lower_bound_idx8(self, *args) | lower_bound_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | moveto(self, *args) | moveto(self, target, count=1) -> size_t + | target: netnode + | count: nodeidx_t | | next(self, *args) | next(self) -> bool @@ -56820,94 +65670,153 @@ class netnode(__builtin__.object) | | rename(self, *args) | rename(self, newname, namlen=0) -> bool + | newname: char const * + | namlen: size_t | | set(self, *args) | set(self, value) -> bool + | value: void const * | | set_long(self, *args) | set_long(self, x) -> bool + | x: nodeidx_t | | setblob(self, *args) | setblob(self, buf, _start, tag) -> bool + | buf: void const * + | _start: nodeidx_t + | tag: uchar | | setblob_ea(self, *args) | setblob_ea(self, buf, ea, tag) -> bool + | buf: void const * + | ea: ea_t + | tag: uchar | | start(self, *args) | start(self) -> bool | | supdel(self, *args) | supdel(self, alt, tag=stag) -> bool - | supdel(self) -> bool + | alt: nodeidx_t + | tag: uchar | | supdel_all(self, *args) | supdel_all(self, tag) -> bool + | tag: uchar | | supdel_ea(self, *args) | supdel_ea(self, ea, tag=stag) -> bool + | ea: ea_t + | tag: uchar | | supdel_idx8(self, *args) | supdel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | supdel_range(self, *args) | supdel_range(self, idx1, idx2, tag) -> int + | idx1: nodeidx_t + | idx2: nodeidx_t + | tag: uchar | | supdel_range_idx8(self, *args) | supdel_range_idx8(self, idx1, idx2, tag) -> int + | idx1: uchar + | idx2: uchar + | tag: uchar | | supfirst(self, *args) | supfirst(self, tag=stag) -> nodeidx_t + | tag: uchar | | supfirst_idx8(self, *args) | supfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | suplast(self, *args) | suplast(self, tag=stag) -> nodeidx_t + | tag: uchar | | suplast_idx8(self, *args) | suplast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | supnext(self, *args) | supnext(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | supnext_idx8(self, *args) | supnext_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | supprev(self, *args) | supprev(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | supprev_idx8(self, *args) | supprev_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | supset(self, *args) | supset(self, alt, value, tag=stag) -> bool + | alt: nodeidx_t + | value: void const * + | tag: uchar | | supset_ea(self, *args) | supset_ea(self, ea, value, tag=stag) -> bool + | ea: ea_t + | value: void const * + | tag: uchar | | supset_idx8(self, *args) | supset_idx8(self, alt, value, tag) -> bool + | alt: uchar + | value: void const * + | tag: uchar | | supshift(self, *args) | supshift(self, _from, to, size, tag=stag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | supstr(self, *args) | supstr(self, alt, tag=stag) -> ssize_t + | alt: nodeidx_t + | tag: uchar | | supstr_ea(self, *args) | supstr_ea(self, ea, tag=stag) -> ssize_t + | ea: ea_t + | tag: uchar | | supstr_idx8(self, *args) | supstr_idx8(self, alt, tag) -> ssize_t + | alt: uchar + | tag: uchar | | supval(self, *args) | supval(self, alt, tag=stag) -> ssize_t + | alt: nodeidx_t + | tag: uchar | | supval_ea(self, *args) | supval_ea(self, ea, tag=stag) -> ssize_t + | ea: ea_t + | tag: uchar | | supval_idx8(self, *args) | supval_idx8(self, alt, tag) -> ssize_t + | alt: uchar + | tag: uchar | | valobj(self, *args) | valobj(self) -> ssize_t @@ -56945,69 +65854,58 @@ A number to represent a bad netnode reference. 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 + add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t + @param insn: the referencing instruction - an ida_ua.insn_t, or an + address (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) + calc_basevalue(target, base) -> 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) - 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 + calc_offset_base(ea, n) -> ea_t + @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) + calc_probable_base_by_value(ea, off) -> ea_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) - 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 @@ -57017,87 +65915,79 @@ calc_reference_data(*args) 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 + calc_reference_data(target, base, _from, ri, opval) -> bool + @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' . + calc_target(_from, opval, ri) -> ea_t + @param _from (C++: ea_t) + @param opval (C++: adiff_t) + @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) + + calc_target(_from, ea, n, opval) -> ea_t + @param _from (C++: ea_t) + ea: ea_t + n: int + @param opval (C++: adiff_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) + can_be_off32(ea) -> ea_t + @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 + get_default_reftype(ea) -> reftype_t + @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 + get_offbase(ea, n) -> ea_t + @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) + get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str + @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 @@ -57111,70 +66001,66 @@ get_offset_expression(*args) 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) + get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str + @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) + @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) - 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) + op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + @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 + op_offset_ex(ea, n, ri) -> bool + @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) + op_plain_offset(ea, n, base) -> bool + @param ea (C++: ea_t) + @param n (C++: int) + @param base (C++: ea_t) Help on class __qmutex_t in module ida_pro: @@ -57373,13 +66259,15 @@ class boolvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< bool > const & | | __getitem__(self, *args) | __getitem__(self, i) -> bool const & + | i: size_t | | __init__(self, *args) | __init__(self) -> boolvec_t - | __init__(self, x) -> boolvec_t + | x: qvector< bool > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57388,17 +66276,22 @@ class boolvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< bool > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: bool const & | | _del(self, *args) | _del(self, x) -> bool + | x: bool const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: bool const & | | append = push_back(self, *args) | @@ -57426,52 +66319,74 @@ class boolvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< bool >::iterator + | it: qvector< bool >::iterator + | + | | erase(self, first, last) -> qvector< bool >::iterator + | first: qvector< bool >::iterator + | last: qvector< bool >::iterator | | extract(self, *args) | extract(self) -> bool * | | find(self, *args) | find(self, x) -> qvector< bool >::iterator + | x: bool const & + | + | | find(self, x) -> qvector< bool >::const_iterator + | x: bool const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=bool()) + | x: bool const & | | has(self, *args) | has(self, x) -> bool + | x: bool const & | | inject(self, *args) | inject(self, s, len) + | s: bool * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< bool >::iterator + | it: qvector< bool >::iterator + | x: bool const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> bool & + | x: bool const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: bool const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< bool > & | | truncate(self, *args) | truncate(self) @@ -57554,26 +66469,28 @@ class channel_redir_t(__builtin__.object) 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 *) + check_process_exit(handle, exit_code, msecs=-1) -> int + @param handle: process handle to wait for (C++: void *) + @param exit_code: pointer to the buffer for the exit code (C++: int *) + msecs: int + @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 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) + clear_bits(bitmap, low, high) + @param bitmap (C++: uchar *) + @param low (C++: size_t) + @param high (C++: size_t) Help on class ea_array in module ida_pro: @@ -57584,14 +66501,18 @@ class ea_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> ea_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> ea_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) + | index: size_t + | value: ea_t | | cast(self, *args) | cast(self) -> ea_t * @@ -57601,6 +66522,7 @@ class ea_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> ea_array + | t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57624,6 +66546,7 @@ Help on function ea_array_frompointer in module ida_pro: ea_array_frompointer(*args) ea_array_frompointer(t) -> ea_array + t: ea_t * Help on class ea_pointer in module ida_pro: @@ -57639,6 +66562,7 @@ class ea_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) + | value: ea_t | | cast(self, *args) | cast(self) -> ea_t * @@ -57651,6 +66575,7 @@ class ea_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> ea_pointer + | t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57674,19 +66599,18 @@ Help on function ea_pointer_frompointer in module ida_pro: ea_pointer_frompointer(*args) ea_pointer_frompointer(t) -> ea_pointer + t: ea_t * 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) + extend_sign(v, nbytes, sign_extend) -> uint64 + @param v (C++: uint64) + @param nbytes (C++: int) + @param sign_extend (C++: bool) Help on class instant_dbgopts_t in module ida_pro: @@ -57751,13 +66675,15 @@ class longlongvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< long long > const & | | __getitem__(self, *args) | __getitem__(self, i) -> long long const & + | i: size_t | | __init__(self, *args) | __init__(self) -> longlongvec_t - | __init__(self, x) -> longlongvec_t + | x: qvector< long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57766,17 +66692,22 @@ class longlongvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: long long const & | | _del(self, *args) | _del(self, x) -> bool + | x: long long const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: long long const & | | append = push_back(self, *args) | @@ -57804,49 +66735,70 @@ class longlongvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< long long >::iterator + | it: qvector< long long >::iterator + | + | | erase(self, first, last) -> qvector< long long >::iterator + | first: qvector< long long >::iterator + | last: qvector< long long >::iterator | | extract(self, *args) | extract(self) -> long long * | | find(self, *args) | find(self, x) -> qvector< long long >::iterator + | x: long long const & + | + | | find(self, x) -> qvector< long long >::const_iterator + | x: long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: long long const & | | inject(self, *args) | inject(self, s, len) + | s: long long * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< long long >::iterator + | it: qvector< long long >::iterator + | x: long long const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> long long & + | x: long long const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: long long const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< long long > & | | truncate(self, *args) | truncate(self) @@ -57883,6 +66835,7 @@ class int_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) + | value: int | | cast(self, *args) | cast(self) -> int * @@ -57895,6 +66848,7 @@ class int_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> int_pointer + | t: int * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57918,6 +66872,7 @@ Help on function int_pointer_frompointer in module ida_pro: int_pointer_frompointer(*args) int_pointer_frompointer(t) -> int_pointer + t: int * Help on class intvec_t in module ida_pro: @@ -57928,13 +66883,15 @@ class intvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> int const & + | i: size_t | | __init__(self, *args) | __init__(self) -> intvec_t - | __init__(self, x) -> intvec_t + | x: qvector< int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57943,17 +66900,22 @@ class intvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: int const & | | _del(self, *args) | _del(self, x) -> bool + | x: int const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: int const & | | append = push_back(self, *args) | @@ -57981,49 +66943,70 @@ class intvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< int >::iterator + | it: qvector< int >::iterator + | + | | erase(self, first, last) -> qvector< int >::iterator + | first: qvector< int >::iterator + | last: qvector< int >::iterator | | extract(self, *args) | extract(self) -> int * | | find(self, *args) | find(self, x) -> qvector< int >::iterator + | x: int const & + | + | | find(self, x) -> qvector< int >::const_iterator + | x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: int const & | | inject(self, *args) | inject(self, s, len) + | s: int * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< int >::iterator + | it: qvector< int >::iterator + | x: int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< int > & | | truncate(self, *args) | truncate(self) @@ -58049,71 +67032,58 @@ class intvec_t(__builtin__.object) 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) + is_control_tty(fd) -> enum tty_control_t + @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) + log2ceil(d64) -> int + @param d64 (C++: uint64) Help on function log2floor in module ida_pro: log2floor(*args) log2floor(d64) -> int + @param d64 (C++: uint64) 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 + parse_dbgopts(ido, r_switch) -> bool + @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 + @param nptr (C++: const char *) 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 @@ -58121,12 +67091,10 @@ qdetach_tty(*args) 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) + qexit(code) + @param code: exit code (C++: int) Help on class qmutex_locker_t in module ida_pro: @@ -58137,6 +67105,7 @@ class qmutex_locker_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _lock) -> qmutex_locker_t + | _lock: qmutex_t | | __repr__ = _swig_repr(self) | @@ -58170,7 +67139,9 @@ class qrefcnt_obj_t(__builtin__.object) | __repr__ = _swig_repr(self) | | release(self, *args) - | 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: @@ -58197,21 +67168,29 @@ Help on function qstrvec_t_add in module ida_pro: qstrvec_t_add(*args) qstrvec_t_add(_self, s) -> bool + self: PyObject * + s: char const * Help on function qstrvec_t_addressof in module ida_pro: qstrvec_t_addressof(*args) qstrvec_t_addressof(_self, idx) -> PyObject * + self: PyObject * + idx: size_t Help on function qstrvec_t_assign in module ida_pro: qstrvec_t_assign(*args) qstrvec_t_assign(_self, other) -> bool + self: PyObject * + other: PyObject * Help on function qstrvec_t_clear in module ida_pro: qstrvec_t_clear(*args) qstrvec_t_clear(_self, qclear) -> bool + self: PyObject * + qclear: bool Help on function qstrvec_t_create in module ida_pro: @@ -58222,97 +67201,123 @@ Help on function qstrvec_t_destroy in module ida_pro: qstrvec_t_destroy(*args) qstrvec_t_destroy(py_obj) -> bool + py_obj: PyObject * Help on function qstrvec_t_from_list in module ida_pro: qstrvec_t_from_list(*args) qstrvec_t_from_list(_self, py_list) -> bool + self: PyObject * + py_list: PyObject * Help on function qstrvec_t_get in module ida_pro: qstrvec_t_get(*args) qstrvec_t_get(_self, idx) -> PyObject * + self: PyObject * + idx: size_t Help on function qstrvec_t_get_clink in module ida_pro: qstrvec_t_get_clink(*args) qstrvec_t_get_clink(_self) -> qstrvec_t * + self: PyObject * 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 * + self: PyObject * Help on function qstrvec_t_insert in module ida_pro: qstrvec_t_insert(*args) qstrvec_t_insert(_self, idx, s) -> bool + self: PyObject * + idx: size_t + s: char const * Help on function qstrvec_t_remove in module ida_pro: qstrvec_t_remove(*args) qstrvec_t_remove(_self, idx) -> bool + self: PyObject * + idx: size_t Help on function qstrvec_t_set in module ida_pro: qstrvec_t_set(*args) qstrvec_t_set(_self, idx, s) -> bool + self: PyObject * + idx: size_t + s: char const * Help on function qstrvec_t_size in module ida_pro: qstrvec_t_size(*args) qstrvec_t_size(_self) -> size_t + self: PyObject * + +Help on function qthread_equal in module ida_pro: + +qthread_equal(*args) + Are two threads equal? + + qthread_equal(q1, q2) -> bool + @param q1 (C++: qthread_t) + @param q2 (C++: qthread_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' + quote_cmdline_arg(arg) -> bool + @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 + qvector_reserve(vec, old, cnt, elsize) -> void * + @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 + readbytes(h, res, size, mf) -> int + @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) + @param value (C++: void *) + @param size (C++: int) + @param delta (C++: adiff_t) + @param mf (C++: bool) Help on function relocate_relobj in module ida_pro: relocate_relobj(*args) relocate_relobj(_relobj, ea, mf) -> bool + @param _relobj (C++: struct relobj_t *) + @param ea (C++: ea_t) + @param mf (C++: bool) Help on class sel_array in module ida_pro: @@ -58323,14 +67328,18 @@ class sel_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> sel_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> sel_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) + | index: size_t + | value: sel_t | | cast(self, *args) | cast(self) -> sel_t * @@ -58340,6 +67349,7 @@ class sel_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sel_array + | t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58363,6 +67373,7 @@ Help on function sel_array_frompointer in module ida_pro: sel_array_frompointer(*args) sel_array_frompointer(t) -> sel_array + t: sel_t * Help on class sel_pointer in module ida_pro: @@ -58378,6 +67389,7 @@ class sel_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) + | value: sel_t | | cast(self, *args) | cast(self) -> sel_t * @@ -58390,6 +67402,7 @@ class sel_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sel_pointer + | t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58413,19 +67426,17 @@ Help on function sel_pointer_frompointer in module ida_pro: sel_pointer_frompointer(*args) sel_pointer_frompointer(t) -> sel_pointer + t: sel_t * 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) + set_bits(bitmap, low, high) + @param bitmap (C++: uchar *) + @param low (C++: size_t) + @param high (C++: size_t) Help on class sizevec_t in module ida_pro: @@ -58436,13 +67447,15 @@ class sizevec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< size_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> size_t const & + | i: size_t | | __init__(self, *args) | __init__(self) -> sizevec_t - | __init__(self, x) -> sizevec_t + | x: qvector< size_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58452,20 +67465,26 @@ class sizevec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< size_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: size_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: size_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: size_t const & | | at(self, *args) | at(self, _idx) -> size_t const & + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -58489,52 +67508,74 @@ class sizevec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< size_t >::iterator + | it: qvector< size_t >::iterator + | + | | erase(self, first, last) -> qvector< size_t >::iterator + | first: qvector< size_t >::iterator + | last: qvector< size_t >::iterator | | extract(self, *args) | extract(self) -> size_t * | | find(self, *args) | find(self, x) -> qvector< size_t >::iterator + | x: size_t const & + | + | | find(self, x) -> qvector< size_t >::const_iterator + | x: size_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=size_t()) + | x: size_t const & | | has(self, *args) | has(self, x) -> bool + | x: size_t const & | | inject(self, *args) | inject(self, s, len) + | s: size_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< size_t >::iterator + | it: qvector< size_t >::iterator + | x: size_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> size_t & + | x: size_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: size_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< size_t > & | | truncate(self, *args) | truncate(self) @@ -58561,8 +67602,6 @@ 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 @@ -58576,10 +67615,11 @@ class strvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> simpleline_t const & + | i: size_t | | __init__(self, *args) | __init__(self) -> strvec_t - | __init__(self, x) -> strvec_t + | x: qvector< simpleline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58590,6 +67630,8 @@ class strvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: simpleline_t const & | | append = push_back(self, *args) | @@ -58617,7 +67659,12 @@ class strvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< simpleline_t >::iterator + | it: qvector< simpleline_t >::iterator + | + | | erase(self, first, last) -> qvector< simpleline_t >::iterator + | first: qvector< simpleline_t >::iterator + | last: qvector< simpleline_t >::iterator | | extract(self, *args) | extract(self) -> simpleline_t * @@ -58627,35 +67674,47 @@ class strvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=simpleline_t()) + | x: simpleline_t const & | | inject(self, *args) | inject(self, s, len) + | s: simpleline_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< simpleline_t >::iterator + | it: qvector< simpleline_t >::iterator + | x: simpleline_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> simpleline_t & + | x: simpleline_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: simpleline_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< simpleline_t > & | | truncate(self, *args) | truncate(self) @@ -58692,6 +67751,7 @@ class sval_pointer(__builtin__.object) | | assign(self, *args) | assign(self, value) + | value: sval_t | | cast(self, *args) | cast(self) -> sval_t * @@ -58704,6 +67764,7 @@ class sval_pointer(__builtin__.object) | | frompointer(*args) | frompointer(t) -> sval_pointer + | t: sval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58727,6 +67788,7 @@ Help on function sval_pointer_frompointer in module ida_pro: sval_pointer_frompointer(*args) sval_pointer_frompointer(t) -> sval_pointer + t: sval_t * Help on class tid_array in module ida_pro: @@ -58737,14 +67799,18 @@ class tid_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> tid_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> tid_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) + | index: size_t + | value: tid_t | | cast(self, *args) | cast(self) -> tid_t * @@ -58754,6 +67820,7 @@ class tid_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> tid_array + | t: tid_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58777,6 +67844,7 @@ Help on function tid_array_frompointer in module ida_pro: tid_array_frompointer(*args) tid_array_frompointer(t) -> tid_array + t: tid_t * Help on class uchar_array in module ida_pro: @@ -58787,14 +67855,18 @@ class uchar_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> uchar + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uchar_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) + | index: size_t + | value: uchar | | cast(self, *args) | cast(self) -> uchar * @@ -58804,6 +67876,7 @@ class uchar_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> uchar_array + | t: uchar * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58827,6 +67900,7 @@ Help on function uchar_array_frompointer in module ida_pro: uchar_array_frompointer(*args) uchar_array_frompointer(t) -> uchar_array + t: uchar * Help on class ulonglongvec_t in module ida_pro: @@ -58837,13 +67911,15 @@ class ulonglongvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< unsigned long long > const & | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned long long const & + | i: size_t | | __init__(self, *args) | __init__(self) -> ulonglongvec_t - | __init__(self, x) -> ulonglongvec_t + | 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. @@ -58852,17 +67928,22 @@ class ulonglongvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< unsigned long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: unsigned long long const & | | _del(self, *args) | _del(self, x) -> bool + | x: unsigned long long const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: unsigned long long const & | | append = push_back(self, *args) | @@ -58890,49 +67971,70 @@ class ulonglongvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< unsigned long long >::iterator + | it: qvector< unsigned long long >::iterator + | + | | erase(self, first, last) -> qvector< unsigned long long >::iterator + | first: qvector< unsigned long long >::iterator + | 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 + | x: unsigned long long const & + | + | | find(self, x) -> qvector< unsigned long long >::const_iterator + | x: unsigned long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: unsigned long long const & | | inject(self, *args) | inject(self, s, len) + | s: unsigned long long * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned long long >::iterator + | it: qvector< unsigned long long >::iterator + | x: unsigned long long const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> unsigned long long & + | x: unsigned long long const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned long long const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< unsigned long long > & | | truncate(self, *args) | truncate(self) @@ -58964,13 +68066,15 @@ class uintvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< unsigned int > const & | | __getitem__(self, *args) | __getitem__(self, i) -> unsigned int const & + | i: size_t | | __init__(self, *args) | __init__(self) -> uintvec_t - | __init__(self, x) -> uintvec_t + | x: qvector< unsigned int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58979,17 +68083,22 @@ class uintvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< unsigned int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: unsigned int const & | | _del(self, *args) | _del(self, x) -> bool + | x: unsigned int const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: unsigned int const & | | append = push_back(self, *args) | @@ -59017,49 +68126,70 @@ class uintvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< unsigned int >::iterator + | it: qvector< unsigned int >::iterator + | + | | erase(self, first, last) -> qvector< unsigned int >::iterator + | first: qvector< unsigned int >::iterator + | last: qvector< unsigned int >::iterator | | extract(self, *args) | extract(self) -> unsigned int * | | find(self, *args) | find(self, x) -> qvector< unsigned int >::iterator + | x: unsigned int const & + | + | | find(self, x) -> qvector< unsigned int >::const_iterator + | x: unsigned int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) | has(self, x) -> bool + | x: unsigned int const & | | inject(self, *args) | inject(self, s, len) + | s: unsigned int * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< unsigned int >::iterator + | it: qvector< unsigned int >::iterator + | x: unsigned int const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> unsigned int & + | x: unsigned int const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< unsigned int > & | | truncate(self, *args) | truncate(self) @@ -59091,14 +68221,18 @@ class uval_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, index) -> uval_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uval_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, index, value) + | index: size_t + | value: uval_t | | cast(self, *args) | cast(self) -> uval_t * @@ -59108,6 +68242,7 @@ class uval_array(__builtin__.object) | | frompointer(*args) | frompointer(t) -> uval_array + | t: uval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -59131,20 +68266,19 @@ Help on function uval_array_frompointer in module ida_pro: uval_array_frompointer(*args) uval_array_frompointer(t) -> uval_array + t: uval_t * 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 + writebytes(h, l, size, mf) -> int + @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 @@ -59154,7 +68288,7 @@ UTF-16 codepage. ida_pro.IDA_SDK_VERSION """ -IDA SDK v7.4. +IDA SDK v7.5. """ ida_pro.IDBDEC_ESCAPE @@ -59201,86 +68335,73 @@ endian (Intel 80x86). 1: big endian (PowerPC). 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 + forget_problem(type, ea) -> bool + @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 + get_problem(type, lowea) -> ea_t + @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 + get_problem_desc(t, ea) -> str + @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) + get_problem_name(type, longname=True) -> char const * + @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) + is_problem_present(t, ea) -> bool + @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 *) + remember_problem(type, ea, msg=None) + @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 + @param ea (C++: ea_t) Help on class array_of_rangesets in module ida_range: @@ -59291,13 +68412,15 @@ class array_of_rangesets(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< rangeset_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> rangeset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_rangesets - | __init__(self, x) -> array_of_rangesets + | x: qvector< rangeset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59307,20 +68430,26 @@ class array_of_rangesets(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< rangeset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: rangeset_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: rangeset_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: rangeset_t const & | | at(self, *args) | at(self, _idx) -> rangeset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -59344,52 +68473,74 @@ class array_of_rangesets(__builtin__.object) | | erase(self, *args) | erase(self, it) -> rangeset_t + | it: qvector< rangeset_t >::iterator + | + | | erase(self, first, last) -> rangeset_t + | first: qvector< rangeset_t >::iterator + | last: qvector< rangeset_t >::iterator | | extract(self, *args) | extract(self) -> rangeset_t | | find(self, *args) | find(self, x) -> rangeset_t + | x: rangeset_t const & + | + | | find(self, x) -> rangeset_t + | x: rangeset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=rangeset_t()) + | x: rangeset_t const & | | has(self, *args) | has(self, x) -> bool + | x: rangeset_t const & | | inject(self, *args) | inject(self, s, len) + | s: rangeset_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> rangeset_t + | it: qvector< rangeset_t >::iterator + | x: rangeset_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> rangeset_t + | x: rangeset_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: rangeset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< rangeset_t > & | | truncate(self, *args) | truncate(self) @@ -59421,19 +68572,24 @@ class range_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __init__(self, *args) | __init__(self) -> range_t - | __init__(self, ea1, ea2) -> range_t + | ea1: ea_t + | ea2: ea_t | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | __repr__ = _swig_repr(self) | @@ -59441,29 +68597,48 @@ class range_t(__builtin__.object) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -59496,10 +68671,10 @@ class range_t(__builtin__.object) 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! + + range_t_print(cb) -> str + cb: range_t const * Help on class rangeset_t in module ida_range: @@ -59510,13 +68685,17 @@ class rangeset_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, aset) -> bool + | aset: rangeset_t const & | | __getitem__(self, idx) | | __init__(self, *args) | __init__(self) -> rangeset_t - | __init__(self, range) -> rangeset_t + | range: range_t const & + | + | | __init__(self, ivs) -> rangeset_t + | ivs: rangeset_t const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59525,6 +68704,7 @@ class rangeset_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, aset) -> bool + | aset: rangeset_t const & | | __repr__ = _swig_repr(self) | @@ -59532,78 +68712,160 @@ class rangeset_t(__builtin__.object) | _print(self) -> size_t | | add(self, *args) + | Add an address range to the set. If 'range' intersects an existing + | element e, then e is extended to include 'range', and any superfluous + | elements (subsets of e) are removed. + | | add(self, range) -> bool + | @param range: address range to add. cannot be empty (C++: const + | range_t &) + | @return: false if no elements were added (the set was unchanged) + | + | | add(self, start, _end) -> bool + | start: ea_t + | _end: ea_t + | @return: false if no elements were added (the set was unchanged) + | + | | add(self, aset) -> bool + | aset: rangeset_t const & + | @return: false if no elements were added (the set was unchanged) | | begin(self, *args) - | begin(self) -> range_t - | begin(self) -> range_t + | Get an iterator that points to the first element in the set. | | cached_range(self, *args) - | cached_range(self) -> range_t + | When searching the rangeset, we keep a cached element to help speed up + | searches. | | clear(self, *args) - | clear(self) + | Delete all elements from the set. See 'qvector::clear()' | | contains(self, *args) + | Does an element of the rangeset contain 'ea'? See + | range_t::contains(ea_t) + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, aset) -> bool + | aset: rangeset_t const & | | empty(self, *args) - | empty(self) -> bool + | Does the set have zero elements. | | end(self, *args) - | 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) + | Get the element from the set that contains 'ea'. + | | find_range(self, ea) -> range_t + | @param ea (C++: ea_t) + | @return: NULL if there is no such element | | getrange(self, *args) + | Get the 'range_t' at index 'idx'. + | | getrange(self, idx) -> range_t + | @param idx (C++: int) | | has_common(self, *args) + | Is there an ea in 'range' that is also in the rangeset? + | | has_common(self, range) -> bool + | @param range (C++: const range_t &) + | + | | has_common(self, aset) -> bool + | aset: rangeset_t const & | | includes(self, *args) + | Is every ea in 'range' contained in the rangeset? + | | includes(self, range) -> bool + | @param range (C++: const range_t &) | | intersect(self, *args) + | Set the rangeset to its intersection with 'aset'. + | | intersect(self, aset) -> bool + | @param aset (C++: const rangeset_t &) + | @return: false if the set was unchanged | | is_equal(self, *args) + | Do this rangeset and 'aset' have identical elements? + | | is_equal(self, aset) -> bool + | @param aset (C++: const rangeset_t &) | | is_subset_of(self, *args) + | Is every element in the rangeset contained in an element of 'aset'? + | | is_subset_of(self, aset) -> bool + | @param aset (C++: const rangeset_t &) | | lastrange(self, *args) - | lastrange(self) -> range_t + | Get the last 'range_t' in the set. | | next_addr(self, *args) + | Get the smallest ea_t value greater than 'ea' contained in the + | rangeset. + | | next_addr(self, ea) -> ea_t + | @param ea (C++: ea_t) | | next_range(self, *args) + | Get the smallest ea_t value greater than 'ea' that is not in the same + | range as 'ea'. + | | next_range(self, ea) -> ea_t + | @param ea (C++: ea_t) | | nranges(self, *args) - | nranges(self) -> size_t + | Get the number of 'range_t' elements in the set. | | prev_addr(self, *args) + | Get the largest ea_t value less than 'ea' contained in the rangeset. + | | prev_addr(self, ea) -> ea_t + | @param ea (C++: ea_t) | | prev_range(self, *args) + | Get the largest ea_t value less than 'ea' that is not in the same + | range as 'ea'. + | | prev_range(self, ea) -> ea_t + | @param ea (C++: ea_t) | | sub(self, *args) + | Subtract an address range from the set. All subsets of 'range' will be + | removed, and all elements that intersect 'range' will be + | truncated/split so they do not include 'range'. + | | sub(self, range) -> bool + | @param range: address range to subtract. cannot be empty. (C++: const + | range_t &) + | @return: false if nothing was subtracted (the set was unchanged) + | + | | sub(self, ea) -> bool + | ea: ea_t + | @return: false if nothing was subtracted (the set was unchanged) + | + | | sub(self, aset) -> bool + | aset: rangeset_t const & + | @return: false if nothing was subtracted (the set was unchanged) | | swap(self, *args) + | Set this = 'r' and 'r' = this. See 'qvector::swap()' + | | swap(self, r) + | @param r (C++: rangeset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -59632,13 +68894,15 @@ class rangevec_base_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __init__(self, *args) | __init__(self) -> rangevec_base_t - | __init__(self, x) -> rangevec_base_t + | x: qvector< range_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59648,20 +68912,26 @@ class rangevec_base_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -59685,52 +68955,74 @@ class rangevec_base_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -59787,9 +69079,11 @@ class rangevec_t(rangevec_base_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59799,18 +69093,24 @@ class rangevec_t(rangevec_base_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -59834,52 +69134,74 @@ class rangevec_t(rangevec_base_t) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -59896,59 +69218,47 @@ class rangevec_t(rangevec_base_t) 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 + reg_data_type(name, subkey=None) -> regval_type_t + @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 + reg_delete(name, subkey=None) -> bool + @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 *) + reg_delete_subkey(name) -> bool + @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 *) + reg_delete_tree(name) -> bool + @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 *) + reg_exists(name, subkey=None) -> bool + @param name: value name (C++: const char *) + @param subkey: parent key (C++: const char *) Help on function reg_flush in module ida_registry: @@ -59963,176 +69273,146 @@ reg_load(*args) 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. + reg_read_binary(name, subkey=None) -> PyObject * + @param name: value name (C++: const char *) + @param subkey: key name (C++: const char *) + @return: success 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 + reg_read_bool(name, defval, subkey=None) -> bool + @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 + reg_read_int(name, defval, subkey=None) -> int + @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 + reg_read_string(name, subkey=None, _def=None) -> PyObject * + @param name: value name (C++: const char *) + @param subkey: key name (C++: const char *) + def: char const * + @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 *) + reg_read_strlist(subkey) + @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 *) + reg_subkey_exists(name) -> bool + @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 *) + reg_subkey_subkeys(name) -> PyObject * + @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 *) + reg_subkey_values(name) -> PyObject * + @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 *) + reg_update_filestrlist(subkey, add, maxrecs, rem=None) + @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) + reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) + @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 *) + reg_write_binary(name, py_bytes, subkey=None) -> PyObject * + @param name: value name (C++: const char *) + py_bytes: PyObject * + @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 *) + reg_write_bool(name, value, subkey=None) + @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 *) + reg_write_int(name, value, subkey=None) + @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 *) + reg_write_string(name, utf8, subkey=None) + @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 @@ -60146,146 +69426,137 @@ Help on function find_binary in module ida_search: find_binary(*args) find_binary(arg1, arg2, arg3, arg4, arg5) -> ea_t + Deprecated. Please use ida_bytes.bin_search() instead. 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) + find_code(ea, sflag) -> ea_t + @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) + find_data(ea, sflag) -> ea_t + @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) + find_defined(ea, sflag) -> ea_t + @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) + find_error(ea, sflag) -> ea_t + @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) + find_imm(ea, sflag, search_value) -> ea_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) - 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) + find_not_func(ea, sflag) -> ea_t + @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. + find_notype(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) + +Help on function find_reg_access in module ida_search: + +find_reg_access(*args) + Find access to a register.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. - @param ea (C++: ea_t) - @param sflag (C++: int) + find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t + @param out: 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. (C++: + struct reg_access_t *) + @param start_ea: starting address (C++: ea_t) + @param end_ea: 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. (C++: + ea_t) + @param regname: the register to search for. (C++: const char *) + @param sflag: combination of Search flags bits. (C++: int) + @return: the found address. BADADDR if not found or error. 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) + find_suspop(ea, sflag) -> ea_t + @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) + find_text(start_ea, y, x, ustr, sflag) -> ea_t + @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) + find_unknown(ea, sflag) -> ea_t + @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) + search_down(sflag) -> bool + @param sflag (C++: int) === ida_search EPYDOC INJECTIONS === ida_search.SEARCH_BRK """ -return 'BADADDR' if Ctrl-Break wass pressed during search +return 'BADADDR' if the search was cancelled. """ ida_search.SEARCH_CASE @@ -60293,6 +69564,11 @@ ida_search.SEARCH_CASE case-sensitive search (case-insensitive otherwise) """ +ida_search.SEARCH_DEF +""" +find_reg_access: search for a definition (write access) +""" + ida_search.SEARCH_DOWN """ search towards higher addresses @@ -60306,37 +69582,40 @@ 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(). +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. """ ida_search.SEARCH_NOBRK """ -don't test for ctrl-break to interrupt the search +do not test if the user clicked cancel to interrupt the search """ ida_search.SEARCH_NOSHOW """ -don't display the search progress/refresh screen +do not display the search progress/refresh screen """ ida_search.SEARCH_REGEX """ -regular expressions in search string (only supported for txt search) +regular expressions in search string (supported only for the text +search) """ ida_search.SEARCH_UP """ search towards lower addresses """ + +ida_search.SEARCH_USE +""" +find_reg_access: search for a use (read access) +""" === 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 @@ -60346,488 +69625,407 @@ add_segm(*args) 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) + add_segm(para, start, end, name, sclass, flags=0) -> bool + @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) + @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) - 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) + add_segm_ex(s, name, sclass, flags) -> bool + @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) + @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) - 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) + add_segment_translation(segstart, mappedseg) -> bool + @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) + @retval: 1 - ok + @retval: 0 - too many translations or bad segstart 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 + allocate_selector(segbase) -> sel_t + @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 + change_segment_status(s, is_deb_segm) -> int + @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) + del_segm(ea, flags) -> bool + @param ea: any address belonging to the segment (C++: ea_t) + @param flags: Segment modification flags (C++: int) + @retval: 1 - ok + @retval: 0 - failed, no segment at 'ea'. 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) + del_segment_translations(segstart) + @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) + del_selector(selector) + @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 + find_selector(base) -> sel_t + @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 + s: segment_t * + reg: int 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 + get_group_selector(grpsel) -> sel_t + @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) + get_next_seg(ea) -> segment_t + @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) + get_prev_seg(ea) -> segment_t + @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 + get_segm_base(s) -> ea_t + @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 + get_segm_by_name(name) -> segment_t + @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 + get_segm_by_sel(selector) -> segment_t + @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) + get_segm_class(s) -> str + @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) + get_segm_name(s, flags=0) -> str + @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) + get_segm_num(ea) -> int + @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 + get_segm_para(s) -> ea_t + @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. + get_segment_alignment(align) -> char const * + @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 + get_segment_cmt(s, repeatable) -> str + @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. + get_segment_combination(comb) -> char const * + @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. + get_segment_translations(transmap, segstart) -> ssize_t + @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) + get_visible_segm_name(s) -> str + @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) + getn_selector(n) -> bool + @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 + getnseg(n) -> segment_t + @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 + getseg(ea) -> segment_t + @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 *) + is_finally_visible_segm(s) -> bool + @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 *) + is_segm_locked(segm) -> bool + @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) + is_spec_ea(ea) -> bool + @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) + is_spec_segm(seg_type) -> bool + @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 *) + is_visible_segm(s) -> bool + @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) + lock_segm(segm, lock) + @param segm (C++: const segment_t *) + @param lock (C++: bool) Help on class lock_segment in module ida_segment: @@ -60838,6 +70036,7 @@ class lock_segment(__builtin__.object) | | __init__(self, *args) | __init__(self, _segm) -> lock_segment + | _segm: segment_t const * | | __repr__ = _swig_repr(self) | @@ -60862,9 +70061,6 @@ class lock_segment(__builtin__.object) 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 @@ -60872,17 +70068,15 @@ move_segm(*args) 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 + move_segm(s, to, flags=0) -> int + @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 @@ -60893,55 +70087,50 @@ move_segm_start(*args) 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) + move_segm_start(ea, newstart, mode) -> bool + @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) + @retval: 1 - ok + @retval: 0 - failed, a warning message is displayed 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 + rebase_program(delta, flags) -> int + @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) + segm_adjust_diff(s, delta) -> adiff_t + @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) + segm_adjust_ea(s, ea) -> ea_t + @param s (C++: const segment_t *) + @param ea (C++: ea_t) Help on class segment_t in module ida_segment: @@ -60961,10 +70150,10 @@ class segment_t(ida_range.range_t) | __repr__ = _swig_repr(self) | | abits(self, *args) - | abits(self) -> int + | Get number of address bits. | | abytes(self, *args) - | abytes(self) -> int + | Get number of address bytes. | | clr_comorg(self, *args) | clr_comorg(self) @@ -60995,30 +70184,38 @@ class segment_t(ida_range.range_t) | | set_debugger_segm(self, *args) | set_debugger_segm(self, debseg) + | debseg: bool | | set_header_segm(self, *args) | set_header_segm(self, on) + | on: bool | | set_hidden_segtype(self, *args) | set_hidden_segtype(self, hide) + | hide: bool | | set_loader_segm(self, *args) | set_loader_segm(self, ldrseg) + | ldrseg: bool | | set_ob_ok(self, *args) | set_ob_ok(self) | | set_visible_segm(self, *args) | set_visible_segm(self, visible) + | visible: bool | | update(self, *args) - | 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. | | use32(self, *args) - | use32(self) -> bool + | Use 32 bit segment addressing? | | use64(self, *args) - | use64(self) -> bool + | Use 64 bit segment addressing? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61079,43 +70276,66 @@ class segment_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -61133,221 +70353,202 @@ class segment_t(ida_range.range_t) 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' + segtype(ea) -> uchar + @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); + sel2ea(selector) -> ea_t + @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'. + sel2para(selector) -> ea_t + @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) + s: segment_t * + reg: int + value: sel_t Help on function set_group_selector in module ida_segment: set_group_selector(*args) + Create a new group of segments (used OMF files). + 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 + @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 + set_segm_addressing(s, bitness) -> bool + @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) + set_segm_base(s, newbase) -> bool + @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) + set_segm_class(s, sclass, flags=0) -> int + @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) + @retval: 1 - ok, name is good and segment is renamed + @retval: 0 - failure, name is NULL or bad or segment is NULL 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) + set_segm_end(ea, newend, flags) -> bool + @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) + @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) - 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) + set_segm_name(s, name, flags=0) -> int + @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) + @retval: 1 - ok, name is good and segment is renamed + @retval: 0 - failure, name is bad or segment is NULL 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) + set_segm_start(ea, newstart, flags) -> bool + @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) + @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) - 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) + set_segment_cmt(s, cmt, repeatable) + @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 &) + set_segment_translations(segstart, transmap) -> bool + @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 &) + @retval: 1 - ok + @retval: 0 - too many translations or bad segstart 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) + set_selector(selector, paragraph) -> int + @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) + @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) - set_visible_segm(s, visible) - - See 'SFL_HIDDEN' . - - @param s (C++: segment_t *) - @param visible (C++: bool) + set_visible_segm(s, visible) + @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 @@ -61355,38 +70556,36 @@ setup_selector(*args) 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 + setup_selector(segbase) -> sel_t + @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 *) + std_out_segm_footer(ctx, seg) + @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 + take_memory_snapshot(only_loader_segs) -> bool + @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 + @param s (C++: segment_t *) === ida_segment EPYDOC INJECTIONS === ida_segment.ADDSEG_FILLGAP @@ -61427,7 +70626,7 @@ they overlap. ida_segment.ADDSEG_OR_DIE """ - 'qexit()' if can't add a segment +'qexit()' if can't add a segment """ ida_segment.ADDSEG_QUIET @@ -61840,142 +71039,118 @@ Stack. Combine as for C=2. This combine type forces 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) + copy_sreg_ranges(dst_rg, src_rg, map_selector=False) + @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 + del_sreg_range(ea, rg) -> bool + @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 + get_prev_sreg_range(out, ea, rg) -> bool + @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. + get_sreg(ea, rg) -> sel_t + @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 + get_sreg_range(out, ea, rg) -> bool + @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) + get_sreg_range_num(ea, rg) -> int + @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) + get_sreg_ranges_qty(rg) -> size_t + @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 + getn_sreg_range(out, rg, n) -> bool + @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) + set_default_dataseg(ds_sel) + @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 + set_default_sreg_value(sg, rg, value) -> bool + @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 @@ -61983,30 +71158,29 @@ set_sreg_at_next_code(*args) 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) + set_sreg_at_next_code(ea1, ea2, rg, value) + @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 + split_sreg_range(ea, rg, v, tag, silent=False) -> bool + @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: @@ -62048,43 +71222,66 @@ class sreg_range_t(ida_range.range_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: range_t const & | | _print(self, *args) | _print(self) -> size_t | | clear(self, *args) - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -62129,46 +71326,31 @@ the value is specified by the user 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) + get_strlist_item(si, n) -> bool + @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: @@ -62180,10 +71362,11 @@ class string_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> string_info_t - | __init__(self, _ea) -> string_info_t + | _ea: ea_t | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: string_info_t const & | | __repr__ = _swig_repr(self) | @@ -62231,6 +71414,7 @@ class strwinsetup_t(__builtin__.object) | | _set_strtypes(self, *args) | _set_strtypes(self, py_t) -> PyObject * + | py_t: PyObject * | | is_initialized(self, *args) | is_initialized(self) -> bool @@ -62271,545 +71455,470 @@ class strwinsetup_t(__builtin__.object) 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) + add_struc(idx, name, is_union=False) -> tid_t + @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) + add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t + @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 *) + del_member_tinfo(sptr, mptr) -> bool + @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 *) + del_struc(sptr) -> bool + @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) + del_struc_member(sptr, offset) -> bool + @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 + del_struc_members(sptr, off1, off2) -> int + @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(__builtin__.object) + | Proxy of C++ dynamic_wrapped_array_t< member_t > class. + | + | Methods defined here: + | + | __getitem__(self, *args) + | __getitem__(self, i) -> member_t + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_member_ref_array + | _data: member_t * + | _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) + | __len__(self) -> size_t + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) + | __setitem__(self, i, v) + | i: size_t + | v: member_t const & + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | count + | dyn_member_ref_array_count_get(self) -> size_t + | + | data + | dyn_member_ref_array_data_get(self) -> member_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_dyn_member_ref_array(self) 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) + expand_struc(sptr, offset, delta, recalc=True) -> 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) - 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) + get_best_fit_member(sptr, offset) -> member_t + @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 *) + get_max_offset(sptr) -> ea_t + @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) + get_member(sptr, offset) -> member_t + @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 *) + get_member_by_fullname(fullname) -> member_t + @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) + get_member_by_id(mid) -> member_t + @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 *) + get_member_by_name(sptr, membername) -> member_t + @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) + get_member_cmt(mid, repeatable) -> str + @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) + get_member_fullname(mid) -> str + @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) + get_member_id(sptr, offset) -> tid_t + @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) + get_member_name(mid) -> str + @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' . + + get_member_size(mptr) -> asize_t + @param mptr (C++: const member_t *) 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 *) + get_member_struc(fullname) -> struc_t + @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 *) + get_member_tinfo(tif, mptr) -> bool + @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) + get_next_member_idx(sptr, off) -> ssize_t + @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++ + get_next_struc_idx(idx) -> uval_t + @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 *) + get_or_guess_member_tinfo(tif, mptr) -> bool + @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) + get_prev_member_idx(sptr, off) -> ssize_t + @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 + get_prev_struc_idx(idx) -> uval_t + @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 *) + get_sptr(mptr) -> struc_t + @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) + get_struc(id) -> struc_t + @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) + get_struc_by_idx(idx) -> tid_t + @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) + get_struc_cmt(id, repeatable) -> str + @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 + get_struc_first_offset(sptr) -> ea_t + @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 *) + get_struc_id(name) -> tid_t + @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) + get_struc_idx(id) -> uval_t + @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 + get_struc_last_offset(sptr) -> ea_t + @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) + get_struc_name(id, flags=0) -> str + @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 + get_struc_next_offset(sptr, offset) -> ea_t + @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 + get_struc_prev_offset(sptr, offset) -> ea_t + @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)' ) + get_struc_size(sptr) -> asize_t + @param sptr (C++: const struc_t *) - @param sptr (C++: const struc_t *) + + get_struc_size(id) -> asize_t + id: tid_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 *) + is_anonymous_member_name(name) -> bool + @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 *) + is_dummy_member_name(name) -> bool + @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) + is_member_id(mid) -> bool + @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) + is_special_member(id) -> bool + @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) + is_union(id) -> bool + @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 *) + is_varmember(mptr) -> bool + @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) + is_varstr(id) -> bool + @param id (C++: tid_t) Help on class member_t in module ida_struct: @@ -62824,28 +71933,28 @@ class member_t(__builtin__.object) | __repr__ = _swig_repr(self) | | by_til(self, *args) - | by_til(self) -> bool + | Was the member created due to the type system? | | get_soff(self, *args) - | get_soff(self) -> ea_t + | Get start offset (for unions - returns 0) | | has_ti(self, *args) - | has_ti(self) -> bool + | Has type information? | | has_union(self, *args) - | has_union(self) -> bool + | Has members of type "union"? | | is_baseclass(self, *args) - | is_baseclass(self) -> bool + | Is a base class member? | | is_destructor(self, *args) - | is_destructor(self) -> bool + | Is a virtual destructor? | | is_dupname(self, *args) - | is_dupname(self) -> bool + | Duplicate name was resolved during import? | | unimem(self, *args) - | unimem(self) -> bool + | Is a member of a union? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -62883,167 +71992,130 @@ class member_t(__builtin__.object) 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 *) + retrieve_member_info(buf, mptr) -> opinfo_t + @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) + save_struc(sptr, may_update_ltypes=True) + @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) + set_member_cmt(mptr, cmt, repeatable) -> bool + @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 *) + set_member_name(sptr, offset, name) -> bool + @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) + set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t + @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) + set_member_type(sptr, offset, flag, mt, nbytes) -> bool + @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) + set_struc_align(sptr, shift) -> bool + @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) + set_struc_cmt(id, cmt, repeatable) -> bool + @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) + set_struc_hidden(sptr, is_hidden) + @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) + set_struc_idx(sptr, idx) -> bool + @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) + set_struc_listed(sptr, is_listed) + @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 *) + set_struc_name(id, name) -> bool + @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) + stroff_as_size(plen, sptr, value) -> bool + @param plen (C++: int) + @param sptr (C++: const struc_t *) + @param value (C++: asize_t) Help on class struc_t in module ida_struct: @@ -63052,45 +72124,53 @@ class struc_t(__builtin__.object) | | Methods defined here: | + | __get_members__(self, *args) + | __get_members__(self) -> dyn_member_ref_array + | | __init__(self, *args, **kwargs) | | __repr__ = _swig_repr(self) | | from_til(self, *args) - | from_til(self) -> bool + | Does structure come from a type library? | | get_alignment(self, *args) - | get_alignment(self) -> int + | See 'SF_ALIGN' . | - | get_member(self, *args) - | get_member(self, index) -> member_t + | get_member(self, index) | | has_union(self, *args) - | has_union(self) -> bool + | Has members of type "union"? | | is_choosable(self, *args) - | is_choosable(self) -> bool + | Is included in chooser list? Use 'set_struc_listed' to change the + | listed status | | is_frame(self, *args) - | is_frame(self) -> bool + | Is this structure a function frame? | | is_ghost(self, *args) - | is_ghost(self) -> bool + | Is a ghost copy of a local type? | | is_hidden(self, *args) - | is_hidden(self) -> bool + | Is the structure collapsed? Use 'set_struc_hidden' to change the + | hidden status | | is_union(self, *args) - | is_union(self) -> bool + | Is a union? | | is_varstr(self, *args) - | is_varstr(self) -> bool + | Is variable size structure? | | set_alignment(self, *args) + | Do not use; use 'set_struc_align()' + | | set_alignment(self, shift) + | @param shift (C++: int) | | set_ghost(self, *args) | set_ghost(self, _is_ghost) + | @param _is_ghost (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -63108,7 +72188,7 @@ class struc_t(__builtin__.object) | struc_t_id_get(self) -> tid_t | | members - | struc_t_members_get(self) -> member_t + | __get_members__(self) -> dyn_member_ref_array | | memqty | struc_t_memqty_get(self) -> uint32 @@ -63139,11 +72219,14 @@ class struct_field_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> struct_field_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_field(self, *args) | visit_field(self, sptr, mptr) -> int + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -63166,18 +72249,16 @@ class struct_field_visitor_t(__builtin__.object) 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) + visit_stroff_fields(sfv, path, disp, appzero) -> flags_t + @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 @@ -63307,13 +72388,11 @@ structname.fieldname 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 + add_tryblk(tb) -> int + @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: @@ -63372,9 +72451,11 @@ class catch_t(try_handler_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63384,18 +72465,24 @@ class catch_t(try_handler_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -63416,52 +72503,74 @@ class catch_t(try_handler_t) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -63484,13 +72593,15 @@ class catchvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< catch_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> catch_t + | i: size_t | | __init__(self, *args) | __init__(self) -> catchvec_t - | __init__(self, x) -> catchvec_t + | x: qvector< catch_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63500,20 +72611,26 @@ class catchvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< catch_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: catch_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: catch_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: catch_t const & | | at(self, *args) | at(self, _idx) -> catch_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -63537,52 +72654,74 @@ class catchvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> catch_t + | it: qvector< catch_t >::iterator + | + | | erase(self, first, last) -> catch_t + | first: qvector< catch_t >::iterator + | last: qvector< catch_t >::iterator | | extract(self, *args) | extract(self) -> catch_t | | find(self, *args) | find(self, x) -> catch_t + | x: catch_t const & + | + | | find(self, x) -> catch_t + | x: catch_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=catch_t()) + | x: catch_t const & | | has(self, *args) | has(self, x) -> bool + | x: catch_t const & | | inject(self, *args) | inject(self, s, len) + | s: catch_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> catch_t + | it: qvector< catch_t >::iterator + | x: catch_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> catch_t + | x: catch_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: catch_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< catch_t > & | | truncate(self, *args) | truncate(self) @@ -63608,37 +72747,31 @@ class catchvec_t(__builtin__.object) 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 &) + del_tryblks(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 + find_syseh(ea) -> ea_t + @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 + get_tryblks(tbv, range) -> size_t + @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: @@ -63694,9 +72827,11 @@ class seh_t(try_handler_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63706,18 +72841,24 @@ class seh_t(try_handler_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -63738,52 +72879,74 @@ class seh_t(try_handler_t) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -63841,9 +73004,11 @@ class try_handler_t(ida_range.rangevec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63853,18 +73018,24 @@ class try_handler_t(ida_range.rangevec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -63885,52 +73056,74 @@ class try_handler_t(ida_range.rangevec_t) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -63959,7 +73152,7 @@ class tryblk_t(ida_range.rangevec_t) | | __init__(self, *args) | __init__(self) -> tryblk_t - | __init__(self, r) -> tryblk_t + | r: tryblk_t const & | | __repr__ = _swig_repr(self) | @@ -64010,9 +73203,11 @@ class tryblk_t(ida_range.rangevec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64022,18 +73217,24 @@ class tryblk_t(ida_range.rangevec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -64051,52 +73252,74 @@ class tryblk_t(ida_range.rangevec_t) | | erase(self, *args) | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | last: qvector< range_t >::iterator | | extract(self, *args) | extract(self) -> range_t | | find(self, *args) | find(self, x) -> range_t + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) | truncate(self) @@ -64119,13 +73342,15 @@ class tryblks_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< tryblk_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> tryblk_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tryblks_t - | __init__(self, x) -> tryblks_t + | x: qvector< tryblk_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64135,20 +73360,26 @@ class tryblks_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< tryblk_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: tryblk_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: tryblk_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: tryblk_t const & | | at(self, *args) | at(self, _idx) -> tryblk_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -64172,52 +73403,74 @@ class tryblks_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> tryblk_t + | it: qvector< tryblk_t >::iterator + | + | | erase(self, first, last) -> tryblk_t + | first: qvector< tryblk_t >::iterator + | last: qvector< tryblk_t >::iterator | | extract(self, *args) | extract(self) -> tryblk_t | | find(self, *args) | find(self, x) -> tryblk_t + | x: tryblk_t const & + | + | | find(self, x) -> tryblk_t + | x: tryblk_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=tryblk_t()) + | x: tryblk_t const & | | has(self, *args) | has(self, x) -> bool + | x: tryblk_t const & | | inject(self, *args) | inject(self, s, len) + | s: tryblk_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> tryblk_t + | it: qvector< tryblk_t >::iterator + | x: tryblk_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> tryblk_t + | x: tryblk_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: tryblk_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< tryblk_t > & | | truncate(self, *args) | truncate(self) @@ -64284,37 +73537,30 @@ bad start address 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 + add_til(name, flags) -> int + @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 *) + alloc_type_ordinal(ti) -> uint32 + @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. + alloc_type_ordinals(ti, qty) -> uint32 + @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: @@ -64327,11 +73573,15 @@ class aloc_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> aloc_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_location(self, *args) | visit_location(self, v, off, size) -> int + | @param v (C++: argloc_t &) + | @param off (C++: int) + | @param size (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64354,41 +73604,36 @@ class aloc_visitor_t(__builtin__.object) 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 + append_abi_opts(abi_opts, user_level=False) -> bool + @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 &) + append_argloc(out, vloc) -> bool + @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 + out: rangeset_t * + typid: uint32 + offset: uint64 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 @@ -64396,45 +73641,39 @@ apply_callee_tinfo(*args) '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 + apply_callee_tinfo(caller, tif) -> bool + @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 + apply_cdecl(til, ea, decl, flags=0) -> bool + @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 + apply_named_type(ea, name) -> bool + @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 @@ -64444,48 +73683,43 @@ apply_once_tinfo_and_name(*args) 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 + apply_once_tinfo_and_name(dea, tif, name) -> bool + @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 + apply_tinfo(ea, tif, flags) -> bool + @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 *) + apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool + @param insn - an ida_ua.insn_t, or an address (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 @@ -64503,167 +73737,239 @@ class argloc_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: argloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: argloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: argloc_t const & | | __init__(self, *args) | __init__(self) -> argloc_t - | __init__(self, r) -> argloc_t + | r: argloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: argloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: argloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: argloc_t const & | | __repr__ = _swig_repr(self) | | _consume_rrel(self, *args) + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg1(self, *args) + | Use 'set_reg1()' + | | _set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | _set_reg2(self, *args) + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | atype(self, *args) - | atype(self) -> argloc_type_t + | Get type ( 'Argument location types' ) | | calc_offset(self, *args) - | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) | compare(self, r) -> int + | r: argloc_t const & | | consume_rrel(self, *args) + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) - | get_custom(self) -> void * + | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' | | get_ea(self, *args) - | get_ea(self) -> ea_t + | Get the global address. Use when 'atype()' == 'ALOC_STATIC' | | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 + | Get all register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' | | has_reg(self, *args) - | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) - | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. | | is_badloc(self, *args) - | is_badloc(self) -> bool + | See 'ALOC_NONE' . | | is_custom(self, *args) - | is_custom(self) -> bool + | See 'ALOC_CUSTOM' . | | is_ea(self, *args) - | is_ea(self) -> bool + | See 'ALOC_STATIC' . | | is_fragmented(self, *args) - | is_fragmented(self) -> bool + | 'is_scattered()' || 'is_reg2()' | | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | is_reg(self) -> bool + | 'is_reg1()' || 'is_reg2()' | | is_reg1(self, *args) - | is_reg1(self) -> bool + | See 'ALOC_REG1' . | | is_reg2(self, *args) - | is_reg2(self) -> bool + | See 'ALOC_REG2' . | | is_rrel(self, *args) - | is_rrel(self) -> bool + | See 'ALOC_RREL' . | | is_scattered(self, *args) - | is_scattered(self) -> bool + | See 'ALOC_DIST' . | | is_stkoff(self, *args) - | is_stkoff(self) -> bool + | See 'ALOC_STACK' . | | justify_reg_high(self, *args) + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | reg1(self, *args) - | reg1(self) -> int + | Get the register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | reg2(self, *args) - | reg2(self) -> int + | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' | | regoff(self, *args) - | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when + | 'atype()' == 'ALOC_REG1' | | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' | | set_badloc(self, *args) - | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) + | Set static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg1(self, *args) + | Set register location. + | | set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | set_reg2(self, *args) + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) + | Set stack offset location. + | | set_stkoff(self, off) + | @param off (C++: sval_t) | | stkoff(self, *args) - | stkoff(self) -> sval_t + | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' | | swap(self, *args) + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64697,21 +74003,25 @@ class argpart_t(argloc_t) | | __init__(self, *args) | __init__(self, a) -> argpart_t - | __init__(self) -> argpart_t + | a: argloc_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: argpart_t const & | | __repr__ = _swig_repr(self) | | bad_offset(self, *args) - | bad_offset(self) -> bool + | Does this argpart have a valid offset? | | bad_size(self, *args) - | bad_size(self) -> bool + | Does this argpart have a valid size? | | swap(self, *args) + | Assign this = r and r = this. + | | swap(self, r) + | @param r (C++: argpart_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64736,155 +74046,223 @@ class argpart_t(argloc_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: argloc_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: argloc_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: argloc_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: argloc_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: argloc_t const & | | _consume_rrel(self, *args) + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg1(self, *args) + | Use 'set_reg1()' + | | _set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | _set_reg2(self, *args) + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | atype(self, *args) - | atype(self) -> argloc_type_t + | Get type ( 'Argument location types' ) | | calc_offset(self, *args) - | calc_offset(self) -> sval_t + | Calculate offset that can be used to compare 2 similar arglocs. | | compare(self, *args) | compare(self, r) -> int + | r: argloc_t const & | | consume_rrel(self, *args) + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | get_biggest(self, *args) - | get_biggest(self) -> argloc_t::biggest_t + | Get largest element in internal union. | | get_custom(self, *args) - | get_custom(self) -> void * + | Get custom argloc info. Use if 'atype()' == 'ALOC_CUSTOM' | | get_ea(self, *args) - | get_ea(self) -> ea_t + | Get the global address. Use when 'atype()' == 'ALOC_STATIC' | | get_reginfo(self, *args) - | get_reginfo(self) -> uint32 + | Get all register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | get_rrel(self, *args) - | get_rrel(self) -> rrel_t - | get_rrel(self) -> rrel_t + | Get register-relative info. Use when 'atype()' == 'ALOC_RREL' | | has_reg(self, *args) - | has_reg(self) -> bool + | TRUE if argloc has a register part. | | has_stkoff(self, *args) - | has_stkoff(self) -> bool + | TRUE if argloc has a stack part. | | is_badloc(self, *args) - | is_badloc(self) -> bool + | See 'ALOC_NONE' . | | is_custom(self, *args) - | is_custom(self) -> bool + | See 'ALOC_CUSTOM' . | | is_ea(self, *args) - | is_ea(self) -> bool + | See 'ALOC_STATIC' . | | is_fragmented(self, *args) - | is_fragmented(self) -> bool + | 'is_scattered()' || 'is_reg2()' | | is_mixed_scattered(self, *args) - | is_mixed_scattered(self) -> bool + | mixed scattered: consists of register and stack parts | | is_reg(self, *args) - | is_reg(self) -> bool + | 'is_reg1()' || 'is_reg2()' | | is_reg1(self, *args) - | is_reg1(self) -> bool + | See 'ALOC_REG1' . | | is_reg2(self, *args) - | is_reg2(self) -> bool + | See 'ALOC_REG2' . | | is_rrel(self, *args) - | is_rrel(self) -> bool + | See 'ALOC_RREL' . | | is_scattered(self, *args) - | is_scattered(self) -> bool + | See 'ALOC_DIST' . | | is_stkoff(self, *args) - | is_stkoff(self) -> bool + | See 'ALOC_STACK' . | | justify_reg_high(self, *args) + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | reg1(self, *args) - | reg1(self) -> int + | Get the register info. Use when 'atype()' == 'ALOC_REG1' or + | 'ALOC_REG2' | | reg2(self, *args) - | reg2(self) -> int + | Get info for the second register. Use when 'atype()' == 'ALOC_REG2' | | regoff(self, *args) - | regoff(self) -> int + | Get offset from the beginning of the register in bytes. Use when + | 'atype()' == 'ALOC_REG1' | | scattered(self, *args) - | scattered(self) -> scattered_aloc_t - | scattered(self) -> scattered_aloc_t + | Get scattered argument info. Use when 'atype()' == 'ALOC_DIST' | | set_badloc(self, *args) - | set_badloc(self) + | Set to invalid location. | | set_ea(self, *args) + | Set static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg1(self, *args) + | Set register location. + | | set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | set_reg2(self, *args) + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) + | Set stack offset location. + | | set_stkoff(self, off) + | @param off (C++: sval_t) | | stkoff(self, *args) - | stkoff(self) -> sval_t + | Get the stack offset. Use if 'atype()' == 'ALOC_STACK' | | ---------------------------------------------------------------------- | Data descriptors inherited from argloc_t: @@ -64904,13 +74282,15 @@ class argpartvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< argpart_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> argpart_t + | i: size_t | | __init__(self, *args) | __init__(self) -> argpartvec_t - | __init__(self, x) -> argpartvec_t + | x: qvector< argpart_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64920,20 +74300,26 @@ class argpartvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< argpart_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: argpart_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: argpart_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: argpart_t const & | | at(self, *args) | at(self, _idx) -> argpart_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -64957,52 +74343,74 @@ class argpartvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> argpart_t + | it: qvector< argpart_t >::iterator + | + | | erase(self, first, last) -> argpart_t + | first: qvector< argpart_t >::iterator + | last: qvector< argpart_t >::iterator | | extract(self, *args) | extract(self) -> argpart_t | | find(self, *args) | find(self, x) -> argpart_t + | x: argpart_t const & + | + | | find(self, x) -> argpart_t + | x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=argpart_t()) + | x: argpart_t const & | | has(self, *args) | has(self, x) -> bool + | x: argpart_t const & | | inject(self, *args) | inject(self, s, len) + | s: argpart_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> argpart_t + | it: qvector< argpart_t >::iterator + | x: argpart_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> argpart_t + | x: argpart_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: argpart_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< argpart_t > & | | truncate(self, *args) | truncate(self) @@ -65025,6 +74433,77 @@ class argpartvec_t(__builtin__.object) | __swig_destroy__ = | delete_argpartvec_t(self) +Help on class argtinfo_helper_t in module ida_typeinf: + +class argtinfo_helper_t(__builtin__.object) + | Proxy of C++ argtinfo_helper_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> argtinfo_helper_t + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | has_delay_slot(self, *args) + | The call instruction with a delay slot?. + | + | has_delay_slot(self, arg0) -> bool + | arg0: ea_t + | + | is_stkarg_load(self, *args) + | 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 + | + | is_stkarg_load(self, insn, src, dst) -> bool + | @param insn - 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) + | Set the operand type as specified. + | + | set_op_tinfo(self, insn, x, tif, name) -> bool + | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x (C++: const op_t &) + | @param tif (C++: const tinfo_t &) + | @param name (C++: const char *) + | + | use_arg_tinfos(self, *args) + | This function is to be called by the processor module in response to + | ev_use_arg_types. + | + | use_arg_tinfos(self, caller, fti, rargs) + | @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 + | argtinfo_helper_t_reserved_get(self) -> size_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_argtinfo_helper_t(self) + Help on class array_type_data_t in module ida_typeinf: class array_type_data_t(__builtin__.object) @@ -65034,11 +74513,16 @@ class array_type_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self, b=0, n=0) -> array_type_data_t + | b: size_t + | n: size_t | | __repr__ = _swig_repr(self) | | swap(self, *args) + | set this = r and r = this + | | swap(self, r) + | @param r (C++: array_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65070,14 +74554,12 @@ class array_type_data_t(__builtin__.object) 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) + begin_type_updating(utp) + @param utp (C++: update_type_t) Help on class bitfield_type_data_t in module ida_typeinf: @@ -65088,32 +74570,43 @@ class bitfield_type_data_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: bitfield_type_data_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: bitfield_type_data_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: bitfield_type_data_t const & | | __init__(self, *args) | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t + | _nbytes: uchar + | _width: uchar + | _is_unsigned: bool | | __le__(self, *args) | __le__(self, r) -> bool + | r: bitfield_type_data_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: bitfield_type_data_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: bitfield_type_data_t const & | | __repr__ = _swig_repr(self) | | compare(self, *args) | compare(self, r) -> int + | r: bitfield_type_data_t const & | | swap(self, *args) | swap(self, r) + | @param r (C++: bitfield_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65145,41 +74638,40 @@ class bitfield_type_data_t(__builtin__.object) 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) + calc_c_cpp_name(name, type, ccn_flags) -> str + @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) + calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int + @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) + @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) calc_tinfo_gaps(out, typid) -> bool + out: rangeset_t * + typid: uint32 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 @@ -65196,27 +74688,45 @@ class callregs_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> callregs_t - | __init__(self, cc) -> callregs_t + | cc: cm_t | | __repr__ = _swig_repr(self) | + | by_slots(self, *args) + | by_slots(self) -> bool + | | init_regs(self, *args) + | Init policy & registers for given CC. + | | init_regs(self, cc) + | @param cc (C++: cm_t) | | reginds(self, *args) + | Get register indexes within GP/FP arrays. (-1 -> is not present in the + | corresponding array) + | | reginds(self, gp_ind, fp_ind, r) -> bool + | @param gp_ind (C++: int *) + | @param fp_ind (C++: int *) + | @param r (C++: int) | | reset(self, *args) - | reset(self) + | Set policy and registers to invalid values. | | set(self, *args) + | Init policy & registers (arrays are -1-terminated) + | | set(self, _policy, gprs, fprs) + | @param _policy (C++: argreg_policy_t) + | @param gprs (C++: const int *) + | @param fprs (C++: const int *) | | ---------------------------------------------------------------------- | Static methods defined here: | | regcount(*args) | regcount(cc) -> int + | cc: cm_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65252,80 +74762,77 @@ Help on function callregs_t_regcount in module ida_typeinf: callregs_t_regcount(*args) callregs_t_regcount(cc) -> int + cc: cm_t 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 + choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 + @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 + choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 + @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 + choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool + @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) + _this: tinfo_t * 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 + compact_til(ti) -> bool + @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 + t1: uint32 + t2: uint32 + tcflags: int Help on class const_aloc_visitor_t in module ida_typeinf: @@ -65338,11 +74845,15 @@ class const_aloc_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> const_aloc_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | visit_location(self, *args) | visit_location(self, v, off, size) -> int + | @param v (C++: const argloc_t &) + | @param off (C++: int) + | @param size (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65365,150 +74876,140 @@ class const_aloc_visitor_t(__builtin__.object) 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) + convert_pt_flags_to_hti(pt_flags) -> int + @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 + copy_named_type(dsttil, srctil, name) -> uint32 + @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) + _this: tinfo_t * + r: tinfo_t const & 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) + create_numbered_type_name(ord) -> str + @param ord (C++: int32) Help on function create_tinfo in module ida_typeinf: create_tinfo(*args) create_tinfo(_this, bt, bt2, ptr) -> bool + _this: tinfo_t * + bt: type_t + bt2: type_t + ptr: void * 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 + del_named_type(ti, name, ntf_flags) -> bool + @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) + del_numbered_type(ti, ordinal) -> bool + @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 *) + del_til(name) -> bool + @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 + tif: tinfo_t * + key: qstring const & + 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 + deref_ptr(ptr_ea, tif, closure_obj=None) -> bool + @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 + tif: tinfo_t * + til: til_t const * + ptype: type_t const ** + pfields: p_list const ** + pfldcmts: p_list const ** Help on function dstr_tinfo in module ida_typeinf: dstr_tinfo(*args) dstr_tinfo(tif) -> char const * + tif: tinfo_t 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) + dump_func_type_data(fti, praloc_bits) -> str + @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) + end_type_updating(utp) + @param utp (C++: update_type_t) Help on class enum_member_t in module ida_typeinf: @@ -65519,17 +75020,20 @@ class enum_member_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: enum_member_t const & | | __init__(self, *args) | __init__(self) -> enum_member_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: enum_member_t const & | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) + | @param r (C++: enum_member_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65567,13 +75071,15 @@ class enum_member_vec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> enum_member_t + | i: size_t | | __init__(self, *args) | __init__(self) -> enum_member_vec_t - | __init__(self, x) -> enum_member_vec_t + | 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. @@ -65583,20 +75089,26 @@ class enum_member_vec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: enum_member_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: enum_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: enum_member_t const & | | at(self, *args) | at(self, _idx) -> enum_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -65620,52 +75132,74 @@ class enum_member_vec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | + | | erase(self, first, last) -> enum_member_t + | first: qvector< enum_member_t >::iterator + | last: qvector< enum_member_t >::iterator | | extract(self, *args) | extract(self) -> enum_member_t | | find(self, *args) | find(self, x) -> enum_member_t + | x: enum_member_t const & + | + | | find(self, x) -> enum_member_t + | x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=enum_member_t()) + | x: enum_member_t const & | | has(self, *args) | has(self, x) -> bool + | x: enum_member_t const & | | inject(self, *args) | inject(self, s, len) + | s: enum_member_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | x: enum_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> enum_member_t + | x: enum_member_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: enum_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< enum_member_t > & | | truncate(self, *args) | truncate(self) @@ -65702,6 +75236,7 @@ class enum_type_data_t(enum_member_vec_t) | | __init__(self, *args) | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t + | _bte: bte_t | | __repr__ = _swig_repr(self) | @@ -65727,7 +75262,10 @@ class enum_type_data_t(enum_member_vec_t) | is_udec(self) -> bool | | swap(self, *args) + | swap two instances + | | swap(self, r) + | @param r (C++: enum_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65755,9 +75293,11 @@ class enum_type_data_t(enum_member_vec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> enum_member_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65767,18 +75307,24 @@ class enum_type_data_t(enum_member_vec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: enum_member_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: enum_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: enum_member_t const & | | at(self, *args) | at(self, _idx) -> enum_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -65802,46 +75348,67 @@ class enum_type_data_t(enum_member_vec_t) | | erase(self, *args) | erase(self, it) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | + | | erase(self, first, last) -> enum_member_t + | first: qvector< enum_member_t >::iterator + | last: qvector< enum_member_t >::iterator | | extract(self, *args) | extract(self) -> enum_member_t | | find(self, *args) | find(self, x) -> enum_member_t + | x: enum_member_t const & + | + | | find(self, x) -> enum_member_t + | x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=enum_member_t()) + | x: enum_member_t const & | | has(self, *args) | has(self, x) -> bool + | x: enum_member_t const & | | inject(self, *args) | inject(self, s, len) + | s: enum_member_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | x: enum_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> enum_member_t + | x: enum_member_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: enum_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -65861,84 +75428,71 @@ class enum_type_data_t(enum_member_vec_t) 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) + extract_argloc(vloc, ptype, is_retval) -> bool + @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 + udm: udt_member_t * + typid: uint32 + 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) + first_named_type(ti, ntf_flags) -> char const * + @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) + for_all_arglocs(vv, vloc, size, off=0) -> 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) - 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) + for_all_const_arglocs(vv, vloc, size, off=0) -> int + @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 *) + free_til(ti) + @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 &) + func_has_stkframe_hole(ea, fti) -> bool + @param ea (C++: ea_t) + @param fti (C++: const func_type_data_t &) Help on class func_type_data_t in module ida_typeinf: @@ -65958,13 +75512,22 @@ class func_type_data_t(funcargvec_t) | __repr__ = _swig_repr(self) | | dump(self, *args) + | Dump information that is not always visible in the function prototype. + | (argument locations, return location, total stkarg size) + | | dump(self, praloc_bits=0x02) -> bool + | @param praloc_bits (C++: int) | | get_call_method(self, *args) | get_call_method(self) -> int | | guess_cc(self, *args) + | Guess function calling convention use the following info: argument + | locations and 'stkargs' + | | guess_cc(self, purged, cc_flags) -> cm_t + | @param purged (C++: int) + | @param cc_flags (C++: int) | | is_high(self, *args) | is_high(self) -> bool @@ -65980,6 +75543,7 @@ class func_type_data_t(funcargvec_t) | | swap(self, *args) | swap(self, r) + | @param r (C++: func_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66016,9 +75580,11 @@ class func_type_data_t(funcargvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> funcarg_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66028,18 +75594,24 @@ class func_type_data_t(funcargvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: funcarg_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: funcarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: funcarg_t const & | | at(self, *args) | at(self, _idx) -> funcarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66063,46 +75635,67 @@ class func_type_data_t(funcargvec_t) | | erase(self, *args) | erase(self, it) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | + | | erase(self, first, last) -> funcarg_t + | first: qvector< funcarg_t >::iterator + | last: qvector< funcarg_t >::iterator | | extract(self, *args) | extract(self) -> funcarg_t | | find(self, *args) | find(self, x) -> funcarg_t + | x: funcarg_t const & + | + | | find(self, x) -> funcarg_t + | x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=funcarg_t()) + | x: funcarg_t const & | | has(self, *args) | has(self, x) -> bool + | x: funcarg_t const & | | inject(self, *args) | inject(self, s, len) + | s: funcarg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | x: funcarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> funcarg_t + | x: funcarg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: funcarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -66128,12 +75721,14 @@ class funcarg_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: funcarg_t const & | | __init__(self, *args) | __init__(self) -> funcarg_t | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: funcarg_t const & | | __repr__ = _swig_repr(self) | @@ -66179,13 +75774,15 @@ class funcargvec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> funcarg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> funcargvec_t - | __init__(self, x) -> funcargvec_t + | x: qvector< funcarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66195,20 +75792,26 @@ class funcargvec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: funcarg_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: funcarg_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: funcarg_t const & | | at(self, *args) | at(self, _idx) -> funcarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66232,52 +75835,74 @@ class funcargvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | + | | erase(self, first, last) -> funcarg_t + | first: qvector< funcarg_t >::iterator + | last: qvector< funcarg_t >::iterator | | extract(self, *args) | extract(self) -> funcarg_t | | find(self, *args) | find(self, x) -> funcarg_t + | x: funcarg_t const & + | + | | find(self, x) -> funcarg_t + | x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=funcarg_t()) + | x: funcarg_t const & | | has(self, *args) | has(self, x) -> bool + | x: funcarg_t const & | | inject(self, *args) | inject(self, s, len) + | s: funcarg_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | x: funcarg_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> funcarg_t + | x: funcarg_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: funcarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< funcarg_t > & | | truncate(self, *args) | truncate(self) @@ -66303,69 +75928,60 @@ class funcargvec_t(__builtin__.object) 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 *) + gen_decorate_name(name, mangle, cc, type) -> str + @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) + @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 gen_use_arg_tinfos2 in module ida_typeinf: + +gen_use_arg_tinfos2(*args) + 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 *) + gen_use_arg_tinfos2(_this, caller, fti, rargs) + @param _this (C++: struct 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) - 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) + get_alias_target(ti, ordinal) -> uint32 + @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 @@ -66374,122 +75990,91 @@ get_arg_addrs(*args) 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) + get_base_type(t) -> type_t + @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) + get_comp(comp) -> comp_t + @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) + get_compiler_abbr(id) -> char const * + @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) + get_compiler_name(id) -> char const * + @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 *) + get_compilers(ids, names, abbrs) + @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 + get_enum_member_expr(tif, serial, value) -> str + @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) + get_full_type(t) -> type_t + @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 &) + get_idainfo_by_type(tif) -> bool + @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. @@ -66498,8 +76083,6 @@ 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 @@ -66511,152 +76094,153 @@ get_named_type(*args) 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) + get_named_type64(til, name, ntf_flags) -> PyObject * + til: til_t const * + @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) + get_numbered_type(til, ordinal) -> PyObject * + til: til_t const * + @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) + get_numbered_type_name(ti, ordinal) -> char const * + @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 *) + get_ordinal_from_idb_type(name, type) -> int + @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 + get_ordinal_qty(ti) -> uint32 + @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 + @param size (C++: int) Help on function get_stock_tinfo in module ida_typeinf: get_stock_tinfo(*args) get_stock_tinfo(tif, id) -> bool + tif: tinfo_t * + id: enum stock_type_id_t Help on function get_tinfo_attr in module ida_typeinf: get_tinfo_attr(*args) get_tinfo_attr(typid, key, bv, all_attrs) -> bool + typid: uint32 + key: qstring const & + bv: bytevec_t * + 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 + typid: uint32 + tav: type_attrs_t * + 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 + typid: uint32 + bt2: type_t + buf: void * Help on function get_tinfo_pdata in module ida_typeinf: get_tinfo_pdata(*args) get_tinfo_pdata(outptr, typid, what) -> size_t + outptr: void * + typid: uint32 + what: int Help on function get_tinfo_property in module ida_typeinf: get_tinfo_property(*args) get_tinfo_property(typid, gta_prop) -> size_t + typid: uint32 + gta_prop: int Help on function get_tinfo_size in module ida_typeinf: get_tinfo_size(*args) get_tinfo_size(p_effalign, typid, gts_code) -> size_t + p_effalign: uint32 * + typid: uint32 + gts_code: int 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) + get_type_flags(t) -> type_t + @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 *) + get_type_ordinal(ti, name) -> int32 + @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) + guess_func_cc(fti, npurged, cc_flags) -> cm_t + @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 + guess_tinfo(tif, id) -> int + @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: @@ -66672,14 +76256,21 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | __init__(self, *args) | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t + | _tif: tinfo_t const & + | _ea: ea_t + | _pb: int | | __repr__ = _swig_repr(self) | | func_has_stkframe_hole(self, *args) | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | @param candidate (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | get_func_purged_bytes(self, *args) | get_func_purged_bytes(self, candidate, arg3) -> int + | @param candidate (C++: const tinfo_t &) + | arg3: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66706,187 +76297,190 @@ 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 + ordinal: int + flags: int + buf: char * + maxsize: size_t 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 + ordinal: int 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 * + ordinal: int Help on function idc_get_type in module ida_typeinf: idc_get_type(*args) idc_get_type(ea) -> str + ea: ea_t Help on function idc_get_type_raw in module ida_typeinf: idc_get_type_raw(*args) idc_get_type_raw(ea) -> PyObject * + ea: ea_t Help on function idc_guess_type in module ida_typeinf: idc_guess_type(*args) idc_guess_type(ea) -> str + ea: ea_t Help on function idc_parse_decl in module ida_typeinf: idc_parse_decl(*args) idc_parse_decl(ti, decl, flags) -> PyObject * + ti: til_t * + decl: char const * + flags: int Help on function idc_parse_types in module ida_typeinf: idc_parse_types(*args) idc_parse_types(input, flags) -> int + input: char const * + flags: int Help on function idc_print_type in module ida_typeinf: idc_print_type(*args) idc_print_type(type, fields, name, flags) -> PyObject * + type: type_t const * + fields: p_list const * + name: char const * + flags: int Help on function idc_set_local_type in module ida_typeinf: idc_set_local_type(*args) idc_set_local_type(ordinal, dcl, flags) -> int + ordinal: int + dcl: char const * + 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 + import_type(til, idx, name, flags=0) -> tid_t + @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? + is_autosync(name, type) -> bool + @param name (C++: const char *) + @param type (C++: const type_t *) - @param name (C++: const char *) - @param type (C++: const type_t *) + + is_autosync(name, tif) -> bool + @param name (C++: const char *) + tif: tinfo_t const & 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) + is_code_far(cm) -> bool + @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) + is_comp_unsure(comp) -> comp_t + @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) + is_data_far(cm) -> bool + @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 *) + is_ordinal_name(name, ord=None) -> bool + @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) + is_purging_cc(cm) -> bool + @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 + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_struct in module ida_typeinf: is_restype_struct(*args) is_restype_struct(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_struni in module ida_typeinf: is_restype_struni(*args) is_restype_struni(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_void in module ida_typeinf: is_restype_void(*args) is_restype_void(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) 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 @@ -66895,539 +76489,405 @@ is_sdacl_byte(*args) in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in the type bit definitions) - @param t (C++: type_t) + is_sdacl_byte(t) -> bool + @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) + is_tah_byte(t) -> bool + @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) + is_type_arithmetic(t) -> bool + @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) + is_type_array(t) -> bool + @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) + is_type_bitfld(t) -> bool + @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) + is_type_bool(t) -> 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) + is_type_char(t) -> bool + @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) + is_type_complex(t) -> bool + @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) + is_type_const(t) -> bool + @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) + is_type_double(t) -> bool + @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) + is_type_enum(t) -> bool + @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) + is_type_ext_arithmetic(t) -> bool + @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) + is_type_ext_integral(t) -> bool + @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) + is_type_float(t) -> bool + @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) + is_type_floating(t) -> bool + @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) + is_type_func(t) -> bool + @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) + is_type_int(bt) -> bool + @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) + is_type_int128(t) -> bool + @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) + is_type_int16(t) -> bool + @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) + is_type_int32(t) -> bool + @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) + is_type_int64(t) -> bool + @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) + is_type_integral(t) -> 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) + is_type_ldouble(t) -> bool + @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) + is_type_paf(t) -> bool + @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) + is_type_partial(t) -> bool + @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) + is_type_ptr(t) -> bool + @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) + is_type_ptr_or_array(t) -> bool + @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) + is_type_struct(t) -> bool + @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) + is_type_struni(t) -> bool + @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) + is_type_sue(t) -> bool + @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) + is_type_tbyte(t) -> bool + @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) + is_type_typedef(t) -> bool + @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) + is_type_uchar(t) -> bool + @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) + is_type_uint(t) -> bool + @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) + is_type_uint128(t) -> bool + @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) + is_type_uint16(t) -> bool + @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) + is_type_uint32(t) -> bool + @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) + is_type_uint64(t) -> bool + @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) + is_type_union(t) -> bool + @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) + is_type_unknown(t) -> bool + @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) + is_type_void(t) -> bool + @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) + is_type_volatile(t) -> bool + @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) + is_typeid_last(t) -> bool + @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) + is_user_cc(cm) -> bool + @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) + is_vararg_cc(cm) -> bool + @param cm (C++: cm_t) Help on function lexcompare_tinfo in module ida_typeinf: lexcompare_tinfo(*args) lexcompare_tinfo(t1, t2, arg3) -> int + t1: uint32 + t2: uint32 + 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 + load_til(name, tildir=None) -> til_t + @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 *) + load_til_header(tildir, name) -> til_t + @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, @@ -67438,10 +76898,14 @@ lower_type(*args) 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 *) + lower_type(til, tif, name=None, _helper=None) -> int + @param til (C++: til_t *) + @param tif (C++: tinfo_t *) + @param name (C++: const char *) + @param _helper (C++: lowertype_helper_t *) + @retval: 1 - removed FTI_HIGH , + @retval: 2 - made substantial changes + @retval: -1 - failure Help on class lowertype_helper_t in module ida_typeinf: @@ -67456,9 +76920,13 @@ class lowertype_helper_t(__builtin__.object) | | func_has_stkframe_hole(self, *args) | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | @param candidate (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | get_func_purged_bytes(self, *args) | get_func_purged_bytes(self, candidate, candidate_data) -> int + | @param candidate (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67481,76 +76949,64 @@ class lowertype_helper_t(__builtin__.object) 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 *) + new_til(name, desc) -> til_t + @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) + next_named_type(ti, name, ntf_flags) -> char const * + @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 *) + optimize_argloc(vloc, size, gaps) -> bool + @param vloc (C++: argloc_t *) + @param size (C++: int) + @param gaps (C++: const rangeset_t *) + @retval: true - success + @retval: false - the input argloc was illegal 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) + pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t + @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) + pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t + @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 @@ -67565,8 +77021,6 @@ 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 @@ -67579,37 +77033,36 @@ pack_object_to_idb(*args) 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) + parse_decl(tif, til, decl, flags) -> str + @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) + @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) - 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. + parse_decls(til, input, printer, hti_flags) -> int + @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: @@ -67622,11 +77075,16 @@ class predicate_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> predicate_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | should_display(self, *args) | should_display(self, til, name, type, fields) -> bool + | @param til (C++: const til_t *) + | @param name (C++: const char *) + | @param type (C++: const type_t *) + | @param fields (C++: const p_list *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67649,46 +77107,51 @@ class predicate_t(__builtin__.object) 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) + print_argloc(vloc, size=0, vflags=0) -> str + @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) + print_decls(printer, til, py_ordinals, flags) -> PyObject * + @param printer: a handler for printing text (C++: text_sink_t &) + @param til: the type library holding the ordinals (C++: til_t *) + py_ordinals: PyObject * + @param flags: flags for the algorithm. A combination of PDF_* + constants (C++: uint32) + @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) print_tinfo(prefix, indent, cmtindent, flags, tif, name, cmt) -> str + prefix: char const * + indent: int + cmtindent: int + flags: int + tif: tinfo_t const * + name: char const * + cmt: char const * 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 + print_type(ea, prtype_flags) -> str + @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: @@ -67699,23 +77162,32 @@ class ptr_type_data_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | 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 + | c: tinfo_t + | bps: uchar + | p: tinfo_t + | d: int32 | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: ptr_type_data_t const & | | __repr__ = _swig_repr(self) | | is_code_ptr(self, *args) - | is_code_ptr(self) -> bool + | Are we pointing to code? | | is_shifted(self, *args) | is_shifted(self) -> bool | | swap(self, *args) + | Set this = r and r = this. + | | swap(self, r) + | @param r (C++: ptr_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67757,6 +77229,9 @@ Help on function read_tinfo_bitfield_value in module ida_typeinf: read_tinfo_bitfield_value(*args) read_tinfo_bitfield_value(typid, v, bitoff) -> uint64 + typid: uint32 + v: uint64 + bitoff: int Help on class reginfovec_t in module ida_typeinf: @@ -67767,13 +77242,15 @@ class reginfovec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< reg_info_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> reg_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> reginfovec_t - | __init__(self, x) -> reginfovec_t + | 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. @@ -67782,17 +77259,22 @@ class reginfovec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< reg_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: reg_info_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: reg_info_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: reg_info_t const & | | append = push_back(self, *args) | @@ -67820,52 +77302,74 @@ class reginfovec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> reg_info_t + | it: qvector< reg_info_t >::iterator + | + | | erase(self, first, last) -> reg_info_t + | first: qvector< reg_info_t >::iterator + | last: qvector< reg_info_t >::iterator | | extract(self, *args) | extract(self) -> reg_info_t | | find(self, *args) | find(self, x) -> reg_info_t + | x: reg_info_t const & + | + | | find(self, x) -> reg_info_t + | x: reg_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=reg_info_t()) + | x: reg_info_t const & | | has(self, *args) | has(self, x) -> bool + | x: reg_info_t const & | | inject(self, *args) | inject(self, s, len) + | s: reg_info_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> reg_info_t + | it: qvector< reg_info_t >::iterator + | x: reg_info_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> reg_info_t + | x: reg_info_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< reg_info_t > & | | truncate(self, *args) | truncate(self) @@ -67964,6 +77468,7 @@ class regobjs_t(regobjvec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> regobj_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -67973,9 +77478,12 @@ class regobjs_t(regobjvec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: regobj_t const & | | at(self, *args) | at(self, _idx) -> regobj_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -67999,7 +77507,12 @@ class regobjs_t(regobjvec_t) | | erase(self, *args) | erase(self, it) -> regobj_t + | it: qvector< regobj_t >::iterator + | + | | erase(self, first, last) -> regobj_t + | first: qvector< regobj_t >::iterator + | last: qvector< regobj_t >::iterator | | extract(self, *args) | extract(self) -> regobj_t @@ -68009,35 +77522,47 @@ class regobjs_t(regobjvec_t) | | grow(self, *args) | grow(self, x=regobj_t()) + | x: regobj_t const & | | inject(self, *args) | inject(self, s, len) + | s: regobj_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> regobj_t + | it: qvector< regobj_t >::iterator + | x: regobj_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> regobj_t + | x: regobj_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: regobj_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< regobj_t > & | | truncate(self, *args) | truncate(self) @@ -68060,10 +77585,11 @@ class regobjvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> regobj_t + | i: size_t | | __init__(self, *args) | __init__(self) -> regobjvec_t - | __init__(self, x) -> regobjvec_t + | x: qvector< regobj_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68075,9 +77601,12 @@ class regobjvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: regobj_t const & | | at(self, *args) | at(self, _idx) -> regobj_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -68101,7 +77630,12 @@ class regobjvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> regobj_t + | it: qvector< regobj_t >::iterator + | + | | erase(self, first, last) -> regobj_t + | first: qvector< regobj_t >::iterator + | last: qvector< regobj_t >::iterator | | extract(self, *args) | extract(self) -> regobj_t @@ -68111,35 +77645,47 @@ class regobjvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=regobj_t()) + | x: regobj_t const & | | inject(self, *args) | inject(self, s, len) + | s: regobj_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> regobj_t + | it: qvector< regobj_t >::iterator + | x: regobj_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> regobj_t + | x: regobj_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: regobj_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< regobj_t > & | | truncate(self, *args) | truncate(self) @@ -68166,49 +77712,49 @@ Help on function remove_abi_opts in module ida_typeinf: remove_abi_opts(*args) remove_abi_opts(abi_opts, user_level=False) -> bool + @param abi_opts (C++: const char *) + @param user_level (C++: 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 + '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 &) + remove_pointer(tif) -> tinfo_t + @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 *) + remove_tinfo_pointer(tif, name, til) -> PyObject * + @param tif (C++: tinfo_t *) + name: char const * + @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 *) + replace_ordinal_typerefs(til, tif) -> int + @param til: type library to use. may be NULL. (C++: til_t *) + @param tif: type to modify (in/out) (C++: tinfo_t *) + @retval: number - of replaced subtypes, -1 on failure Help on function resolve_typedef in module ida_typeinf: resolve_typedef(*args) resolve_typedef(til, type) -> type_t const * + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on class rrel_t in module ida_typeinf: @@ -68250,6 +77796,11 @@ Help on function save_tinfo in module ida_typeinf: save_tinfo(*args) save_tinfo(tif, til, ord, name, ntf_flags) -> tinfo_code_t + tif: tinfo_t * + til: til_t * + ord: size_t + name: char const * + ntf_flags: int Help on class scattered_aloc_t in module ida_typeinf: @@ -68285,9 +77836,11 @@ class scattered_aloc_t(argpartvec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< argpart_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> argpart_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68297,18 +77850,24 @@ class scattered_aloc_t(argpartvec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< argpart_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: argpart_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: argpart_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: argpart_t const & | | at(self, *args) | at(self, _idx) -> argpart_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -68332,52 +77891,74 @@ class scattered_aloc_t(argpartvec_t) | | erase(self, *args) | erase(self, it) -> argpart_t + | it: qvector< argpart_t >::iterator + | + | | erase(self, first, last) -> argpart_t + | first: qvector< argpart_t >::iterator + | last: qvector< argpart_t >::iterator | | extract(self, *args) | extract(self) -> argpart_t | | find(self, *args) | find(self, x) -> argpart_t + | x: argpart_t const & + | + | | find(self, x) -> argpart_t + | x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=argpart_t()) + | x: argpart_t const & | | has(self, *args) | has(self, x) -> bool + | x: argpart_t const & | | inject(self, *args) | inject(self, s, len) + | s: argpart_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> argpart_t + | it: qvector< argpart_t >::iterator + | x: argpart_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> argpart_t + | x: argpart_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: argpart_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< argpart_t > & | | truncate(self, *args) | truncate(self) @@ -68395,124 +77976,124 @@ Help on function score_tinfo in module ida_typeinf: score_tinfo(*args) score_tinfo(tif) -> uint32 + tif: tinfo_t const * Help on function serialize_tinfo in module ida_typeinf: serialize_tinfo(*args) serialize_tinfo(type, fields, fldcmts, tif, sudt_flags) -> bool + type: qtype * + fields: qtype * + fldcmts: qtype * + tif: tinfo_t const * + sudt_flags: int 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) + set_abi_name(abiname, user_level=False) -> bool + @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 *) + set_c_header_path(incdir) + @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 *) + set_c_macros(macros) + @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 + set_compiler(cc, flags, abiname=None) -> bool + @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 *) + set_compiler_id(id, abiname=None) -> bool + @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 + @param compstr: - compiler description in form : (C++: + const char *) + @param user_level: - initiated by user if TRUE (C++: bool) + @return: success 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 *) + set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t + @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 + tif: tinfo_t * + ta: type_attr_t const & + may_overwrite: bool Help on function set_tinfo_attrs in module ida_typeinf: set_tinfo_attrs(*args) set_tinfo_attrs(tif, ta) -> bool + tif: tinfo_t * + ta: type_attrs_t * Help on function set_tinfo_property in module ida_typeinf: set_tinfo_property(*args) set_tinfo_property(tif, sta_prop, x) -> size_t + tif: tinfo_t * + sta_prop: int + 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) + set_type_alias(ti, src_ordinal, dst_ordinal) -> bool + @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: @@ -68523,11 +78104,15 @@ class simd_info_t(__builtin__.object) | | __init__(self, *args) | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t + | nm: char const * + | sz: uint16 + | memt: type_t | | __repr__ = _swig_repr(self) | | match_pattern(self, *args) | match_pattern(self, pattern) -> bool + | @param pattern (C++: const simd_info_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68562,20 +78147,18 @@ class simd_info_t(__builtin__.object) 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 + store_til(ti, tildir, name) -> bool + @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: @@ -68588,11 +78171,13 @@ class text_sink_t(__builtin__.object) | | __init__(self, *args) | __init__(self) -> text_sink_t + | self: PyObject * | | __repr__ = _swig_repr(self) | | _print(self, *args) | _print(self, str) -> int + | str: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68621,6 +78206,8 @@ class til_symbol_t(__builtin__.object) | | __init__(self, *args) | __init__(self, n=None, t=None) -> til_symbol_t + | n: char const * + | t: til_t const * | | __repr__ = _swig_repr(self) | @@ -68662,12 +78249,13 @@ class til_t(__builtin__.object) | | base(self, *args) | base(self, n) -> til_t + | n: int | | is_dirty(self, *args) - | is_dirty(self) -> bool + | Has the til been modified? ( 'TIL_MOD' ) | | set_dirty(self, *args) - | set_dirty(self) + | Mark the til as modified ( 'TIL_MOD' ) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68720,26 +78308,35 @@ class tinfo_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: tinfo_t const & | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: tinfo_t const & | | __gt__(self, *args) | __gt__(self, r) -> bool + | r: tinfo_t const & | | __init__(self, *args) | __init__(self) -> tinfo_t - | __init__(self, decl_type) -> tinfo_t + | decl_type: type_t + | + | | __init__(self, r) -> tinfo_t + | r: tinfo_t const & | | __le__(self, *args) | __le__(self, r) -> bool + | r: tinfo_t const & | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: tinfo_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: tinfo_t const & | | __repr__ = _swig_repr(self) | @@ -68748,27 +78345,49 @@ class tinfo_t(__builtin__.object) | | _print(self, *args) | _print(self, name=None, prtype_flags=0, indent=0, cmtindent=0, prefix=None, cmt=None) -> bool + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * | | append_covered(self, *args) + | Calculate set of covered bytes for the type + | | append_covered(self, out, offset=0) -> bool + | @param out: pointer to the output buffer. covered bytes will be + | appended to it. (C++: rangeset_t *) + | @param offset (C++: uint64) | | calc_gaps(self, *args) + | Calculate set of padding bytes for the type + | | calc_gaps(self, out) -> bool + | @param out: pointer to the output buffer; old buffer contents will be + | lost. (C++: rangeset_t *) | | calc_purged_bytes(self, *args) - | calc_purged_bytes(self) -> int + | 'BT_FUNC' : Calculate number of purged bytes | | calc_score(self, *args) - | calc_score(self) -> uint32 + | Calculate the type score (the higher - the nicer is the type) | | calc_udt_aligns(self, *args) + | Calculate the udt alignments using the field offsets/sizes and the + | total udt size This function does not work on typerefs + | | calc_udt_aligns(self, sudt_flags=0x0004) -> bool + | @param sudt_flags (C++: int) | | change_sign(self, *args) + | Change the type sign. Works only for the types that may have sign. + | | change_sign(self, sign) -> bool + | @param sign (C++: type_sign_t) | | clear(self, *args) - | clear(self) + | Clear contents of this tinfo, and remove from the type system. | | clr_const(self, *args) | clr_const(self) @@ -68781,528 +78400,764 @@ class tinfo_t(__builtin__.object) | | compare(self, *args) | compare(self, r) -> int + | r: tinfo_t const & | | compare_with(self, *args) + | Compare two types, based on given flags (see 'tinfo_t comparison + | flags' ) + | | compare_with(self, r, tcflags=0) -> bool + | @param r (C++: const tinfo_t &) + | @param tcflags (C++: int) | | convert_array_to_ptr(self, *args) - | convert_array_to_ptr(self) -> bool + | Convert an array into a pointer. type[] => type * | | copy(self, *args) | copy(self) -> tinfo_t | | create_array(self, *args) | create_array(self, p, decl_type=BT_ARRAY) -> bool + | @param p (C++: const array_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool + | tif: tinfo_t const & + | nelems: uint32 + | base: uint32 + | @param decl_type (C++: type_t) | | create_bitfield(self, *args) | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool + | @param p (C++: const bitfield_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool + | nbytes: uchar + | width: uchar + | is_unsigned: bool + | @param decl_type (C++: type_t) | | create_enum(self, *args) | create_enum(self, p, decl_type=BTF_ENUM) -> bool + | p: enum_type_data_t & + | decl_type: type_t | | create_forward_decl(self, *args) + | Create a forward declaration. decl_type: 'BTF_STRUCT' , 'BTF_UNION' , + | or 'BTF_ENUM' + | | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t + | @param til (C++: til_t *) + | @param decl_type (C++: type_t) + | @param name (C++: const char *) + | @param ntf_flags (C++: int) | | create_func(self, *args) | create_func(self, p, decl_type=BT_FUNC) -> bool + | p: func_type_data_t & + | decl_type: type_t | | create_ptr(self, *args) | create_ptr(self, p, decl_type=BT_PTR) -> bool + | @param p (C++: const ptr_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool + | tif: tinfo_t const & + | bps: uchar + | @param decl_type (C++: type_t) | | create_simple_type(self, *args) | create_simple_type(self, decl_type) -> bool + | @param decl_type (C++: type_t) | | create_typedef(self, *args) | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool + | @param p (C++: const typedef_type_data_t &) + | @param decl_type (C++: type_t) + | @param try_ordinal (C++: bool) + | + | | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) + | til: til_t const * + | name: char const * + | @param decl_type (C++: type_t) + | @param try_ordinal (C++: bool) + | + | | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) + | til: til_t const * + | ord: uint + | @param decl_type (C++: type_t) | | create_udt(self, *args) | create_udt(self, p, decl_type) -> bool + | p: udt_type_data_t & + | decl_type: type_t | | del_attr(self, *args) + | Del a type attribute. typerefs cannot be modified by this function. + | | del_attr(self, key, make_copy=True) -> bool + | @param key (C++: const qstring &) + | @param make_copy (C++: bool) | | del_attrs(self, *args) - | del_attrs(self) + | Del all type attributes. typerefs cannot be modified by this function. | | deserialize(self, *args) + | Deserialize a type string into a 'tinfo_t' object. + | | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool + | @param til (C++: const til_t *) + | @param ptype (C++: const type_t **) + | @param pfields (C++: const p_list **) + | @param pfldcmts (C++: const p_list **) + | + | | deserialize(self, til, type, fields, cmts=None) -> bool + | @param til (C++: const til_t *) + | type: type_t const * + | fields: p_list const * + | cmts: p_list const * | | dstr(self, *args) - | dstr(self) -> char const * + | Function to facilitate debugging. | | empty(self, *args) - | empty(self) -> bool + | Was 'tinfo_t' initialized with some type info or not? | | equals_to(self, *args) | equals_to(self, r) -> bool + | @param r (C++: const tinfo_t &) | | find_udt_member(self, *args) + | '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' ) + | | find_udt_member(self, udm, strmem_flags) -> int + | @param udm (C++: struct udt_member_t *) + | @param strmem_flags (C++: int) + | @return: the index of the found member or -1 | | get_array_details(self, *args) + | Get the array specific info. + | | get_array_details(self, ai) -> bool + | @param ai (C++: array_type_data_t *) | | get_array_element(self, *args) - | get_array_element(self) -> tinfo_t + | 'BT_ARRAY' : get type of array element. See also + | 'get_ptrarr_object()' | | get_array_nelems(self, *args) - | get_array_nelems(self) -> int + | 'BT_ARRAY' : get number of elements (-1 means error) | | get_attr(self, *args) + | Get a type attribute. + | | get_attr(self, key, all_attrs=True) -> PyObject * + | @param key (C++: const qstring &) + | @param all_attrs (C++: bool) | | get_attrs(self, *args) + | Get type attributes (all_attrs: include attributes of referenced + | types, if any) + | | get_attrs(self, tav, all_attrs=False) -> bool + | @param tav (C++: type_attrs_t *) + | @param all_attrs (C++: bool) | | get_bitfield_details(self, *args) + | Get the bitfield specific info. + | | get_bitfield_details(self, bi) -> bool + | @param bi (C++: bitfield_type_data_t *) | | get_declalign(self, *args) - | get_declalign(self) -> uchar + | Get declared alignment of the type. | | get_decltype(self, *args) - | 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) - | 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) + | Get the enum specific info. + | | get_enum_details(self, ei) -> bool + | @param ei (C++: enum_type_data_t *) | | get_final_ordinal(self, *args) - | get_final_ordinal(self) -> uint32 + | Get final type ordinal (0 is none) | | get_final_type_name(self, *args) - | get_final_type_name(self) -> bool + | Use in the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). | | get_func_details(self, *args) + | Get only the function specific info for this 'tinfo_t' . + | | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool + | @param fi (C++: func_type_data_t *) + | @param gtd (C++: gtd_func_t) | | get_modifiers(self, *args) | get_modifiers(self) -> type_t | | get_named_type(self, *args) + | Create a 'tinfo_t' object for an existing named type. + | | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool + | @param til: type library to use (C++: const til_t *) + | @param name: name of the type to link to (C++: const char *) + | @param decl_type: 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 (C++: type_t) + | @param resolve: true: immediately resolve the type and return success + | code. false: return true but do not immediately + | resolve the type (C++: bool) + | @param try_ordinal: true: try to replace name reference by an ordinal + | reference (C++: bool) | | get_nargs(self, *args) - | get_nargs(self) -> int + | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Calculate number of arguments (-1 + | - error) | | get_next_type_name(self, *args) - | get_next_type_name(self) -> bool + | Use In the case of typedef chain (TYPE1 -> TYPE2 -> TYPE3...TYPEn). | | get_nth_arg(self, *args) + | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get type of n-th arg (-1 means + | return type, see 'get_rettype()' ) + | | get_nth_arg(self, n) -> tinfo_t + | @param n (C++: int) | | get_numbered_type(self, *args) + | Create a 'tinfo_t' object for an existing ordinal type. + | | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool + | @param til: type library to use (C++: const til_t *) + | @param ordinal: number of the type to link to (C++: uint32) + | @param decl_type: 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 (C++: type_t) + | @param resolve: true: immediately resolve the type and return success + | code false: return true but do not immediately resolve + | the type (C++: bool) | | get_onemember_type(self, *args) - | get_onemember_type(self) -> tinfo_t + | For objects consisting of one member entirely: return type of the + | member. | | get_ordinal(self, *args) - | 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) - | get_pointed_object(self) -> tinfo_t + | 'BT_PTR' : get type of pointed object. If the current type is not a + | pointer, return empty type info. See also 'get_ptrarr_object()' and + | 'remove_pointer()' | | get_ptr_details(self, *args) + | Get the pointer info. + | | get_ptr_details(self, pi) -> bool + | @param pi (C++: ptr_type_data_t *) | | get_ptrarr_object(self, *args) - | 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) - | 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) + | 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 + | | get_realtype(self, full=False) -> type_t + | @param full (C++: bool) | | get_rettype(self, *args) - | get_rettype(self) -> tinfo_t + | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get the function's return type | | get_sign(self, *args) - | get_sign(self) -> type_sign_t + | Get type sign. | | get_size(self, *args) + | Get the type size in bytes. + | | get_size(self, p_effalign=None, gts_code=0) -> size_t + | @param p_effalign: buffer for the alignment value (C++: uint32 *) + | @param gts_code: combination of GTS_... constants (C++: int) + | @return: BADSIZE in case of problems | | get_til(self, *args) - | get_til(self) -> til_t + | Get the type library for 'tinfo_t' . | | get_type_name(self, *args) - | 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) + | Get the udt specific info. + | | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool + | @param udt (C++: udt_type_data_t *) + | @param gtd (C++: gtd_udt_t) | | get_udt_nmembers(self, *args) - | get_udt_nmembers(self) -> int + | Get number of udt members. -1-error. | | get_unpadded_size(self, *args) - | 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) - | has_details(self) -> bool + | Does this type refer to a nontrivial type? | | has_vftable(self, *args) - | has_vftable(self) -> bool + | Has a vftable? | | is_anonymous_udt(self, *args) - | 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) - | is_arithmetic(self) -> bool + | \isreal{is_type_arithmetic} | | is_array(self, *args) - | is_array(self) -> bool + | \isreal{is_type_array} | | is_bitfield(self, *args) - | is_bitfield(self) -> bool + | \isreal{is_type_bitfld} | | is_bool(self, *args) - | is_bool(self) -> bool + | \isreal{is_type_bool} | | is_castable_to(self, *args) | is_castable_to(self, target) -> bool + | @param target (C++: const tinfo_t &) | | is_char(self, *args) - | is_char(self) -> bool + | \isreal{is_type_char} | | is_complex(self, *args) - | is_complex(self) -> bool + | \isreal{is_type_complex} | | is_const(self, *args) - | is_const(self) -> bool + | \isreal{is_type_const} | | is_correct(self, *args) - | 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) - | is_decl_array(self) -> bool + | \isdecl{is_type_array} | | is_decl_bitfield(self, *args) - | is_decl_bitfield(self) -> bool + | \isdecl{is_type_bitfld} | | is_decl_bool(self, *args) - | is_decl_bool(self) -> bool + | \isdecl{is_type_bool} | | is_decl_char(self, *args) - | is_decl_char(self) -> bool + | \isdecl{is_type_char} | | is_decl_complex(self, *args) - | is_decl_complex(self) -> bool + | \isdecl{is_type_complex} | | is_decl_const(self, *args) - | is_decl_const(self) -> bool + | \isdecl{is_type_const} | | is_decl_double(self, *args) - | is_decl_double(self) -> bool + | \isdecl{is_type_double} | | is_decl_enum(self, *args) - | is_decl_enum(self) -> bool + | \isdecl{is_type_enum} | | is_decl_float(self, *args) - | is_decl_float(self) -> bool + | \isdecl{is_type_float} | | is_decl_floating(self, *args) - | is_decl_floating(self) -> bool + | \isdecl{is_type_floating} | | is_decl_func(self, *args) - | is_decl_func(self) -> bool + | \isdecl{is_type_func} | | is_decl_int(self, *args) - | is_decl_int(self) -> bool + | \isdecl{is_type_int} | | is_decl_int128(self, *args) - | is_decl_int128(self) -> bool + | \isdecl{is_type_int128} | | is_decl_int16(self, *args) - | is_decl_int16(self) -> bool + | \isdecl{is_type_int16} | | is_decl_int32(self, *args) - | is_decl_int32(self) -> bool + | \isdecl{is_type_int32} | | is_decl_int64(self, *args) - | is_decl_int64(self) -> bool + | \isdecl{is_type_int64} | | is_decl_last(self, *args) - | is_decl_last(self) -> bool + | \isdecl{is_typeid_last} | | is_decl_ldouble(self, *args) - | is_decl_ldouble(self) -> bool + | \isdecl{is_type_ldouble} | | is_decl_paf(self, *args) - | is_decl_paf(self) -> bool + | \isdecl{is_type_paf} | | is_decl_partial(self, *args) - | is_decl_partial(self) -> bool + | \isdecl{is_type_partial} | | is_decl_ptr(self, *args) - | is_decl_ptr(self) -> bool + | \isdecl{is_type_ptr} | | is_decl_struct(self, *args) - | is_decl_struct(self) -> bool + | \isdecl{is_type_struct} | | is_decl_sue(self, *args) - | is_decl_sue(self) -> bool + | \isdecl{is_type_sue} | | is_decl_tbyte(self, *args) - | is_decl_tbyte(self) -> bool + | \isdecl{is_type_tbyte} | | is_decl_typedef(self, *args) - | is_decl_typedef(self) -> bool + | \isdecl{is_type_typedef} | | is_decl_uchar(self, *args) - | is_decl_uchar(self) -> bool + | \isdecl{is_type_uchar} | | is_decl_udt(self, *args) - | is_decl_udt(self) -> bool + | \isdecl{is_type_struni} | | is_decl_uint(self, *args) - | is_decl_uint(self) -> bool + | \isdecl{is_type_uint} | | is_decl_uint128(self, *args) - | is_decl_uint128(self) -> bool + | \isdecl{is_type_uint128} | | is_decl_uint16(self, *args) - | is_decl_uint16(self) -> bool + | \isdecl{is_type_uint16} | | is_decl_uint32(self, *args) - | is_decl_uint32(self) -> bool + | \isdecl{is_type_uint32} | | is_decl_uint64(self, *args) - | is_decl_uint64(self) -> bool + | \isdecl{is_type_uint64} | | is_decl_union(self, *args) - | is_decl_union(self) -> bool + | \isdecl{is_type_union} | | is_decl_unknown(self, *args) - | is_decl_unknown(self) -> bool + | \isdecl{is_type_unknown} | | is_decl_void(self, *args) - | is_decl_void(self) -> bool + | \isdecl{is_type_void} | | is_decl_volatile(self, *args) - | is_decl_volatile(self) -> bool + | \isdecl{is_type_volatile} | | is_double(self, *args) - | is_double(self) -> bool + | \isreal{is_type_double} | | is_empty_udt(self, *args) - | is_empty_udt(self) -> bool + | Is an empty struct/union? (has no fields) | | is_enum(self, *args) - | is_enum(self) -> bool + | \isreal{is_type_enum} | | is_ext_arithmetic(self, *args) - | is_ext_arithmetic(self) -> bool + | \isreal{is_type_ext_arithmetic} | | is_ext_integral(self, *args) - | is_ext_integral(self) -> bool + | \isreal{is_type_ext_integral} | | is_float(self, *args) - | is_float(self) -> bool + | \isreal{is_type_float} | | is_floating(self, *args) - | is_floating(self) -> bool + | \isreal{is_type_floating} | | is_forward_decl(self, *args) - | 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) - | 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) - | is_func(self) -> bool + | \isreal{is_type_func} | | is_funcptr(self, *args) - | is_funcptr(self) -> bool + | Is this pointer to a function? | | is_high_func(self, *args) - | is_high_func(self) -> bool + | 'BT_FUNC' : Is high level type? | | is_int(self, *args) - | is_int(self) -> bool + | \isreal{is_type_int} | | is_int128(self, *args) - | is_int128(self) -> bool + | \isreal{is_type_int128} | | is_int16(self, *args) - | is_int16(self) -> bool + | \isreal{is_type_int16} | | is_int32(self, *args) - | is_int32(self) -> bool + | \isreal{is_type_int32} | | is_int64(self, *args) - | is_int64(self) -> bool + | \isreal{is_type_int64} | | is_integral(self, *args) - | is_integral(self) -> bool + | \isreal{is_type_integral} | | is_ldouble(self, *args) - | is_ldouble(self) -> bool + | \isreal{is_type_ldouble} | | is_manually_castable_to(self, *args) | is_manually_castable_to(self, target) -> bool + | @param target (C++: const tinfo_t &) | | is_one_fpval(self, *args) - | is_one_fpval(self) -> bool + | Floating value or an object consisting of one floating member + | entirely. | | is_paf(self, *args) - | is_paf(self) -> bool + | \isreal{is_type_paf} | | is_partial(self, *args) - | is_partial(self) -> bool + | \isreal{is_type_partial} | | is_ptr(self, *args) - | is_ptr(self) -> bool + | \isreal{is_type_ptr} | | is_ptr_or_array(self, *args) - | is_ptr_or_array(self) -> bool + | \isreal{is_type_ptr_or_array} | | is_purging_cc(self, *args) - | is_purging_cc(self) -> bool + | \tinfocc{is_purging_cc} | | is_pvoid(self, *args) - | is_pvoid(self) -> bool + | Is "void *"?. This function does not check the pointer attributes and + | type modifiers. | | is_scalar(self, *args) - | is_scalar(self) -> bool + | Does the type represent a single number? | | is_shifted_ptr(self, *args) - | is_shifted_ptr(self) -> bool + | Is a shifted pointer? | | is_signed(self, *args) - | is_signed(self) -> bool + | Is this a signed type? | | is_small_udt(self, *args) - | is_small_udt(self) -> bool + | Is a small udt? (can fit a register or a pair of registers) | | is_sse_type(self, *args) - | is_sse_type(self) -> bool + | Is a SSE vector type? | | is_struct(self, *args) - | is_struct(self) -> bool + | \isreal{is_type_struct} | | is_sue(self, *args) - | is_sue(self) -> bool + | \isreal{is_type_sue} | | is_tbyte(self, *args) - | is_tbyte(self) -> bool + | \isreal{is_type_tbyte} | | is_typeref(self, *args) - | 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) - | is_uchar(self) -> bool + | \isreal{is_type_uchar} | | is_udt(self, *args) - | is_udt(self) -> bool + | \isreal{is_type_struni} | | is_uint(self, *args) - | is_uint(self) -> bool + | \isreal{is_type_uint} | | is_uint128(self, *args) - | is_uint128(self) -> bool + | \isreal{is_type_uint128} | | is_uint16(self, *args) - | is_uint16(self) -> bool + | \isreal{is_type_uint16} | | is_uint32(self, *args) - | is_uint32(self) -> bool + | \isreal{is_type_uint32} | | is_uint64(self, *args) - | is_uint64(self) -> bool + | \isreal{is_type_uint64} | | is_union(self, *args) - | is_union(self) -> bool + | \isreal{is_type_union} | | is_unknown(self, *args) - | is_unknown(self) -> bool + | \isreal{is_type_unknown} | | is_unsigned(self, *args) - | is_unsigned(self) -> bool + | Is this an unsigned type? | | is_user_cc(self, *args) - | is_user_cc(self) -> bool + | \tinfocc{is_user_cc} | | is_vararg_cc(self, *args) - | is_vararg_cc(self) -> bool + | \tinfocc{is_vararg_cc} | | is_varstruct(self, *args) - | is_varstruct(self) -> bool + | Is a variable-size structure? | | is_vftable(self, *args) - | is_vftable(self) -> bool + | Is a vftable type? | | is_void(self, *args) - | is_void(self) -> bool + | \isreal{is_type_void} | | is_volatile(self, *args) - | is_volatile(self) -> bool + | \isreal{is_type_volatile} | | is_well_defined(self, *args) - | is_well_defined(self) -> bool + | !( 'empty()' ) && !( 'is_decl_partial()' ) | | present(self, *args) - | present(self) -> bool + | Is the type really present? (not a reference to a missing type, for + | example) | | read_bitfield_value(self, *args) | read_bitfield_value(self, v, bitoff) -> uint64 + | v: uint64 + | bitoff: int | | remove_ptr_or_array(self, *args) - | 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[] => typetype* + | => type If the conversion is performed successfully, return true | | requires_qualifier(self, *args) + | Requires full qualifier? (name is not unique) + | | requires_qualifier(self, name, offset) -> bool + | @param name: field name (C++: const char *) + | @param offset (C++: uint64) + | @return: if the name is not unique, returns true | | serialize(self, *args) + | Serialize 'tinfo_t' object into a type string. + | | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * + | @param sudt_flags (C++: int) | | set_attr(self, *args) + | Set a type attribute. If necessary, a new typid will be created. + | | set_attr(self, ta, may_overwrite=True) -> bool + | @param ta (C++: const type_attr_t &) + | @param may_overwrite (C++: bool) | | set_attrs(self, *args) + | Set type attributes. If necessary, a new typid will be created. this + | function modifies tav! (returns old attributes, if any) + | | set_attrs(self, tav) -> bool + | @param tav (C++: type_attrs_t *) + | @return: false: bad attributes | | set_const(self, *args) | set_const(self) | | set_declalign(self, *args) + | Set declared alignment of the type. + | | set_declalign(self, declalign) -> bool + | @param declalign (C++: uchar) | | set_modifiers(self, *args) | set_modifiers(self, mod) + | mod: type_t | | set_named_type(self, *args) | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | til: til_t * + | name: char const * + | ntf_flags: int | | set_numbered_type(self, *args) | set_numbered_type(self, til, ord, ntf_flags=0, name=None) -> tinfo_code_t + | til: til_t * + | ord: uint32 + | ntf_flags: int + | name: char const * | | set_symbol_type(self, *args) | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | til: til_t * + | name: char const * + | ntf_flags: int | | set_volatile(self, *args) | set_volatile(self) | | swap(self, *args) + | Assign this = r and r = this. + | | swap(self, r) + | @param r (C++: tinfo_t &) | | write_bitfield_value(self, *args) | write_bitfield_value(self, dst, v, bitoff) -> uint64 + | dst: uint64 + | v: uint64 + | bitoff: int | | ---------------------------------------------------------------------- | Static methods defined here: | | get_stock(*args) | get_stock(id) -> tinfo_t + | id: enum stock_type_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69326,6 +79181,7 @@ Help on function tinfo_t_get_stock in module ida_typeinf: tinfo_t_get_stock(*args) tinfo_t_get_stock(id) -> tinfo_t + id: enum stock_type_id_t Help on class tinfo_visitor_t in module ida_typeinf: @@ -69338,17 +79194,34 @@ class tinfo_visitor_t(__builtin__.object) | | __init__(self, *args) | __init__(self, s=0) -> tinfo_visitor_t + | s: int | | __repr__ = _swig_repr(self) | | apply_to(self, *args) + | Call this function to initiate the traversal. + | | apply_to(self, tif, out=None, name=None, cmt=None) -> int + | @param tif (C++: const tinfo_t &) + | @param out (C++: type_mods_t *) + | @param name (C++: const char *) + | @param cmt (C++: const char *) | | prune_now(self, *args) - | prune_now(self) + | To refuse to visit children of the current type, use this: | | visit_type(self, *args) + | 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 NULL) return 0 to continue the traversal. return !=0 to + | stop the traversal. + | | visit_type(self, out, tif, name, cmt) -> int + | @param out (C++: type_mods_t *) + | @param tif (C++: const tinfo_t &) + | @param name (C++: const char *) + | @param cmt (C++: const char *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69380,12 +79253,14 @@ class type_attr_t(__builtin__.object) | | __ge__(self, *args) | __ge__(self, r) -> bool + | r: type_attr_t const & | | __init__(self, *args) | __init__(self) -> type_attr_t | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: type_attr_t const & | | __repr__ = _swig_repr(self) | @@ -69422,10 +79297,11 @@ class type_attrs_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> type_attr_t + | i: size_t | | __init__(self, *args) | __init__(self) -> type_attrs_t - | __init__(self, x) -> type_attrs_t + | 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. @@ -69437,9 +79313,12 @@ class type_attrs_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: type_attr_t const & | | at(self, *args) | at(self, _idx) -> type_attr_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -69463,7 +79342,12 @@ class type_attrs_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> type_attr_t + | it: qvector< type_attr_t >::iterator + | + | | erase(self, first, last) -> type_attr_t + | first: qvector< type_attr_t >::iterator + | last: qvector< type_attr_t >::iterator | | extract(self, *args) | extract(self) -> type_attr_t @@ -69473,35 +79357,47 @@ class type_attrs_t(__builtin__.object) | | grow(self, *args) | grow(self, x=type_attr_t()) + | x: type_attr_t const & | | inject(self, *args) | inject(self, s, len) + | s: type_attr_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> type_attr_t + | it: qvector< type_attr_t >::iterator + | x: type_attr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> type_attr_t + | x: type_attr_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: type_attr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< type_attr_t > & | | truncate(self, *args) | truncate(self) @@ -69553,12 +79449,19 @@ class type_mods_t(__builtin__.object) | | set_new_cmt(self, *args) | set_new_cmt(self, c) + | @param c (C++: const qstring &) | | set_new_name(self, *args) | set_new_name(self, n) + | @param n (C++: const qstring &) | | set_new_type(self, *args) + | 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. + | | set_new_type(self, t) + | @param t (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69599,12 +79502,21 @@ class typedef_type_data_t(__builtin__.object) | | __init__(self, *args) | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t + | _til: til_t const * + | _name: char const * + | _resolve: bool + | + | | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t + | _til: til_t const * + | ord: uint32 + | _resolve: bool | | __repr__ = _swig_repr(self) | | swap(self, *args) | swap(self, r) + | @param r (C++: typedef_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69642,15 +79554,18 @@ class udt_member_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: udt_member_t const & | | __init__(self, *args) | __init__(self) -> udt_member_t | | __lt__(self, *args) | __lt__(self, r) -> bool + | r: udt_member_t const & | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: udt_member_t const & | | __repr__ = _swig_repr(self) | @@ -69707,6 +79622,7 @@ class udt_member_t(__builtin__.object) | | swap(self, *args) | swap(self, r) + | @param r (C++: udt_member_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69772,6 +79688,7 @@ class udt_type_data_t(udtmembervec_t) | | is_last_baseclass(self, *args) | is_last_baseclass(self, idx) -> bool + | @param idx (C++: size_t) | | is_msstruct(self, *args) | is_msstruct(self) -> bool @@ -69784,6 +79701,7 @@ class udt_type_data_t(udtmembervec_t) | | swap(self, *args) | swap(self, r) + | @param r (C++: udt_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69823,9 +79741,11 @@ class udt_type_data_t(udtmembervec_t) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> udt_member_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69835,18 +79755,24 @@ class udt_type_data_t(udtmembervec_t) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: udt_member_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: udt_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: udt_member_t const & | | at(self, *args) | at(self, _idx) -> udt_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -69870,46 +79796,67 @@ class udt_type_data_t(udtmembervec_t) | | erase(self, *args) | erase(self, it) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | + | | erase(self, first, last) -> udt_member_t + | first: qvector< udt_member_t >::iterator + | last: qvector< udt_member_t >::iterator | | extract(self, *args) | extract(self) -> udt_member_t | | find(self, *args) | find(self, x) -> udt_member_t + | x: udt_member_t const & + | + | | find(self, x) -> udt_member_t + | x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=udt_member_t()) + | x: udt_member_t const & | | has(self, *args) | has(self, x) -> bool + | x: udt_member_t const & | | inject(self, *args) | inject(self, s, len) + | s: udt_member_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | x: udt_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> udt_member_t + | x: udt_member_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: udt_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t @@ -69935,13 +79882,15 @@ class udtmembervec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __getitem__(self, *args) | __getitem__(self, i) -> udt_member_t + | i: size_t | | __init__(self, *args) | __init__(self) -> udtmembervec_t - | __init__(self, x) -> udtmembervec_t + | 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. @@ -69951,20 +79900,26 @@ class udtmembervec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: udt_member_t const & | | _del(self, *args) | _del(self, x) -> bool + | x: udt_member_t const & | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: udt_member_t const & | | at(self, *args) | at(self, _idx) -> udt_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -69988,52 +79943,74 @@ class udtmembervec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | + | | erase(self, first, last) -> udt_member_t + | first: qvector< udt_member_t >::iterator + | last: qvector< udt_member_t >::iterator | | extract(self, *args) | extract(self) -> udt_member_t | | find(self, *args) | find(self, x) -> udt_member_t + | x: udt_member_t const & + | + | | find(self, x) -> udt_member_t + | x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=udt_member_t()) + | x: udt_member_t const & | | has(self, *args) | has(self, x) -> bool + | x: udt_member_t const & | | inject(self, *args) | inject(self, s, len) + | s: udt_member_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | x: udt_member_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> udt_member_t + | x: udt_member_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: udt_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< udt_member_t > & | | truncate(self, *args) | truncate(self) @@ -70059,39 +80036,32 @@ class udtmembervec_t(__builtin__.object) 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) + unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t + @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) + unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t + @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. @@ -70107,6 +80077,11 @@ 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 * + ti: til_t * + type: type_t const * + fields: p_list const * + ea: ea_t + pio_flags: int Help on class valstr_t in module ida_typeinf: @@ -70187,6 +80162,7 @@ class valstrs_t(valstrvec_t) | | __getitem__(self, *args) | __getitem__(self, i) -> valstr_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70196,9 +80172,12 @@ class valstrs_t(valstrvec_t) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: valstr_t const & | | at(self, *args) | at(self, _idx) -> valstr_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -70222,7 +80201,12 @@ class valstrs_t(valstrvec_t) | | erase(self, *args) | erase(self, it) -> valstr_t + | it: qvector< valstr_t >::iterator + | + | | erase(self, first, last) -> valstr_t + | first: qvector< valstr_t >::iterator + | last: qvector< valstr_t >::iterator | | extract(self, *args) | extract(self) -> valstr_t @@ -70232,35 +80216,47 @@ class valstrs_t(valstrvec_t) | | grow(self, *args) | grow(self, x=valstr_t()) + | x: valstr_t const & | | inject(self, *args) | inject(self, s, len) + | s: valstr_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> valstr_t + | it: qvector< valstr_t >::iterator + | x: valstr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> valstr_t + | x: valstr_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: valstr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< valstr_t > & | | truncate(self, *args) | truncate(self) @@ -70283,10 +80279,11 @@ class valstrvec_t(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> valstr_t + | i: size_t | | __init__(self, *args) | __init__(self) -> valstrvec_t - | __init__(self, x) -> valstrvec_t + | x: qvector< valstr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70298,9 +80295,12 @@ class valstrvec_t(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: valstr_t const & | | at(self, *args) | at(self, _idx) -> valstr_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -70324,7 +80324,12 @@ class valstrvec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> valstr_t + | it: qvector< valstr_t >::iterator + | + | | erase(self, first, last) -> valstr_t + | first: qvector< valstr_t >::iterator + | last: qvector< valstr_t >::iterator | | extract(self, *args) | extract(self) -> valstr_t @@ -70334,35 +80339,47 @@ class valstrvec_t(__builtin__.object) | | grow(self, *args) | grow(self, x=valstr_t()) + | x: valstr_t const & | | inject(self, *args) | inject(self, s, len) + | s: valstr_t * + | len: size_t | | insert(self, *args) | insert(self, it, x) -> valstr_t + | it: qvector< valstr_t >::iterator + | x: valstr_t const & | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> valstr_t + | x: valstr_t const & | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: valstr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< valstr_t > & | | truncate(self, *args) | truncate(self) @@ -70388,32 +80405,40 @@ class valstrvec_t(__builtin__.object) 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. + verify_argloc(vloc, size, gaps) -> int + @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 + typid: uint32 Help on function visit_subtypes in module ida_typeinf: visit_subtypes(*args) visit_subtypes(visitor, out, tif, name, cmt) -> int + visitor: tinfo_visitor_t * + out: type_mods_t * + tif: tinfo_t const & + name: char const * + cmt: char const * 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 + typid: uint32 + dst: uint64 + v: uint64 + bitoff: int === ida_typeinf EPYDOC INJECTIONS === ida_typeinf.ADDTIL_ABORTED @@ -70886,7 +80911,7 @@ use c++ name (only for 'print_type()' ) ida_typeinf.PRTYPE_DEF """ - 'tinfo_t' : print definition, if available +'tinfo_t' : print definition, if available """ ida_typeinf.PRTYPE_MULTI @@ -70896,12 +80921,12 @@ print to many lines ida_typeinf.PRTYPE_NOARGS """ - 'tinfo_t' : do not print function argument names +'tinfo_t' : do not print function argument names """ ida_typeinf.PRTYPE_NOARRS """ - 'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers +'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers """ ida_typeinf.PRTYPE_NOREGEX @@ -70911,7 +80936,7 @@ do not apply regular expressions to beautify name ida_typeinf.PRTYPE_NORES """ - 'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) +'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) """ ida_typeinf.PRTYPE_PRAGMA @@ -70921,7 +80946,7 @@ print pragmas for alignment ida_typeinf.PRTYPE_RESTORE """ - 'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' +'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' """ ida_typeinf.PRTYPE_SEMI @@ -71385,84 +81410,78 @@ printed opening curly brace '{' 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) + calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t + @param insn - 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) - 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 + can_decode(ea) -> bool + @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 construct_macro2 in module ida_ua: + +construct_macro2(*args) + construct_macro2(_this, insn, enable) -> bool + @param _this (C++: macro_constructor_t *) + @param insn (C++: insn_t *) + @param enable (C++: bool) + 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 + create_insn(ea, out=None) -> int + @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) + create_outctx(ea, F=0, suspop=0) -> outctx_base_t + @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 + decode_insn(out, ea) -> int + @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 @@ -71471,55 +81490,41 @@ decode_preceding_insn(*args) 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) + decode_prev_insn(out, ea) -> ea_t + @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) + get_dtype_by_size(size) -> int + @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) + get_dtype_flag(dtype) -> flags_t + @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) + get_dtype_size(dtype) -> size_t + @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 @@ -71527,18 +81532,16 @@ get_immvals(*args) 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 ) + get_immvals(ea, n, F=0) -> PyObject * + @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) @@ -71546,59 +81549,67 @@ get_lookback(*args) 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 ) + get_printable_immvals(ea, n, F=0) -> PyObject * + @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 &) + guess_table_address(insn) -> ea_t + @param insn - an ida_ua.insn_t, or an address (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) + guess_table_size(insn, jump_table) -> asize_t + @param insn - an ida_ua.insn_t, or an address (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) + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + to: ea_t + opoff: int + type: enum cref_t Help on function insn_add_dref in module ida_ua: insn_add_dref(*args) insn_add_dref(insn, to, opoff, type) + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + to: ea_t + opoff: int + type: enum dref_t 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 + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + type: enum dref_t + outf: int Help on function insn_create_stkvar in module ida_ua: insn_create_stkvar(*args) insn_create_stkvar(insn, x, v, flags) -> bool + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + v: adiff_t + flags: int Help on class insn_t in module ida_ua: @@ -71612,6 +81623,7 @@ class insn_t(__builtin__.object) | | __get_operand__(self, *args) | __get_operand__(self, n) -> op_t + | n: int | | __get_ops__(self, *args) | __get_ops__(self) -> operands_array @@ -71629,31 +81641,74 @@ class insn_t(__builtin__.object) | | __set_auxpref__(self, *args) | __set_auxpref__(self, v) + | v: uint32 | | add_cref(self, *args) + | Add a code cross-reference from the instruction. + | | add_cref(self, to, opoff, type) + | @param to: target linear address (C++: ea_t) + | @param opoff: offset of the operand from the start of instruction. if + | the offset is unknown, then 0. (C++: int) + | @param type: type of xref (C++: cref_t) | | add_dref(self, *args) + | Add a data cross-reference from the instruction. See 'add_off_drefs()' + | - usually it can be used in most cases. + | | add_dref(self, to, opoff, type) + | @param to: target linear address (C++: ea_t) + | @param opoff: offset of the operand from the start of instruction if + | the offset is unknown, then 0 (C++: int) + | @param type: type of xref (C++: dref_t) | | add_off_drefs(self, *args) + | 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. + | | add_off_drefs(self, x, type, outf) -> ea_t + | @param x: reference to operand (C++: const op_t &) + | @param type: type of xref (C++: dref_t) + | @param outf: out_value() flags. These flags should match the flags + | used to output the operand (C++: int) + | @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) | assign(self, other) + | other: an ida_ua.insn_t, or an address (C++: const insn_t &) | | create_op_data(self, *args) | create_op_data(self, ea_, opoff, dtype) -> bool + | ea_: ea_t + | opoff: int + | dtype: op_dtype_t + | + | | create_op_data(self, ea_, op) -> bool + | ea_: ea_t + | op: op_t const & | | create_stkvar(self, *args) | create_stkvar(self, x, v, flags_) -> bool + | x: op_t const & + | v: adiff_t + | flags_: int | | get_canon_feature(self, *args) - | get_canon_feature(self) -> uint32 + | see 'instruc_t::feature' + | + | get_canon_feature(self, ph) -> uint32 + | @param ph (C++: const processor_t &) | | get_canon_mnem(self, *args) - | get_canon_mnem(self) -> char const * + | see 'instruc_t::name' + | + | get_canon_mnem(self, ph) -> char const + | @param ph (C++: const processor_t &) | | get_next_byte(self, *args) | get_next_byte(self) -> uint8 @@ -71668,13 +81723,16 @@ class insn_t(__builtin__.object) | get_next_word(self) -> uint16 | | is_64bit(self, *args) - | is_64bit(self) -> bool + | Belongs to a 64bit segment? | | is_canon_insn(self, *args) - | is_canon_insn(self) -> bool + | see \ph{ 'is_canon_insn()' } + | + | is_canon_insn(self, ph) -> bool + | @param ph (C++: const processor_t &) | | is_macro(self, *args) - | is_macro(self) -> bool + | Is a macro instruction? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71740,50 +81798,120 @@ Help on function insn_t__from_ptrval__ in module ida_ua: insn_t__from_ptrval__(*args) insn_t__from_ptrval__(ptrval) -> insn_t + ptrval: size_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) + is_floating_dtype(dtype) -> bool + @param dtype (C++: op_dtype_t) + +Help on class macro_constructor_t in module ida_ua: + +class macro_constructor_t(__builtin__.object) + | Proxy of C++ macro_constructor_t class. + | + | Methods defined here: + | + | __disown__(self) + | + | __init__(self, *args) + | __init__(self) -> macro_constructor_t + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | build_macro(self, *args) + | Try to extend the instruction. + | + | build_macro(self, insn, may_go_forward) -> bool + | @param insn: Instruction to modify, usually the first instruction of + | the macro (C++: insn_t *) + | @param may_go_forward: 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. (C++: bool) + | @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 + | macro_constructor_t_reserved_get(self) -> size_t + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __swig_destroy__ = + | delete_macro_constructor_t(self) 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) + map_code_ea(insn, addr, opnum) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + @param addr: the referenced address to map (C++: ea_t) + @param opnum: operand number (C++: int) + + + map_code_ea(insn, op) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + op: op_t const & 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) + map_data_ea(insn, addr, opnum=-1) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + @param addr: the referenced address to map (C++: ea_t) + @param opnum: operand number (C++: int) + + + map_data_ea(insn, op) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + op: op_t const & Help on function map_ea in module ida_ua: map_ea(*args) map_ea(insn, op, iscode) -> ea_t + @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param op (C++: const op_t &) + @param iscode (C++: bool) + + map_ea(insn, addr, opnum, iscode) -> ea_t + @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + addr: ea_t + opnum: int + @param iscode (C++: bool) Help on class op_t in module ida_ua: @@ -71811,36 +81939,47 @@ class op_t(__builtin__.object) | | __set_addr__(self, *args) | __set_addr__(self, v) + | v: ea_t | | __set_reg_phrase__(self, *args) | __set_reg_phrase__(self, r) + | r: uint16 | | __set_specval__(self, *args) | __set_specval__(self, v) + | v: ea_t | | __set_value__(self, *args) | __set_value__(self, v) + | v: ea_t | | assign(self, *args) | assign(self, other) + | other: op_t const & | | clr_shown(self, *args) - | clr_shown(self) + | Set operand to hidden. | | has_reg(self, r) | Checks if the operand accesses the given processor register | | is_imm(self, *args) + | Is immediate operand? + | | is_imm(self, v) -> bool + | @param v (C++: uval_t) | | is_reg(self, *args) + | Is register operand? + | | is_reg(self, r) -> bool + | @param r (C++: int) | | set_shown(self, *args) - | set_shown(self) + | Set operand to be shown. | | shown(self, *args) - | shown(self) -> bool + | Is operand set to be shown? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71909,6 +82048,7 @@ Help on function op_t__from_ptrval__ in module ida_ua: op_t__from_ptrval__(*args) op_t__from_ptrval__(ptrval) -> op_t + ptrval: size_t Help on class operands_array in module ida_ua: @@ -71919,9 +82059,11 @@ class operands_array(__builtin__.object) | | __getitem__(self, *args) | __getitem__(self, i) -> op_t + | i: size_t | | __init__(self, *args) | __init__(self, data) -> operands_array + | data: op_t (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71933,6 +82075,8 @@ class operands_array(__builtin__.object) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: op_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71976,10 +82120,21 @@ class outctx_base_t(__builtin__.object) | display_voids(self) -> bool | | flush_buf(self, *args) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf + | but accepts an arbitrary buffer + | | flush_buf(self, buf, indent=-1) -> bool + | @param buf (C++: const char *) + | @param indent (C++: int) | | flush_outbuf(self, *args) + | 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. + | | flush_outbuf(self, indent=-1) -> bool + | @param indent (C++: int) | | forbid_annotations(self, *args) | forbid_annotations(self) -> int @@ -71988,34 +82143,84 @@ class outctx_base_t(__builtin__.object) | force_code(self) -> bool | | gen_block_cmt(self, *args) + | Generate big non-indented comment lines. + | | gen_block_cmt(self, cmt, color) -> bool + | @param cmt: comment text. may contain \n characters to denote new + | lines. should not contain comment character (;) (C++: + | const char *) + | @param color: color of comment text (one of Color tags ) (C++: + | color_t) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) + | Generate thin border line. This function does nothing if generation of + | border lines is disabled. + | | gen_border_line(self, solid=False) -> bool + | @param solid: generate solid border line (with =), otherwise with - + | (C++: bool) + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) + | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . + | | gen_cmt_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) + | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' + | . + | | gen_collapsed_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) - | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty + | lines is disabled. | | gen_empty_line_without_annotations(self, *args) | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) + | printf-like function to add lines to the line array. + | | gen_printf(self, indent, format) -> bool + | @param indent: indention of the line. if indent == -1, the kernel will + | indent the line at \inf{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. (C++: + | int) + | @param format: printf style colored line to generate (C++: const char + | *) + | @return: overflow, lnar_maxsize has been reached | | gen_xref_lines(self, *args) | gen_xref_lines(self) -> bool | | get_stkvar(self, *args) | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | arg2: op_t const & + | arg3: uval_t + | arg4: sval_t * + | arg5: int * | | init_lines_array(self, *args) | init_lines_array(self, answers, maxsize) + | @param answers (C++: qstrvec_t *) + | @param maxsize (C++: int) | | multiline(self, *args) | multiline(self) -> bool @@ -72024,73 +82229,153 @@ class outctx_base_t(__builtin__.object) | only_main_line(self) -> bool | | out_addr_tag(self, *args) + | Output "address" escape sequence. + | | out_addr_tag(self, ea) + | @param ea (C++: ea_t) | | out_btoa(self, *args) + | Output a number with the specified base (binary, octal, decimal, hex) + | The number is output without color codes. see also 'out_long()' + | | out_btoa(self, Word, radix=0) + | @param Word (C++: uval_t) + | @param radix (C++: char) | | out_char(self, *args) + | Output one character. The character is output without color codes. see + | also 'out_symbol()' + | | out_char(self, c) + | @param c (C++: char) | | out_chars(self, *args) + | Append a character multiple times. + | | out_chars(self, c, n) + | @param c (C++: char) + | @param n (C++: int) | | out_colored_register_line(self, *args) + | 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) + | | out_colored_register_line(self, str) + | @param str (C++: const char *) | | out_keyword(self, *args) + | Output a string with 'COLOR_KEYWORD' color. + | | out_keyword(self, str) + | @param str (C++: const char *) | | out_line(self, *args) + | Output a string with the specified color. + | | out_line(self, str, color=0) + | @param str (C++: const char *) + | @param color (C++: color_t) | | out_long(self, *args) + | 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 \ph{d_out()}) + | | out_long(self, v, radix) + | @param v (C++: sval_t) + | @param radix (C++: char) | | out_name_expr(self, *args) + | Output a name expression. + | | out_name_expr(self, x, ea, off=BADADDR) -> bool + | @param x: instruction operand referencing the name expression (C++: + | const op_t &) + | @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. You may pass BADADDR for this parameter but I + | discourage it because it prohibits checks. (C++: adiff_t) + | @return: true if the name expression has been produced | | out_printf(self, *args) + | Functions to append text to the current output buffer (outbuf) Append + | a formatted string to the output string. + | | out_printf(self, format) + | @param format (C++: const char *) + | @return: the number of characters appended | | out_register(self, *args) + | Output a character with 'COLOR_REG' color. + | | out_register(self, str) + | @param str (C++: const char *) | | out_spaces(self, *args) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | | out_spaces(self, len) + | @param len (C++: ssize_t) | | out_symbol(self, *args) + | Output a character with 'COLOR_SYMBOL' color. + | | out_symbol(self, c) + | @param c (C++: char) | | out_tagoff(self, *args) + | Output "turn color off" escape sequence. + | | out_tagoff(self, tag) + | @param tag (C++: color_t) | | out_tagon(self, *args) + | Output "turn color on" escape sequence. + | | out_tagon(self, tag) + | @param tag (C++: color_t) | | out_value(self, *args) + | 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 + | | out_value(self, x, outf=0) -> flags_t + | @param x (C++: const op_t &) + | @param outf (C++: int) + | @return: flags of the output value | | print_label_now(self, *args) | print_label_now(self) -> bool | | restore_ctxflags(self, *args) | restore_ctxflags(self, saved_flags) + | @param saved_flags (C++: int) | | retrieve_cmt(self, *args) | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) | retrieve_name(self, arg2, arg3) -> ssize_t + | arg2: qstring * + | arg3: color_t * | | set_comment_addr(self, *args) | set_comment_addr(self, ea) + | @param ea (C++: ea_t) | | set_dlbind_opnd(self, *args) | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) | set_gen_cmt(self, on=True) + | @param on (C++: bool) | | set_gen_demangled_label(self, *args) | set_gen_demangled_label(self) @@ -72100,15 +82385,24 @@ class outctx_base_t(__builtin__.object) | | set_gen_xrefs(self, *args) | set_gen_xrefs(self, on=True) + | @param on (C++: bool) | | setup_outctx(self, *args) + | Initialization; normally used only by the kernel. + | | setup_outctx(self, prefix, makeline_flags) + | @param prefix (C++: const char *) + | @param makeline_flags (C++: int) | | stack_view(self, *args) | stack_view(self) -> bool | | term_outctx(self, *args) + | Finalize the output context. + | | term_outctx(self, prefix=None) -> int + | @param prefix (C++: const char *) + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72135,6 +82429,7 @@ 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 + ptrval: size_t Help on class outctx_t in module ida_ua: @@ -72154,12 +82449,17 @@ class outctx_t(outctx_base_t) | | gen_func_footer(self, *args) | gen_func_footer(self, pfn) + | @param pfn (C++: const func_t *) | | gen_func_header(self, *args) | gen_func_header(self, pfn) + | @param pfn (C++: func_t *) | | gen_header(self, *args) | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) + | @param flags (C++: int) + | @param proc_name (C++: const char *) + | @param proc_flavour (C++: const char *) | | gen_header_extra(self, *args) | gen_header_extra(self) @@ -72168,41 +82468,86 @@ class outctx_t(outctx_base_t) | gen_xref_lines(self) -> bool | | out_custom_mnem(self, *args) + | 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' + | | out_custom_mnem(self, mnem, width=8, postfix=None) + | @param mnem: custom mnemonic (C++: const char *) + | @param width: width of field with mnemonic. if < 0, then 'postfix' + | will be output before the mnemonic, i.e. as a prefix + | (C++: int) + | @param postfix: optional postfix added to 'mnem' (C++: const char *) | | out_data(self, *args) | out_data(self, analyze_only) + | @param analyze_only (C++: bool) | | out_immchar_cmts(self, *args) - | 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) + | Output instruction mnemonic for 'insn' using information in + | 'ph.instruc' array. This function outputs a colored text. It should be + | called from \ph{ev_out_insn()} or \ph{ev_out_mnem()} handler. It will + | output at least one space after the instruction. mnemonic even if the + | specified 'width' is not enough. + | | out_mnem(self, width=8, postfix=None) + | @param width: width of field with mnemonic. if < 0, then 'postfix' + | will be output before the mnemonic, i.e. as a prefix + | (C++: int) + | @param postfix: optional postfix added to the instruction mnemonic + | (C++: const char *) | | out_mnemonic(self, *args) - | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be + | called from \ph{ev_out_insn()} and it will call \ph{ev_out_mnem()} or + | 'out_mnem' . This function outputs a colored text. | | out_one_operand(self, *args) + | 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 + | \ph{ev_out_insn()} and it will call \ph{ev_out_operand()}. This + | function outputs a colored text. + | | out_one_operand(self, n) -> bool + | @param n: number of operand (C++: int) + | @retval: 1 - operand is displayed + | @retval: 0 - operand is hidden | | out_specea(self, *args) | out_specea(self, segtype) -> bool + | @param segtype (C++: uchar) | | retrieve_cmt(self, *args) | retrieve_cmt(self) -> ssize_t | | retrieve_name(self, *args) | retrieve_name(self, arg2, arg3) -> ssize_t + | arg2: qstring * + | arg3: color_t * | | set_bin_state(self, *args) | set_bin_state(self, value) + | @param value (C++: int) | | setup_outctx(self, *args) + | Initialization; normally used only by the kernel. + | | setup_outctx(self, prefix, flags) + | @param prefix (C++: const char *) + | flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | + | ash + | outctx_t_ash_get(self) -> asm_t + | | bin_ea | outctx_t_bin_ea_get(self) -> ea_t | @@ -72221,6 +82566,12 @@ class outctx_t(outctx_base_t) | insn | outctx_t_insn_get(self) -> insn_t | + | ph + | outctx_t_ph_get(self) -> processor_t + | + | procmod + | outctx_t_procmod_get(self) -> procmod_t + | | thisown | The membership flag | @@ -72240,10 +82591,21 @@ class outctx_t(outctx_base_t) | display_voids(self) -> bool | | flush_buf(self, *args) + | Append contents of 'buf' to the line array. Behaves like flush_outbuf + | but accepts an arbitrary buffer + | | flush_buf(self, buf, indent=-1) -> bool + | @param buf (C++: const char *) + | @param indent (C++: int) | | flush_outbuf(self, *args) + | 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. + | | flush_outbuf(self, indent=-1) -> bool + | @param indent (C++: int) | | forbid_annotations(self, *args) | forbid_annotations(self) -> int @@ -72252,31 +82614,81 @@ class outctx_t(outctx_base_t) | force_code(self) -> bool | | gen_block_cmt(self, *args) + | Generate big non-indented comment lines. + | | gen_block_cmt(self, cmt, color) -> bool + | @param cmt: comment text. may contain \n characters to denote new + | lines. should not contain comment character (;) (C++: + | const char *) + | @param color: color of comment text (one of Color tags ) (C++: + | color_t) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) + | Generate thin border line. This function does nothing if generation of + | border lines is disabled. + | | gen_border_line(self, solid=False) -> bool + | @param solid: generate solid border line (with =), otherwise with - + | (C++: bool) + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) + | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . + | | gen_cmt_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) + | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' + | . + | | gen_collapsed_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_empty_line(self, *args) - | gen_empty_line(self) -> bool + | Generate empty line. This function does nothing if generation of empty + | lines is disabled. | | gen_empty_line_without_annotations(self, *args) | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) + | printf-like function to add lines to the line array. + | | gen_printf(self, indent, format) -> bool + | @param indent: indention of the line. if indent == -1, the kernel will + | indent the line at \inf{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. (C++: + | int) + | @param format: printf style colored line to generate (C++: const char + | *) + | @return: overflow, lnar_maxsize has been reached | | get_stkvar(self, *args) | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | arg2: op_t const & + | arg3: uval_t + | arg4: sval_t * + | arg5: int * | | init_lines_array(self, *args) | init_lines_array(self, answers, maxsize) + | @param answers (C++: qstrvec_t *) + | @param maxsize (C++: int) | | multiline(self, *args) | multiline(self) -> bool @@ -72285,67 +82697,145 @@ class outctx_t(outctx_base_t) | only_main_line(self) -> bool | | out_addr_tag(self, *args) + | Output "address" escape sequence. + | | out_addr_tag(self, ea) + | @param ea (C++: ea_t) | | out_btoa(self, *args) + | Output a number with the specified base (binary, octal, decimal, hex) + | The number is output without color codes. see also 'out_long()' + | | out_btoa(self, Word, radix=0) + | @param Word (C++: uval_t) + | @param radix (C++: char) | | out_char(self, *args) + | Output one character. The character is output without color codes. see + | also 'out_symbol()' + | | out_char(self, c) + | @param c (C++: char) | | out_chars(self, *args) + | Append a character multiple times. + | | out_chars(self, c, n) + | @param c (C++: char) + | @param n (C++: int) | | out_colored_register_line(self, *args) + | 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) + | | out_colored_register_line(self, str) + | @param str (C++: const char *) | | out_keyword(self, *args) + | Output a string with 'COLOR_KEYWORD' color. + | | out_keyword(self, str) + | @param str (C++: const char *) | | out_line(self, *args) + | Output a string with the specified color. + | | out_line(self, str, color=0) + | @param str (C++: const char *) + | @param color (C++: color_t) | | out_long(self, *args) + | 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 \ph{d_out()}) + | | out_long(self, v, radix) + | @param v (C++: sval_t) + | @param radix (C++: char) | | out_name_expr(self, *args) + | Output a name expression. + | | out_name_expr(self, x, ea, off=BADADDR) -> bool + | @param x: instruction operand referencing the name expression (C++: + | const op_t &) + | @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. You may pass BADADDR for this parameter but I + | discourage it because it prohibits checks. (C++: adiff_t) + | @return: true if the name expression has been produced | | out_printf(self, *args) + | Functions to append text to the current output buffer (outbuf) Append + | a formatted string to the output string. + | | out_printf(self, format) + | @param format (C++: const char *) + | @return: the number of characters appended | | out_register(self, *args) + | Output a character with 'COLOR_REG' color. + | | out_register(self, str) + | @param str (C++: const char *) | | out_spaces(self, *args) + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | | out_spaces(self, len) + | @param len (C++: ssize_t) | | out_symbol(self, *args) + | Output a character with 'COLOR_SYMBOL' color. + | | out_symbol(self, c) + | @param c (C++: char) | | out_tagoff(self, *args) + | Output "turn color off" escape sequence. + | | out_tagoff(self, tag) + | @param tag (C++: color_t) | | out_tagon(self, *args) + | Output "turn color on" escape sequence. + | | out_tagon(self, tag) + | @param tag (C++: color_t) | | out_value(self, *args) + | 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 + | | out_value(self, x, outf=0) -> flags_t + | @param x (C++: const op_t &) + | @param outf (C++: int) + | @return: flags of the output value | | print_label_now(self, *args) | print_label_now(self) -> bool | | restore_ctxflags(self, *args) | restore_ctxflags(self, saved_flags) + | @param saved_flags (C++: int) | | set_comment_addr(self, *args) | set_comment_addr(self, ea) + | @param ea (C++: ea_t) | | set_dlbind_opnd(self, *args) | set_dlbind_opnd(self) | | set_gen_cmt(self, *args) | set_gen_cmt(self, on=True) + | @param on (C++: bool) | | set_gen_demangled_label(self, *args) | set_gen_demangled_label(self) @@ -72355,12 +82845,17 @@ class outctx_t(outctx_base_t) | | set_gen_xrefs(self, *args) | set_gen_xrefs(self, on=True) + | @param on (C++: bool) | | stack_view(self, *args) | stack_view(self) -> bool | | term_outctx(self, *args) + | Finalize the output context. + | | term_outctx(self, prefix=None) -> int + | @param prefix (C++: const char *) + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors inherited from outctx_base_t: @@ -72384,35 +82879,32 @@ Help on function outctx_t__from_ptrval__ in module ida_ua: outctx_t__from_ptrval__(*args) outctx_t__from_ptrval__(ptrval) -> outctx_t + ptrval: size_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 + print_insn_mnem(ea) -> str + @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 + print_operand(ea, n, getn_flags=0, newtype=None) -> str + @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 @@ -72682,33 +83174,30 @@ ida_ua.dt_word 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 + add_cref(frm, to, type) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) + add_dref(frm, to, type) -> bool + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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: @@ -72769,13 +83258,15 @@ class casevec_t(__builtin__.object) | | __eq__(self, *args) | __eq__(self, r) -> bool + | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __getitem__(self, *args) | __getitem__(self, i) -> qvector< signed-ea-like-numeric-type > const &↗ + | i: size_t | | __init__(self, *args) | __init__(self) -> casevec_t - | __init__(self, x) -> casevec_t + | 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. @@ -72784,17 +83275,22 @@ class casevec_t(__builtin__.object) | | __ne__(self, *args) | __ne__(self, r) -> bool + | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) | __setitem__(self, i, v) + | i: size_t + | v: qvector< signed-ea-like-numeric-type > const &↗ | | _del(self, *args) | _del(self, x) -> bool + | x: qvector< signed-ea-like-numeric-type > const &↗ | | add_unique(self, *args) | add_unique(self, x) -> bool + | x: qvector< signed-ea-like-numeric-type > const &↗ | | append = push_back(self, *args) | @@ -72822,52 +83318,74 @@ class casevec_t(__builtin__.object) | | erase(self, *args) | erase(self, it) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | 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↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) | grow(self, x=qvector< signed-ea-like-numeric-type >())↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | has(self, *args) | has(self, x) -> bool + | x: qvector< signed-ea-like-numeric-type > const &↗ | | inject(self, *args) | inject(self, s, len) + | s: qvector< signed-ea-like-numeric-type > *↗ + | len: size_t | | insert(self, *args) | insert(self, it, x) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | pop_back(self, *args) | pop_back(self) | | push_back(self, *args) | push_back(self, x) - | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | qclear(self, *args) | qclear(self) | | reserve(self, *args) | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) | resize(self, _newsize, x) + | _newsize: size_t + | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) | size(self) -> size_t | | swap(self, *args) | swap(self, r) + | r: qvector< qvector< signed-ea-like-numeric-type > > &↗ | | truncate(self, *args) | truncate(self) @@ -72894,8 +83412,6 @@ 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 @@ -72907,8 +83423,6 @@ 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 @@ -72924,183 +83438,171 @@ create_switch_xrefs(*args) 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) + del_cref(frm, to, expand) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) + @retval: true - if the referenced instruction will be deleted 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) + del_dref(frm, to) + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) + jump_ea: ea_t + si: switch_info_t const & 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 . + get_first_cref_from(frm) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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) - 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. + get_first_cref_to(to) -> ea_t + @param to: linear address of referenced instruction (C++: ea_t) + @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) - 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. + get_first_dref_from(frm) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) - 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. + get_first_dref_to(to) -> ea_t + @param to: linear address of referencing instruction or data (C++: + ea_t) + @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) get_first_fcref_from(frm) -> ea_t + @param frm (C++: 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 + @param to (C++: 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. + get_next_cref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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 . 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. + get_next_cref_to(to, current) -> ea_t + @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 . 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 + get_next_dref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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 . 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. + get_next_dref_to(to, current) -> ea_t + @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. Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) get_next_fcref_from(frm, current) -> ea_t + @param frm (C++: ea_t) + @param current (C++: 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 + @param to (C++: ea_t) + @param current (C++: 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) + has_external_refs(pfn, ea) -> bool + @param pfn (C++: func_t *) + @param ea (C++: ea_t) Help on class xrefblk_t in module ida_xref: @@ -73116,17 +83618,25 @@ class xrefblk_t(__builtin__.object) | | first_from(self, *args) | first_from(self, _from, flags) -> bool + | _from: ea_t + | flags: int | | first_to(self, *args) | first_to(self, _to, flags) -> bool + | _to: ea_t + | flags: int | | next_from(self, *args) | next_from(self) -> bool - | next_from(self, _from, _to, flags) -> bool + | _from: ea_t + | _to: ea_t + | flags: int | | next_to(self, *args) | next_to(self) -> bool - | next_to(self, _from, _to, flags) -> bool + | _from: ea_t + | _to: ea_t + | flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -73164,13 +83674,11 @@ class xrefblk_t(__builtin__.object) 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) + xrefchar(xrtype) -> char + @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 @@ -73307,15 +83815,13 @@ EVAL_FAILURE(code) 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 + get_cmt(ea, rptble) -> str + @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: @@ -73557,40 +84063,40 @@ add_auto_stkpnt(func_ea, ea, delta) 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) + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @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) + + + add_bpt(bpt) -> bool + bpt: bpt_t const & 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 + add_cref(frm, to, type) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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: @@ -73603,34 +84109,32 @@ add_default_til(name) 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) + add_dref(frm, to, type) -> bool + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) + add_entry(ord, ea, name, makecode, flags=0) -> bool + @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: @@ -73671,45 +84175,39 @@ add_enum_member(enum_id, name, value, bmask) 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 + add_func(ea1, ea2=BADADDR) -> bool + @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 + add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + @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 + add_idc_hotkey(hotkey, idcfunc) -> int + @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: @@ -73734,18 +84232,16 @@ add_segm_ex(startea, endea, base, use32, align, comb, flags) 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 + add_sourcefile(ea1, ea2, filename) -> bool + @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: @@ -73802,15 +84298,13 @@ add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, r 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 + add_user_stkpnt(ea, delta) -> bool + @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: @@ -73847,16 +84341,14 @@ 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 . + ask_yn(deflt, format) -> int + @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: @@ -73874,57 +84366,53 @@ 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) + attach_process(pid=pid_t(-1), event_id=-1) -> int + @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) + @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) - 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) + auto_mark_range(start, end, type) + @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) + auto_unmark(start, end, type) + @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: @@ -73979,13 +84467,11 @@ can_exc_continue() 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 + check_bpt(ea) -> int + @param ea (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_func in module idc: @@ -74007,15 +84493,12 @@ clear_trace(filename) 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) + create_align(ea, length, alignment) -> bool + @param ea (C++: ea_t) + @param length (C++: asize_t) + @param alignment (C++: int) Help on function create_array in module idc: @@ -74038,37 +84521,32 @@ create_byte(ea) 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) + create_custdata(ea, length, dtid, fid, force=False) -> 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) - 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 + create_data(ea, dataflag, size, tid) -> bool + @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: @@ -74100,18 +84578,16 @@ create_float(ea) 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 + create_insn(ea, out=None) -> int + @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: @@ -74199,18 +84675,16 @@ create_yword(ea) 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 + define_exception(code, name, desc, flags) -> char const * + @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: @@ -74244,51 +84718,49 @@ del_array_element(tag, array_id, idx) 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) + del_bpt(ea) -> bool + @param ea: any address in the breakpoint range (C++: ea_t) + + + del_bpt(bptloc) -> bool + bptloc: bpt_location_t const & 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) + del_cref(frm, to, expand) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) + @retval: true - if the referenced instruction will be deleted 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) + del_dref(frm, to) + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) + del_enum(id) + @param id (C++: enum_t) Help on function del_enum_member in module idc: @@ -74308,28 +84780,25 @@ Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) del_extra_cmt(ea, what) + ea: ea_t + what: int Help on function del_fixup in module ida_fixup: del_fixup(*args) - del_fixup(source) - - Delete fixup information. - - @param source (C++: ea_t) + del_fixup(source) + @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 + del_func(ea) -> bool + @param ea: any address in the function entry chunk (C++: ea_t) + @return: success Help on function del_hash_string in module idc: @@ -74344,83 +84813,76 @@ del_hash_string(hash_id, key) 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 + del_hidden_range(ea) -> bool + @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 *) + del_idc_hotkey(hotkey) -> bool + @param hotkey: hotkey name (C++: const char *) + @retval: 1 - ok + @retval: 0 - failed 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 + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + @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) + del_segm(ea, flags) -> bool + @param ea: any address belonging to the segment (C++: ea_t) + @param flags: Segment modification flags (C++: int) + @retval: 1 - ok + @retval: 0 - failed, no segment at 'ea'. 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) + del_selector(selector) + @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) + @param ea (C++: ea_t) 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 + del_sourcefile(ea) -> bool + @param ea: linear address (C++: ea_t) + @return: success Help on function del_stkpnt in module idc: @@ -74487,25 +84949,28 @@ demangle_name(name, disable_mask) 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'. + + diff_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function enable_bpt in module ida_dbg: enable_bpt(*args) enable_bpt(ea, enable=True) -> bool + @param ea (C++: ea_t) + @param enable (C++: bool) + + enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: bool) Help on function enable_tracing in module idc: @@ -74521,8 +84986,6 @@ 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 @@ -74542,9 +85005,6 @@ eval_idc(expr) 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' } @@ -74578,38 +85038,29 @@ 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) + find_code(ea, sflag) -> ea_t + @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) + find_data(ea, sflag) -> ea_t + @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) + find_defined(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function find_func_end in module idc: @@ -74625,15 +85076,12 @@ find_func_end(ea) 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) + find_imm(ea, sflag, search_value) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) + @param search_value (C++: uval_t) Help on function find_selector in module idc: @@ -74650,14 +85098,11 @@ find_selector(val) 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) + find_suspop(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function find_text in module idc: @@ -74666,14 +85111,11 @@ 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) + find_unknown(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function first_func_chunk in module idc: @@ -74847,11 +85289,13 @@ Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) get_marked_pos(slot) -> ea_t + slot: int32 Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) get_mark_comment(slot) -> PyObject * + slot: int32 Help on function get_bpt_attr in module idc: @@ -74875,18 +85319,12 @@ get_bpt_ea(n) 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 @@ -74895,9 +85333,10 @@ get_bpt_tev_ea(*args) 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. + get_bpt_tev_ea(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -74916,15 +85355,13 @@ get_bytes(ea, size, use_dbg=False) 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. + get_call_tev_callee(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -74946,24 +85383,19 @@ get_curline() 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) + get_db_byte(ea) -> uchar + @param ea (C++: ea_t) Help on function get_debugger_event_cond in module ida_dbg: @@ -74973,89 +85405,69 @@ get_debugger_event_cond(*args) 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 + get_entry(ord) -> ea_t + @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 + get_entry_name(ord) -> str + @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. + get_entry_ordinal(idx) -> uval_t + @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 *) + get_enum(name) -> enum_t + @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) + get_enum_cmt(id, repeatable) -> str + @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) + get_enum_flag(id) -> flags_t + @param id (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) + Get the index in the list of enums. + 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) + @param id (C++: enum_t) Help on function get_enum_member in module idc: @@ -75074,24 +85486,18 @@ get_enum_member(enum_id, value, serial, bmask) 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) + get_enum_member_bmask(id) -> bmask_t + @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 *) + get_enum_member_by_name(name) -> const_t + @param name (C++: const char *) Help on function get_enum_member_cmt in module idc: @@ -75106,13 +85512,10 @@ get_enum_member_cmt(const_id, repeatable) 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) + get_enum_member_enum(id) -> enum_t + @param id (C++: const_t) Help on function get_enum_member_name in module idc: @@ -75126,54 +85529,40 @@ get_enum_member_name(const_id) 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) + get_enum_member_value(id) -> uval_t + @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) + get_enum_name(id) -> str + @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) + get_enum_size(id) -> size_t + @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) + get_enum_width(id) -> size_t + @param id (C++: enum_t) Help on function get_event_bpt_hea in module idc: @@ -75272,6 +85661,8 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) get_extra_cmt(ea, what) -> ssize_t + ea: ea_t + what: int Help on function get_fchunk_attr in module idc: @@ -75287,75 +85678,67 @@ Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) get_fchunk_referer(ea, idx) -> ea_t + ea: ea_t + idx: size_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 + get_first_bmask(id) -> bmask_t + @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 . + get_first_cref_from(frm) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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) - 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. + get_first_cref_to(to) -> ea_t + @param to: linear address of referenced instruction (C++: ea_t) + @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) - 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. + get_first_dref_from(frm) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) - 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. + get_first_dref_to(to) -> ea_t + @param to: linear address of referencing instruction or data (C++: + ea_t) + @return: BADADDR if nobody refers to the specified data. Help on function get_first_enum_member in module idc: @@ -75372,11 +85755,13 @@ Help on function get_first_fcref_from in module ida_xref: get_first_fcref_from(*args) get_first_fcref_from(frm) -> ea_t + @param frm (C++: 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 + @param to (C++: ea_t) Help on function get_first_hash_key in module idc: @@ -75435,12 +85820,7 @@ get_first_seg() 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: @@ -75495,14 +85875,12 @@ get_fixup_target_type(ea) 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 + get_forced_operand(ea, n) -> str + @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: @@ -75566,13 +85944,11 @@ get_frame_size(ea) 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 + get_full_flags(ea) -> flags_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: @@ -75662,34 +86038,27 @@ 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) + get_item_end(ea) -> ea_t + @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) + get_item_head(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_item_size in module idc: @@ -75703,13 +86072,11 @@ get_item_size(ea) 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 + get_last_bmask(id) -> bmask_t + @param id (C++: enum_t) + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module idc: @@ -75765,13 +86132,7 @@ get_last_member(sid) 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: @@ -75784,13 +86145,11 @@ get_local_tinfo(ordinal) 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 + get_manual_insn(ea) -> str + @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: @@ -75963,18 +86322,16 @@ get_name(ea, gtn_flags=0) 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 + get_name_ea(_from, name) -> ea_t + @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: @@ -75989,76 +86346,65 @@ get_name_ea_simple(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 + get_next_bmask(id, bmask) -> bmask_t + @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. + get_next_cref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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 . 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. + get_next_cref_to(to, current) -> ea_t + @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 . 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 + get_next_dref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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 . 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. + get_next_dref_to(to, current) -> ea_t + @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. Help on function get_next_enum_member in module idc: @@ -76088,22 +86434,24 @@ Help on function get_next_fcref_from in module ida_xref: get_next_fcref_from(*args) get_next_fcref_from(frm, current) -> ea_t + @param frm (C++: ea_t) + @param current (C++: 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 + @param to (C++: ea_t) + @param current (C++: 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 + get_next_fixup_ea(ea) -> ea_t + @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: @@ -76182,13 +86530,11 @@ get_next_seg(ea) 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++ + get_next_struc_idx(idx) -> uval_t + @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: @@ -76239,26 +86585,22 @@ get_ordinal_qty() 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) + get_original_byte(ea) -> uint64 + @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 + get_prev_bmask(id, bmask) -> bmask_t + @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: @@ -76288,13 +86630,11 @@ get_prev_fchunk(ea) 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 + get_prev_fixup_ea(ea) -> ea_t + @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: @@ -76354,91 +86694,77 @@ get_prev_offset(sid, offset) 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 + get_prev_struc_idx(idx) -> uval_t + @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 + get_processes(proclist) -> ssize_t + @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) + get_qword(ea) -> uint64 + @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) + Read a register value from the current thread. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - @param name: the register name + get_reg_val(regname, regval) -> bool + @param regname (C++: const char *) + @param regval (C++: 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. - @return: register value (integer or floating point) + get_reg_val(regname, ival) -> bool + @param regname (C++: const char *) + ival: uint64 * + + + get_reg_val(regname) -> PyObject * + @param regname (C++: const char *) 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. + get_ret_tev_return(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -76492,20 +86818,19 @@ Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) get_source_linnum(ea) -> uval_t + @param ea (C++: ea_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 + get_sourcefile(ea, bounds=None) -> char const * + @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: @@ -76547,13 +86872,8 @@ get_sreg(ea, reg) 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: @@ -76577,83 +86897,67 @@ get_strlit_contents(ea, length=-1, strtype=0) 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) + get_struc_by_idx(idx) -> tid_t + @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) + get_struc_cmt(id, repeatable) -> str + @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 *) + get_struc_id(name) -> tid_t + @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) + get_struc_idx(id) -> uval_t + @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) + get_struc_name(id, flags=0) -> str + @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)' ) + get_struc_size(sptr) -> asize_t + @param sptr (C++: const struc_t *) - @param sptr (C++: const struc_t *) + + get_struc_size(id) -> asize_t + id: tid_t Help on function get_tev_ea in module ida_dbg: get_tev_ea(*args) get_tev_ea(n) -> ea_t + @param n (C++: int) Help on function get_tev_reg_mem in module ida_dbg: @@ -76670,9 +86974,6 @@ 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)} @@ -76684,18 +86985,17 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) get_tev_tid(n) -> int + @param n (C++: int) Help on function get_tev_type in module ida_dbg: get_tev_type(*args) get_tev_type(n) -> int + @param n (C++: 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)} @@ -76710,13 +87010,10 @@ get_tinfo(ea) 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 *) + get_trace_file_desc(filename) -> str + @param filename (C++: const char *) Help on function get_type in module idc: @@ -76730,41 +87027,35 @@ get_type(ea) 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) + get_wide_byte(ea) -> uint64 + @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) + get_wide_dword(ea) -> uint64 + @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) + get_wide_word(ea) -> uint64 + @param ea (C++: ea_t) Help on function get_xref_type in module idc: @@ -76777,39 +87068,32 @@ get_xref_type() Help on function getn_enum in module ida_enum: getn_enum(*args) - getn_enum(n) -> 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) + getn_enum(idx) -> enum_t + @param idx (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. + getn_thread(n) -> thid_t + @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. + getn_thread_name(n) -> char const * + @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: @@ -76904,13 +87188,11 @@ 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) + is_bf(id) -> bool + @param id (C++: enum_t) Help on function is_byte in module idc: @@ -77071,13 +87353,10 @@ 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 *) + is_valid_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function is_word in module idc: @@ -77086,45 +87365,47 @@ 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 + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + @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 + + + jumpto(custom_viewer, place, x, y) -> bool + custom_viewer: TWidget * + place: place_t * + x: int + y: 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) + load_and_run_plugin(name, arg) -> bool + @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 + @param dbgname (C++: const char *) + @param use_remote (C++: 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 *) + load_trace_file(filename) -> str + @param filename (C++: const char *) Help on function loadfile in module idc: @@ -77164,8 +87445,6 @@ 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 @@ -77178,13 +87457,11 @@ msg(*args) 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. + next_addr(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_func_chunk in module idc: @@ -77212,145 +87489,115 @@ next_head(ea, maxea=BADADDR)↗ 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. + next_not_tail(ea) -> ea_t + @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) + op_bin(ea, n) -> bool + @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) + op_chr(ea, n) -> bool + @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) + op_dec(ea, n) -> bool + @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 + op_enum(ea, n, id, serial) -> bool + @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) + op_flt(ea, n) -> bool + @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) + op_hex(ea, n) -> bool + @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 + set_forced_operand(ea, n, op) -> bool + @param ea: linear address (C++: ea_t) + @param n: number of operand (0, 1, 2) (C++: int) + @param op: text of operand nullptr: 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) + op_num(ea, n) -> bool + @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) + op_oct(ea, n) -> bool + @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) + op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + @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: @@ -77410,29 +87657,25 @@ op_plain_offset(ea, n, base) 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 + op_seg(ea, n) -> bool + @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 + op_stkvar(ea, n) -> bool + @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: @@ -77471,69 +87714,79 @@ parse_decls(inputtype, flags=0) 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) + patch_byte(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 + put_dbg_byte(ea, x) -> bool + @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) + patch_dword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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) + patch_qword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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) + patch_word(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. Help on function plan_and_wait in module idc: @@ -77549,26 +87802,22 @@ plan_and_wait(sEA, eEA, final_pass=True) 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 + plan_to_apply_idasgn(fname) -> int + @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. + prev_addr(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_head in module idc: @@ -77584,13 +87833,11 @@ prev_head(ea, minea=0) 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. + prev_not_tail(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if none exists. Help on function print_decls in module idc: @@ -77649,11 +87896,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: @@ -77668,16 +87911,20 @@ Help on function mark_position in module ida_idc: mark_position(*args) mark_position(ea, lnnum, x, y, slot, comment) + ea: ea_t + lnnum: int + x: short + y: short + slot: int32 + comment: char const * 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) + qexit(code) + @param code: exit code (C++: int) Help on function qsleep in module idc: @@ -77707,8 +87954,6 @@ 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) @@ -77758,23 +88003,18 @@ 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 + rebase_program(delta, flags) -> int + @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 @@ -77783,23 +88023,21 @@ recalc_spd(*args) current instruction doesn't pass the execution flow to the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + recalc_spd(cur_ea) -> bool + @param cur_ea: linear address of the current instruction (C++: ea_t) + @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) 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 @@ -77831,17 +88069,15 @@ rename_array(array_id, newname) 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 + rename_entry(ord, name, flags=0) -> bool + @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: @@ -77850,20 +88086,18 @@ 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) + resume_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @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) - retrieve_input_file_md5() -> str - - Get input file md5. Help on function rotate_byte in module idc: @@ -77895,9 +88129,6 @@ 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) @@ -77905,11 +88136,12 @@ run_to(*args) 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) + run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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: @@ -77923,14 +88155,11 @@ save_database(idbname, flags=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 *) + save_trace_file(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) Help on function savefile in module idc: @@ -77951,16 +88180,14 @@ sel2para(sel) 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. + select_thread(tid) -> bool + @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: @@ -78064,16 +88291,14 @@ set_bpt_cond(ea, cnd, is_lowcnd=0) 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 + set_cmt(ea, comm, rptble) -> bool + @param ea: linear address (C++: ea_t) + @param comm: comment string nullptr: 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: @@ -78089,19 +88314,18 @@ set_color(ea, what, color) Help on function set_debugger_event_cond in module ida_dbg: set_debugger_event_cond(*args) - set_debugger_event_cond(nonnul_cond) + set_debugger_event_cond(evcond) + @param evcond (C++: const char *) 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 + set_debugger_options(options) -> uint + @param options (C++: uint) + @return: the old debugger options Help on function set_default_sreg_value in module idc: @@ -78117,99 +88341,76 @@ set_default_sreg_value(ea, reg, value) 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) + set_enum_bf(id, bf) -> bool + @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) + set_enum_cmt(id, cmt, repeatable) -> bool + @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) + set_enum_flag(id, flag) -> bool + @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) + set_enum_idx(id, idx) -> bool + @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) + set_enum_member_cmt(id, cmt, repeatable) -> bool + @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 *) + set_enum_member_name(id, name) -> bool + @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 *) + set_enum_name(id, name) -> bool + @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) + set_enum_width(id, width) -> bool + @param id (C++: enum_t) + @param width (C++: int) Help on function set_fchunk_attr in module idc: @@ -78281,14 +88482,12 @@ set_func_cmt(ea, cmt, repeatable) 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 + set_func_end(ea, newend) -> bool + @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: @@ -78325,13 +88524,11 @@ set_hash_string(hash_id, key, value) 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 + set_ida_state(st) -> idastate_t + @param st: - new indicator status (C++: idastate_t) + @return: old indicator status Help on function set_inf_attr in module idc: @@ -78354,14 +88551,12 @@ set_local_type(ordinal, input, flags) 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 *) + set_manual_insn(ea, manual_insn) + @param ea: linear address of the instruction or data item (C++: ea_t) + @param manual_insn: "" - delete manual string. nullptr - do nothing + (C++: const char *) Help on function set_member_cmt in module idc: @@ -78429,16 +88624,14 @@ set_name(ea, name, flags=0) 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 + set_processor_type(procname, level) -> bool + @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: @@ -78455,26 +88648,22 @@ set_reg_value(value, name) 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) + set_remote_debugger(host, _pass, port=-1) + @param host: If empty, IDA will use local debugger. If NULL, the host + will not be set. (C++: const char *) + pass: char const * + @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 *) + set_root_filename(file) + @param file (C++: const char *) Help on function set_segm_addressing in module idc: @@ -78563,62 +88752,57 @@ set_segment_bounds(ea, startea, endea, flags) 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) + set_selector(selector, paragraph) -> int + @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) + @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) set_source_linnum(ea, lnnum) + @param ea (C++: ea_t) + @param lnnum (C++: uval_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) + set_step_trace_options(options) + @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 + change_storage_type(start_ea, end_ea, stt) -> error_t + @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) + set_struc_cmt(id, cmt, repeatable) -> bool + @param id (C++: tid_t) + @param cmt (C++: const char *) + @param repeatable (C++: bool) Help on function set_struc_idx in module idc: @@ -78636,14 +88820,11 @@ set_struc_idx(sid, index) 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 *) + set_struc_name(id, name) -> bool + @param id (C++: tid_t) + @param name (C++: const char *) Help on function set_tail_owner in module idc: @@ -78660,26 +88841,21 @@ set_tail_owner(tailea, funcea) 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 + set_target_assembler(asmnum) -> bool + @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 *) + set_trace_file_desc(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) Help on function split_sreg_range in module idc: @@ -78698,9 +88874,6 @@ split_sreg_range(ea, reg, value, tag=2) 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 @@ -78708,16 +88881,17 @@ start_process(*args) 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 *) + start_process(path=None, args=None, sdir=None) -> int + @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 *) + @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) - 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' } @@ -78725,9 +88899,6 @@ step_into(*args) 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' } @@ -78735,9 +88906,6 @@ step_over(*args) 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, @@ -78758,9 +88926,6 @@ 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 @@ -78773,27 +88938,26 @@ suspend_process(*args) 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) + suspend_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @retval: -1 - network error + @retval: 0 - failed + @retval: 1 - ok 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 + take_memory_snapshot(only_loader_segs) -> bool + @param only_loader_segs: only is_loader_segm() segments will be + affected (C++: bool) + @return: success Help on function to_ea in module idc: @@ -78814,19 +88978,20 @@ toggle_bnot(ea, n) 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) + toggle_sign(ea, n) -> bool + @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) + ea: ea_t + what: int + str: char const * Help on function update_hidden_range in module idc: @@ -78885,25 +89050,21 @@ value_is_string(var) 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) + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + @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) diff --git a/release_pydoc_injections3.txt b/release_pydoc_injections3.txt index f108582..2ec5967 100644 --- a/release_pydoc_injections3.txt +++ b/release_pydoc_injections3.txt @@ -1,41 +1,34 @@ 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) + auto_apply_tail(tail_ea, parent_ea) + @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) -> '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) + auto_apply_type(caller, callee) + @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) + auto_cancel(ea1, ea2) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) Help on class auto_display_t in module ida_auto: @@ -76,154 +69,129 @@ class auto_display_t(builtins.object) 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) + auto_get(type, lowEA, highEA) -> 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) + auto_make_code(ea) + @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. + auto_make_proc(ea) + @param ea (C++: ea_t) + +Help on function auto_make_step in module ida_auto: + +auto_make_step(*args) -> 'bool' + Analyze one address in the specified range and return true. - @param ea (C++: ea_t) + auto_make_step(ea1, ea2) -> bool + @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) + auto_mark(ea, type) + @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) + auto_mark_range(start, end, type) + @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) - @return: the length of the instruction or 0 + auto_recreate_insn(ea) -> int + @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) -> '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) + auto_unmark(start, end, type) + @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) + auto_wait_range(ea1, ea2) -> ssize_t + @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 + enable_auto(enable) -> 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 structure which holds the autoanalysis indicator contents. - - @param auto_display (C++: auto_display_t *) + get_auto_display(auto_display) -> bool + @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). @@ -231,150 +199,268 @@ get_auto_state(*args) -> 'atype_t' 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 + peek_auto_queue(low_ea, type) -> ea_t + @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. - @param ea1 (C++: ea_t) - @param ea2 (C++: ea_t) - @param final_pass (C++: bool) + plan_and_wait(ea1, ea2, final_pass=True) -> int + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + @param final_pass (C++: bool) + @retval: 1 - ok + @retval: 0 - Ctrl-Break was pressed 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) + plan_ea(ea) + @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) + plan_range(sEA, eEA) + @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: 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) + reanalyze_callers(ea, noret) + @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) -> '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) + revert_ida_decisions(ea1, ea2) + @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) - @return: previous state + set_auto_state(new_state) -> atype_t + @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) -> 'idastate_t' - set_ida_state(st) -> idastate_t - - Change IDA status indicator value - @param st: - new indicator status (C++: idastate_t) - @return: old indicator status + set_ida_state(st) -> idastate_t + @param st: - new indicator status (C++: idastate_t) + @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: - linear address to display (C++: ea_t) + show_addr(ea) + @param ea: - linear address to display (C++: ea_t) 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) + show_auto(ea, type=AU_NONE) + @param ea: linear address being analyzed (C++: ea_t) + @param type: autoanalysis type (see Autoanalysis queues ) (C++: + atype_t) + +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 + | r: bitrange_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | r: bitrange_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | r: bitrange_t const & + | + | __init__(self, *args) + | __init__(self, bit_ofs=0, size_in_bits=0) -> bitrange_t + | bit_ofs: uint16 + | size_in_bits: uint16 + | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | r: bitrange_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | r: bitrange_t const & + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | 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 to a bitrange + | + | apply_mask(self, subrange) -> bool + | @param subrange: 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] (C++: const bitrange_t &) + | @return: success + | + | bitoff(self, *args) -> 'uint' + | Get offset of 1st bit. + | + | bitsize(self, *args) -> 'uint' + | Get size of the value in bits. + | + | bytesize(self, *args) -> 'uint' + | Size of the value in bytes. + | + | compare(self, *args) -> 'int' + | compare(self, r) -> int + | r: bitrange_t const & + | + | create_union(self, *args) -> 'void' + | Create union of 2 ranges including the hole between them. + | + | create_union(self, r) + | @param r (C++: const bitrange_t &) + | + | empty(self, *args) -> 'bool' + | Is the bitrange empty? + | + | extract(self, *args) -> 'bool' + | extract(self, src, is_mf) -> bool + | src: void const * + | is_mf: bool + | + | has_common(self, *args) -> 'bool' + | Does have common bits with another bitrange? + | + | has_common(self, r) -> bool + | @param r (C++: const bitrange_t &) + | + | init(self, *args) -> 'void' + | Initialize offset and size to given values. + | + | init(self, bit_ofs, size_in_bits) + | @param bit_ofs (C++: uint16) + | @param size_in_bits (C++: uint16) + | + | inject(self, *args) -> 'bool' + | inject(self, dst, src, is_mf) -> bool + | dst: void * + | src: bytevec_t const & + | is_mf: bool + | + | intersect(self, *args) -> 'void' + | Intersect two ranges. + | + | intersect(self, r) + | @param r (C++: const bitrange_t &) + | + | mask64(self, *args) -> 'uint64' + | Convert to mask of 64 bits. + | + | reset(self, *args) -> 'void' + | Make the bitrange empty. + | + | shift_down(self, *args) -> 'void' + | Shift range down (left) + | + | shift_down(self, cnt) + | @param cnt (C++: uint) + | + | shift_up(self, *args) -> 'void' + | Shift range up (right) + | + | shift_up(self, cnt) + | @param cnt (C++: uint) + | + | sub(self, *args) -> 'bool' + | Subtract a bitrange. + | + | sub(self, r) -> bool + | @param r (C++: const bitrange_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 __walk_types_and_formats in module ida_bytes: @@ -384,132 +470,113 @@ __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: linear address (C++: ea_t) - @param value: byte value (C++: uint32) + add_byte(ea, value) + @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) -> '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 \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + add_dword(ea, value) + @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) -> 'bool' - 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 + add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + @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) -> '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.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 + add_mapping(_from, to, size) -> bool + @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) -> '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 \inf{is_be()} - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + add_qword(ea, value) + @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) -> '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 \inf{is_be()} - @param ea: linear address (C++: ea_t) - @param value: byte value (C++: uint64) + add_word(ea, value) + @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) -> 'flags_t' - align_flag() -> flags_t - - Get a flags_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: linear address (C++: ea_t) - @param str: comment string to append (C++: const char *) - @param rptble: append to repeatable comment? (C++: bool) - @return: success + append_cmt(ea, str, rptble) -> bool + @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) -> '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) + attach_custom_data_format(dtid, dfid) -> bool + @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) + @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()' @@ -517,87 +584,75 @@ Help on function bin_search in module ida_bytes: bin_search(*args) -> 'ea_t' bin_search(start_ea, end_ea, image, imask, step, flags) -> ea_t + start_ea: ea_t + end_ea: ea_t + image: bytevec_t const & + imask: bytevec_t const & + step: int + flags: int 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. 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) + bytesize(ea) -> int + @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 default alignment. - - @param ea (C++: ea_t) - @param mina (C++: int) - @param maxa (C++: int) + calc_def_align(ea, mina, maxa) -> int + @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) -> 'flags_t' calc_dflags(f, force) -> flags_t + @param f (C++: flags_t) + @param force (C++: bool) Help on function calc_max_align in module ida_bytes: calc_max_align(*args) -> 'int' - calc_max_align(endea) -> int - - Returns: 0..32. - - @param endea (C++: ea_t) + calc_max_align(endea) -> int + @param endea (C++: ea_t) 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: 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'. + calc_max_item_end(ea, how=15) -> ea_t + @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) -> 'int' - calc_min_align(length) -> int - - Returns: 1..32. - - @param length (C++: asize_t) + calc_min_align(length) -> int + @param length (C++: asize_t) 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'?if there is an item starting at 'ea', this function ignores itthis function converts to unexplored all encountered data items with @@ -605,353 +660,279 @@ can_define_item(*args) -> 'bool' 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 + can_define_item(ea, length, flags) -> bool + @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) -> '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) - @return: error code + change_storage_type(start_ea, end_ea, stt) -> error_t + @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) -> 'flags_t' - char_flag() -> flags_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. + chunk_size(ea) -> asize_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. + chunk_start(ea) -> ea_t + @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 lzero bit. - - @param ea (C++: ea_t) - @param n (C++: int) + clr_lzero(ea, n) -> bool + @param ea (C++: ea_t) + @param n (C++: int) 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: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + clr_op_type(ea, n) -> bool + @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) -> 'flags_t' - code_flag() -> flags_t - - - 'FF_CODE' + 'FF_CODE' 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 byte size into account) - - @param ea (C++: ea_t) - @param length (C++: asize_t) + create_16bit_data(ea, length) -> bool + @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 byte size into account) - - @param ea (C++: ea_t) - @param length (C++: asize_t) + create_32bit_data(ea, length) -> bool + @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 - - 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) + create_align(ea, length, alignment) -> bool + @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) -> '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) + create_byte(ea, length, force=False) -> 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) + create_custdata(ea, length, dtid, fid, force=False) -> 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. - @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 + create_data(ea, dataflag, size, tid) -> bool + @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) -> '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) + create_double(ea, length, force=False) -> 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) + create_dword(ea, length, force=False) -> 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) + create_float(ea, length, force=False) -> 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) + create_oword(ea, length, force=False) -> 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) + create_packed_real(ea, length, force=False) -> 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) + create_qword(ea, length, force=False) -> 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 - @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 + create_strlit(start, len, strtype) -> bool + @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) -> '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) + create_struct(ea, length, tid, force=False) -> 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) + create_tbyte(ea, length, force=False) -> 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) + create_word(ea, length, force=False) -> 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) + create_yword(ea, length, force=False) -> 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) + create_zword(ea, length, force=False) -> 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. Help on function custfmt_flag in module ida_bytes: custfmt_flag(*args) -> 'flags_t' - custfmt_flag() -> flags_t - - see 'Bits: instruction operand types' Help on class data_format_t in module ida_bytes: @@ -966,6 +947,13 @@ 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 + | self: PyObject * + | name: char const * + | value_size: asize_t + | menu_name: char const * + | props: int + | hotkey: char const * + | text_width: int32 | | __repr__ = _swig_repr(self) | @@ -976,7 +964,7 @@ class data_format_t(builtins.object) | __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 | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1023,6 +1011,13 @@ 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 + | self: PyObject * + | name: char const * + | value_size: asize_t + | menu_name: char const * + | hotkey: char const * + | asm_keyword: char const * + | props: int | | __repr__ = _swig_repr(self) | @@ -1033,7 +1028,7 @@ class data_type_t(builtins.object) | __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 | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -1071,558 +1066,470 @@ class data_type_t(builtins.object) 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()' 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) - @return: success + del_hidden_range(ea) -> bool + @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) -> '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: 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 + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + @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) -> 'void' - del_mapping(ea) - - Delete memory mapping range. - @param ea: any address in the mapped range (C++: ea_t) + del_mapping(ea) + @param ea: any address in the mapped range (C++: ea_t) 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) + del_value(ea) + @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: data type id to detach data format from (C++: int) - @param dfid: data format id to detach (C++: int) + detach_custom_data_format(dtid, dfid) -> bool + @param dtid: data type id to detach data format from (C++: int) + @param dfid: data format id to detach (C++: int) + @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: 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 + disable_flags(start_ea, end_ea) -> error_t + @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) -> 'flags_t' - double_flag() -> flags_t - - Get a flags_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. 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: 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 + enable_flags(start_ea, end_ea, stt) -> error_t + @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) -> 'flags_t' - enum_flag() -> flags_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 - - 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) + equal_bytes(ea, image, mask, len, sense_case) -> bool + @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 == nullptr, 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) + @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 (C++: flags_t) + 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++: flags_t) + f_has_dummy_name(f, arg2) -> bool + @param f (C++: flags_t) + 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 (C++: flags_t) + 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) + f_has_name(f, arg2) -> bool + @param f (C++: flags_t) + 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) + f_has_user_name(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_has_xref(f, arg2) -> bool + @param f (C++: flags_t) + 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++: flags_t) + f_is_align(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_byte(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_is_code(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_custom(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_is_data(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_double(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_dword(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_float(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_is_head(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_is_not_tail(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_oword(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_pack_real(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_qword(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_strlit(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_struct(F, arg2) -> bool + @param F (C++: flags_t) + 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) + f_is_tail(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_tbyte(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_word(F, arg2) -> bool + @param F (C++: flags_t) + 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++: flags_t) + f_is_yword(F, arg2) -> bool + @param F (C++: flags_t) + 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: 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 + find_byte(sEA, size, value, bin_search_flags) -> ea_t + @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) -> '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: 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 + find_byter(sEA, size, value, bin_search_flags) -> ea_t + @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) -> '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 *) - @return: id or -1 + find_custom_data_format(name) -> int + @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) -> '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 *) - @return: id or -1 + find_custom_data_type(name) -> int + @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) -> 'flags_t' - float_flag() -> flags_t - - Get a flags_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' 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 + free_chunk(bottom, size, step) -> ea_t + @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) -> '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() + get_16bit(ea) -> uint32 + @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); + get_32bit(ea) -> uint32 + @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) -> '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); + get_64bit(ea) -> uint64 + @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) -> 'PyObject *' get_8bit(ea, v, nbit) -> PyObject * + @param ea (C++: ea_t *) + @param v (C++: uint32 *) + @param nbit (C++: 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) + get_byte(ea) -> uchar + @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 the specified number of bytes of the program. @param ea: program address @param size: number of bytes to return @@ -1632,8 +1539,6 @@ 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 @@ -1644,380 +1549,305 @@ get_bytes_and_mask(*args) -> 'PyObject *' 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) - @return: size of comment or -1 + get_cmt(ea, rptble) -> str + @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) -> '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 + get_custom_data_format(dfid) -> data_format_t + @param dfid: data format id (C++: int) + @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) - @return: number of returned custom data formats. if error, returns -1 + get_custom_data_formats(out, dtid) -> int + @param out: buffer for the output. may be nullptr (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) -> '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 + get_custom_data_type(dtid) -> data_type_t + @param dtid: data type id (C++: int) + @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) - @return: number of custom data types with the specified size limits + get_custom_data_types(out, min_size=0, max_size=BADADDR) -> int + @param out: buffer for the output. may be nullptr (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) -> '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... + get_data_elsize(ea, F, ti=None) -> asize_t + @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 nullptr). If + specified as nullptr, 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) -> '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: 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 + get_data_value(v, ea, size) -> bool + @param v: pointer to the result. may be nullptr (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) -> '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) + get_db_byte(ea) -> uchar + @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 \inf{is_be()} This function works only for 8bit byte processors. - @param ea (C++: ea_t) + get_dword(ea) -> uint32 + @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 + get_enum_id(ea, n) -> enum_t + @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) -> 'hidden_range_t *' - 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) -> 'flags_t' - 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) + get_flags(ea) -> flags_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 from size (in bytes). Supported sizes: 1, 2, 4, 8, 16, 32. For other sizes returns 0 - @param size (C++: size_t) + get_flags_by_size(size) -> flags_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 for the specified address, extended form. - - @param ea (C++: ea_t) - @param how (C++: int) + get_flags_ex(ea, how) -> flags_t + @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) - @return: size of forced operand or -1 + get_forced_operand(ea, n) -> str + @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) -> '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++: flags_t) - @param ti (C++: const opinfo_t *) + get_full_data_elsize(ea, F, ti=None) -> asize_t + @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) -> 'flags_t' - 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 + get_full_flags(ea) -> flags_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) + get_hidden_range(ea) -> hidden_range_t + @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) -> '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) + get_hidden_range_num(ea) -> int + @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) -> '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) + get_item_end(ea) -> 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 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) + get_item_flag(_from, n, ea, appzero) -> flags_t + @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) -> '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) + get_item_head(ea) -> 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. - @param ea (C++: ea_t) + get_item_size(ea) -> asize_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 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) - @return: size of manual instruction or -1 + get_manual_insn(ea) -> str + @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) -> '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 + get_mapping(n) -> bool + @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) -> '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' + 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. + 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) + @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) -> '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 + get_next_hidden_range(ea) -> hidden_range_t + @param ea: any address in the program (C++: ea_t) + @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 8 bits of the program at 'ea'. The main usage of this function is to iterate range of bytes. Here is an example: @@ -2031,148 +1861,124 @@ get_octet(*args) -> 'PyObject *' '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 *) + get_octet(ea, v, nbit) -> PyObject * + @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) -> '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 + get_opinfo(buf, ea, n, flags) -> opinfo_t + @param buf: buffer to receive the result. may not be nullptr (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: 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 flags for first operand. - - @param F (C++: flags_t) + get_optype_flags0(F) -> flags_t + @param F (C++: flags_t) Help on function get_optype_flags1 in module ida_bytes: get_optype_flags1(*args) -> 'flags_t' - get_optype_flags1(F) -> flags_t - - Get flags for second operand. - - @param F (C++: flags_t) + get_optype_flags1(F) -> flags_t + @param F (C++: flags_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) + get_original_byte(ea) -> uint64 + @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 \inf{is_be()} - @param ea (C++: ea_t) + get_original_dword(ea) -> uint64 + @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 \inf{is_be()} - @param ea (C++: ea_t) + get_original_qword(ea) -> uint64 + @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 \inf{is_be()} - @param ea (C++: ea_t) + get_original_word(ea) -> uint64 + @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 &) - @return: size of comment or -1 + get_predef_insn_cmt(ins) -> str + @param ins: current instruction information - an ida_ua.insn_t, or an + address (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) -> '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 + get_prev_hidden_range(ea) -> hidden_range_t + @param ea: any address in the program (C++: ea_t) + @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 \inf{is_be()} This function works only for 8bit byte processors. - @param ea (C++: ea_t) + get_qword(ea) -> uint64 + @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: flags (C++: flags_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: 2, 8, 10, 16 + get_radix(F, n) -> int + @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) -> 'PyObject *' 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. @@ -2192,214 +1998,167 @@ get_strlit_contents(*args) -> 'PyObject *' 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) - @return: length of strpath + get_stroff_path(path, delta, ea, n) -> int + @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) -> '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) + get_wide_byte(ea) -> uint64 + @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 \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - @param ea (C++: ea_t) + get_wide_dword(ea) -> uint64 + @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 \inf{is_be()} - @param ea (C++: ea_t) + get_wide_word(ea) -> uint64 + @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 \inf{is_be()} This function works only for 8bit byte processors. - @param ea (C++: ea_t) + get_word(ea) -> ushort + @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: 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 + get_zero_ranges(zranges, range) -> bool + @param zranges: pointer to the return value. cannot be nullptr (C++: + rangeset_t *) + @param range: the range of addresses to verify. can be nullptr - 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) -> '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) + getn_hidden_range(n) -> hidden_range_t + @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) -> 'bool' - has_any_name(F) -> bool - - Does the current byte have any name? - - @param F (C++: flags_t) + has_any_name(F) -> bool + @param F (C++: flags_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) + has_auto_name(F) -> bool + @param F (C++: flags_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) + has_cmt(F) -> bool + @param F (C++: flags_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++: flags_t) + has_dummy_name(F) -> bool + @param F (C++: flags_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) + has_extra_cmts(F) -> bool + @param F (C++: flags_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) + has_immd(F) -> bool + @param F (C++: flags_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) + has_name(F) -> bool + @param F (C++: flags_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) + has_user_name(F) -> bool + @param F (C++: flags_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) + has_value(F) -> bool + @param F (C++: flags_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) + has_xref(F) -> bool + @param F (C++: flags_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()' @@ -2449,43 +2208,66 @@ class hidden_range_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -2514,830 +2296,631 @@ class hidden_range_t(ida_range.range_t) Help on function is_align in module ida_bytes: is_align(*args) -> 'bool' + 'FF_ALIGN' + is_align(F) -> bool - - - 'FF_ALIGN' - - - @param F (C++: flags_t) + @param F (C++: flags_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 + @param dtid (C++: int) + @param dfid (C++: int) Help on function is_bnot in module ida_bytes: is_bnot(*args) -> 'bool' - 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) + is_bnot(ea, F, n) -> bool + @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) -> 'bool' + 'FF_BYTE' + is_byte(F) -> bool - - - 'FF_BYTE' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_char(F, n) -> bool + @param F (C++: flags_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) + is_char0(F) -> bool + @param F (C++: flags_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) + is_char1(F) -> bool + @param F (C++: flags_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) + is_code(F) -> bool + @param F (C++: flags_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) + is_custfmt(F, n) -> bool + @param F (C++: flags_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) + is_custfmt0(F) -> bool + @param F (C++: flags_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) + is_custfmt1(F) -> bool + @param F (C++: flags_t) Help on function is_custom in module ida_bytes: is_custom(*args) -> 'bool' + 'FF_CUSTOM' + is_custom(F) -> bool - - - 'FF_CUSTOM' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_data(F) -> bool + @param F (C++: flags_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) + is_defarg(F, n) -> bool + @param F (C++: flags_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++: flags_t) + is_defarg0(F) -> bool + @param F (C++: flags_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++: flags_t) + is_defarg1(F) -> bool + @param F (C++: flags_t) Help on function is_double in module ida_bytes: is_double(*args) -> 'bool' + 'FF_DOUBLE' + is_double(F) -> bool - - - 'FF_DOUBLE' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_dword in module ida_bytes: is_dword(*args) -> 'bool' + 'FF_DWORD' + is_dword(F) -> bool - - - 'FF_DWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_enum(F, n) -> bool + @param F (C++: flags_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) + is_enum0(F) -> bool + @param F (C++: flags_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) + is_enum1(F) -> bool + @param F (C++: flags_t) Help on function is_float in module ida_bytes: is_float(*args) -> 'bool' + 'FF_FLOAT' + is_float(F) -> bool - - - 'FF_FLOAT' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_float0(F) -> bool + @param F (C++: flags_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) + is_float1(F) -> bool + @param F (C++: flags_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++: flags_t) + is_flow(F) -> bool + @param F (C++: flags_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) + is_fltnum(F, n) -> bool + @param F (C++: flags_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) + is_forced_operand(ea, n) -> bool + @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) -> 'bool' - is_func(F) -> bool - - Is function start? - - @param F (C++: flags_t) + is_func(F) -> bool + @param F (C++: flags_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) + is_head(F) -> bool + @param F (C++: flags_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++: flags_t) - @param n (C++: int) + is_invsign(ea, F, n) -> bool + @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) -> 'bool' - is_loaded(ea) -> bool - - Does the specified address have a byte value (is initialized?) - - @param ea (C++: ea_t) + is_loaded(ea) -> bool + @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 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) + is_lzero(ea, n) -> bool + @param ea (C++: ea_t) + @param n (C++: int) 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++: flags_t) - @param n (C++: int) + is_manual(F, n) -> bool + @param F (C++: flags_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) + is_manual_insn(ea) -> bool + @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) -> 'bool' - is_mapped(ea) -> bool - - Is the specified address 'ea' present in the program? - - @param ea (C++: ea_t) + is_mapped(ea) -> bool + @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) + is_not_tail(F) -> bool + @param F (C++: flags_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) + is_numop(F, n) -> bool + @param F (C++: flags_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) + is_numop0(F) -> bool + @param F (C++: flags_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) + is_numop1(F) -> bool + @param F (C++: flags_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) + is_off(F, n) -> bool + @param F (C++: flags_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) + is_off0(F) -> bool + @param F (C++: flags_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) + is_off1(F) -> bool + @param F (C++: flags_t) Help on function is_oword in module ida_bytes: is_oword(*args) -> 'bool' + 'FF_OWORD' + is_oword(F) -> bool - - - 'FF_OWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_pack_real in module ida_bytes: is_pack_real(*args) -> 'bool' + 'FF_PACKREAL' + is_pack_real(F) -> bool - - - 'FF_PACKREAL' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_qword in module ida_bytes: is_qword(*args) -> 'bool' + 'FF_QWORD' + is_qword(F) -> bool - - - 'FF_QWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_same_data_type(F1, F2) -> bool + @param F1 (C++: flags_t) + @param F2 (C++: flags_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) + is_seg(F, n) -> bool + @param F (C++: flags_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) + is_seg0(F) -> bool + @param F (C++: flags_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) + is_seg1(F) -> bool + @param F (C++: flags_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) + is_stkvar(F, n) -> bool + @param F (C++: flags_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) + is_stkvar0(F) -> bool + @param F (C++: flags_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) + is_stkvar1(F) -> bool + @param F (C++: flags_t) Help on function is_strlit in module ida_bytes: is_strlit(*args) -> 'bool' + 'FF_STRLIT' + is_strlit(F) -> bool - - - 'FF_STRLIT' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_stroff(F, n) -> bool + @param F (C++: flags_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) + is_stroff0(F) -> bool + @param F (C++: flags_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) + is_stroff1(F) -> bool + @param F (C++: flags_t) Help on function is_struct in module ida_bytes: is_struct(*args) -> 'bool' + 'FF_STRUCT' + is_struct(F) -> bool - - - 'FF_STRUCT' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_suspop(ea, F, n) -> bool + @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) -> 'bool' - is_tail(F) -> bool - - Does flag denote tail byte? - - @param F (C++: flags_t) + is_tail(F) -> bool + @param F (C++: flags_t) Help on function is_tbyte in module ida_bytes: is_tbyte(*args) -> 'bool' + 'FF_TBYTE' + is_tbyte(F) -> bool - - - 'FF_TBYTE' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + is_unknown(F) -> bool + @param F (C++: flags_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 *) + is_varsize_item(ea, F, ti=None, itemsize=None) -> int + @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 nullptr). If + specified as nullptr, will be automatically retrieved from + the database (C++: const opinfo_t *) + @param itemsize: if not nullptr and the item is varsize, itemsize will + contain the calculated item size (for struct types, + the minimal size is returned) (C++: asize_t *) + @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' + 'FF_WORD' + is_word(F) -> bool - - - 'FF_WORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_yword in module ida_bytes: is_yword(*args) -> 'bool' + 'FF_YWORD' + is_yword(F) -> bool - - - 'FF_YWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_t) Help on function is_zword in module ida_bytes: is_zword(*args) -> 'bool' + 'FF_ZWORD' + is_zword(F) -> bool - - - 'FF_ZWORD' - - - @param F (C++: flags_t) + @param F (C++: flags_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) + leading_zero_important(ea, n) -> bool + @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, - otherwise the result depends on the segment type + nbits(ea) -> int + @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) -> '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. + next_addr(ea) -> ea_t + @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. + next_chunk(ea) -> ea_t + @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. + next_head(ea, maxea) -> ea_t + @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) -> 'ea_t' - next_inited(ea, maxea) -> ea_t - - Find the next initialized address. - - @param ea (C++: ea_t) - @param maxea (C++: ea_t) + next_inited(ea, maxea) -> 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. + next_not_tail(ea) -> ea_t + @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 - - 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. @@ -3349,213 +2932,168 @@ next_that(*args) -> 'ea_t' 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) + next_unknown(ea, maxea) -> ea_t + @param ea (C++: ea_t) + @param maxea (C++: ea_t) Help on function num_flag in module ida_bytes: num_flag(*args) -> 'flags_t' - 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) -> 'flags_t' - 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) -> 'flags_t' - off_flag() -> flags_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++: flags_t) - @param n (C++: int) + op_adds_xrefs(F, n) -> bool + @param F (C++: flags_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) + op_bin(ea, n) -> bool + @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) + op_chr(ea, n) -> bool + @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) + op_custfmt(ea, n, fid) -> bool + @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) + op_dec(ea, n) -> bool + @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: 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 + op_enum(ea, n, id, serial) -> bool + @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) -> 'bool' - op_flt(ea, n) -> bool - - set op type to 'flt_flag()' - - @param ea (C++: ea_t) - @param n (C++: int) + op_flt(ea, n) -> bool + @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) + op_hex(ea, n) -> bool + @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) + op_num(ea, n) -> bool + @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) + op_oct(ea, n) -> bool + @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: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + op_seg(ea, n) -> bool + @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) -> '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: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + op_stkvar(ea, n) -> bool + @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) -> '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: 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 + op_stroff(insn, n, path, path_len, delta) -> bool + @param insn: the instruction - an ida_ua.insn_t, or an address (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> @@ -3570,191 +3108,175 @@ op_stroff(*args) -> 'bool' 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. Help on function packreal_flag in module ida_bytes: packreal_flag(*args) -> 'flags_t' - 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) -> '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. - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_byte(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + patch_bytes(ea, buf) + @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) -> '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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_dword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_qword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_word(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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. + prev_addr(ea) -> ea_t + @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. + prev_chunk(ea) -> ea_t + @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. + prev_head(ea, minea) -> ea_t + @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) -> 'ea_t' - prev_inited(ea, minea) -> ea_t - - Find the previous initialized address. - - @param ea (C++: ea_t) - @param minea (C++: ea_t) + prev_inited(ea, minea) -> 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. + prev_not_tail(ea) -> ea_t + @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 - - 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 . + prev_that(ea, minea, callable) -> ea_t + @param ea: start searching from this address - 1. (C++: ea_t) + @param minea: included in the search range. (C++: ea_t) + callable: PyObject * + @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) + prev_unknown(ea, minea) -> ea_t + @param ea (C++: ea_t) + @param minea (C++: ea_t) Help on function print_strlit_type in module ida_bytes: print_strlit_type(*args) -> 'PyObject *' - 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 + print_strlit_type(strtype, flags=0) -> PyObject * + @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) -> '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.The original value of the byte is completely lost and @@ -3762,79 +3284,67 @@ put_byte(*args) -> 'bool' '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 + put_byte(ea, x) -> bool + @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) -> '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: linear address (C++: ea_t) - @param buf: buffer with new values of bytes (C++: const void *) + put_bytes(ea, buf) + @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) -> 'void' - 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) + put_dword(ea, x) + @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) -> '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 \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) + put_qword(ea, x) + @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) -> 'void' - 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) + put_word(ea, x) + @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. 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: @@ -3845,8 +3355,6 @@ 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: @@ -3880,190 +3388,153 @@ register_data_types_and_formats(formats) Help on function revert_byte in module ida_bytes: revert_byte(*args) -> 'bool' - revert_byte(ea) -> bool - - Revert patched byte - @param ea (C++: ea_t) + revert_byte(ea) -> bool + @param ea (C++: ea_t) + @retval: true - byte was patched before and reverted now Help on function seg_flag in module ida_bytes: seg_flag(*args) -> 'flags_t' - seg_flag() -> flags_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) - @return: success + set_cmt(ea, comm, rptble) -> bool + @param ea: linear address (C++: ea_t) + @param comm: comment string nullptr: 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) -> '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 *) - @return: success + set_forced_operand(ea, n, op) -> bool + @param ea: linear address (C++: ea_t) + @param n: number of operand (0, 1, 2) (C++: int) + @param op: text of operand nullptr: do nothing (return 0) "" : + delete forced operand (C++: const char *) + @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) + set_immd(ea) -> bool + @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. - - @param ea (C++: ea_t) - @param n (C++: int) + set_lzero(ea, n) -> bool + @param ea (C++: ea_t) + @param n (C++: int) 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 *) + set_manual_insn(ea, manual_insn) + @param ea: linear address of the instruction or data item (C++: ea_t) + @param manual_insn: "" - delete manual string. nullptr - do nothing + (C++: const char *) 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) + set_op_type(ea, type, n) -> bool + @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) + @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: 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 + set_opinfo(ea, n, flag, ti, suppress_events=False) -> bool + @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) -> 'flags_t' - stkvar_flag() -> flags_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. Help on function stroff_flag in module ida_bytes: stroff_flag(*args) -> 'flags_t' - stroff_flag() -> flags_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. 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. 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) + toggle_bnot(ea, n) -> bool + @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 + @param ea (C++: ea_t) + @param n (C++: int) 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) + toggle_sign(ea, n) -> bool + @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,8 +3543,6 @@ 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 @@ -4087,32 +3556,26 @@ unregister_data_types_and_formats(formats) 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: range to update (C++: const hidden_range_t *) - @return: success + update_hidden_range(ha) -> bool + @param ha: range to update (C++: const hidden_range_t *) + @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) - @return: translated address + use_mapping(ea) -> ea_t + @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) -> '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 @@ -4127,25 +3590,16 @@ 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. 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. 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. === ida_bytes EPYDOC INJECTIONS === @@ -4711,6 +4165,7 @@ class DBG_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> DBG_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -4718,46 +4173,113 @@ class DBG_Hooks(builtins.object) | delete_DBG_Hooks(self) | | dbg_bpt(self, *args) -> 'int' + | A user defined breakpoint was reached. + | | dbg_bpt(self, tid, bptea) -> int + | @param tid (C++: thid_t) + | @param bptea (C++: ea_t) | | dbg_bpt_changed(self, *args) -> 'void' + | Breakpoint has been changed. + | | dbg_bpt_changed(self, bptev_code, bpt) + | @param bptev_code: Breakpoint modification events (C++: int) + | @param bpt (C++: bpt_t *) | | dbg_exception(self, *args) -> 'int' | dbg_exception(self, pid, tid, ea, exc_code, exc_can_cont, exc_ea, exc_info) -> int + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exc_code: int + | exc_can_cont: bool + | exc_ea: ea_t + | 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) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | info: char const * | | dbg_library_load(self, *args) -> 'void' | dbg_library_load(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_library_unload(self, *args) -> 'void' | dbg_library_unload(self, pid, tid, ea, info) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | info: char const * | | dbg_process_attach(self, *args) -> 'void' + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_attach(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_process_detach(self, *args) -> 'void' + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_detach(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | ea: ea_t | | dbg_process_exit(self, *args) -> 'void' + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_exit(self, pid, tid, ea, exit_code) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exit_code: int | | dbg_process_start(self, *args) -> 'void' + | This event notification is also an asynchronous function result + | notification for 'start_process()' ! + | | dbg_process_start(self, pid, tid, ea, modinfo_name, modinfo_base, modinfo_size) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | modinfo_name: char const * + | modinfo_base: ea_t + | modinfo_size: asize_t | | dbg_request_error(self, *args) -> 'void' + | An error occurred during the processing of a request. + | | dbg_request_error(self, failed_command, failed_dbg_notification) + | @param failed_command (C++: ui_notification_t) + | @param failed_dbg_notification (C++: dbg_notification_t) | | dbg_run_to(self, *args) -> 'void' | dbg_run_to(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | 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) @@ -4769,16 +4291,32 @@ class DBG_Hooks(builtins.object) | dbg_step_until_ret(self) | | dbg_suspend_process(self, *args) -> 'void' - | dbg_suspend_process(self) + | The process is now suspended.This event notification is also an + | asynchronous function result notification for 'suspend_process()' ! | | dbg_thread_exit(self, *args) -> 'void' | dbg_thread_exit(self, pid, tid, ea, exit_code) + | pid: pid_t + | tid: thid_t + | ea: ea_t + | exit_code: int | | dbg_thread_start(self, *args) -> 'void' | dbg_thread_start(self, pid, tid, ea) + | pid: pid_t + | tid: thid_t + | ea: ea_t | | dbg_trace(self, *args) -> 'int' + | A step occurred (one instruction was executed). This event + | notification is only generated if step tracing is enabled. + | | dbg_trace(self, tid, ip) -> int + | @param tid: thread ID (C++: thid_t) + | @param ip: current instruction pointer. usually points after the + | executed instruction (C++: ea_t) + | @retval: 1 - do not log this trace event + | @retval: 0 - log it | | hook(self, *args) -> 'bool' | hook(self) -> bool @@ -4801,54 +4339,64 @@ class DBG_Hooks(builtins.object) Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' - 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) + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @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) + + + add_bpt(bpt) -> bool + 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 (C++: const char *) + @param dst (C++: const char *) Help on function add_virt_module in module ida_dbg: add_virt_module(*args) -> 'bool' add_virt_module(mod) -> bool + @param mod (C++: const modinfo_t *) 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' }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) + attach_process(pid=pid_t(-1), event_id=-1) -> int + @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) + @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 +4407,30 @@ class bpt_location_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: bpt_location_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: bpt_location_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: bpt_location_t const & | | __init__(self, *args) | __init__(self) -> bpt_location_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: bpt_location_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: bpt_location_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: bpt_location_t const & | | __repr__ = _swig_repr(self) | @@ -4884,40 +4438,62 @@ class bpt_location_t(builtins.object) | delete_bpt_location_t(self) | | compare(self, *args) -> '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. + | | compare(self, r) -> int + | @param r (C++: const bpt_location_t &) | | 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' + | Specify an absolute address location. + | | set_abs_bpt(self, a) + | @param a (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' + | Specify a relative address location. + | | set_rel_bpt(self, mod, _offset) + | @param mod (C++: const char *) + | @param _offset (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' + | Specify a source level location. + | | set_src_bpt(self, fn, _lineno) + | @param fn (C++: const char *) + | @param _lineno (C++: int) | | set_sym_bpt(self, *args) -> 'void' + | Specify a symbolic location. + | | set_sym_bpt(self, _symbol, _offset=0) + | @param _symbol (C++: const char *) + | @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: @@ -4961,76 +4537,95 @@ class bpt_t(builtins.object) | 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 bpt location to an absolute address. + | | set_abs_bpt(self, a) + | @param a (C++: ea_t) | | set_rel_bpt(self, *args) -> 'void' + | Set bpt location to a relative address. + | | set_rel_bpt(self, mod, o) + | @param mod (C++: const char *) + | @param o (C++: uval_t) | | set_src_bpt(self, *args) -> 'void' + | Set bpt location to a source line. + | | set_src_bpt(self, fn, lineno) + | @param fn (C++: const char *) + | @param lineno (C++: int) | | set_sym_bpt(self, *args) -> 'void' + | Set bpt location to a symbol. + | | set_sym_bpt(self, sym, o) + | @param sym (C++: const char *) + | @param o (C++: uval_t) | | set_trace_action(self, *args) -> 'bool' + | Configure tracing options. + | | set_trace_action(self, enable, trace_types) -> bool + | @param enable (C++: bool) + | @param trace_types (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -5092,10 +4687,11 @@ class bpt_vec_t(builtins.object) | | __getitem__(self, *args) -> 'bpt_t const &' | __getitem__(self, i) -> bpt_t + | i: size_t | | __init__(self, *args) | __init__(self) -> bpt_vec_t - | __init__(self, x) -> bpt_vec_t + | 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,12 +4703,15 @@ class bpt_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -5136,7 +4735,12 @@ class bpt_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< bpt_t >::iterator' | erase(self, it) -> bpt_t + | it: qvector< bpt_t >::iterator + | + | | erase(self, first, last) -> bpt_t + | first: qvector< bpt_t >::iterator + | last: qvector< bpt_t >::iterator | | extract(self, *args) -> 'bpt_t *' | extract(self) -> bpt_t @@ -5146,35 +4750,47 @@ class bpt_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=bpt_t()) + | x: bpt_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: bpt_t * + | len: size_t | | insert(self, *args) -> 'qvector< bpt_t >::iterator' | insert(self, it, x) -> bpt_t + | it: qvector< bpt_t >::iterator + | x: bpt_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bpt_t &' | push_back(self, x) - | push_back(self) -> bpt_t + | x: bpt_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: bpt_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< bpt_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -5199,28 +4815,20 @@ bring_debugger_to_front(*args) -> 'void' 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 + check_bpt(ea) -> int + @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. @@ -5228,9 +4836,6 @@ clear_requests_queue(*args) -> 'void' 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)} @@ -5238,13 +4843,12 @@ Help on function collect_stack_trace in module ida_dbg: collect_stack_trace(*args) -> 'bool' collect_stack_trace(tid, trace) -> bool + @param tid (C++: thid_t) + @param trace (C++: 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 @@ -5258,133 +4862,116 @@ continue_process(*args) -> 'bool' 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) + create_source_viewer(out_ccv, parent, custview, sf, lines, lnnum, colnum, flags) -> source_view_t * + @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 + dbg_add_bpt_tev(tid, ea, bp) -> bool + @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) + dbg_add_call_tev(tid, caller, callee) + @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 *) + dbg_add_debug_event(event) + @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) - @return: false if the operation failed, true otherwise + dbg_add_insn_tev(tid, ea, save=SAVE_DIFF) -> bool + @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) -> '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 + dbg_add_many_tevs(new_tevs) -> bool + @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) + dbg_add_ret_tev(tid, ret_insn, return_to) + @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) - @param tid (C++: thid_t) - @param address (C++: ea_t) + dbg_add_tev(type, tid, address) + @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) -> '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) + dbg_add_thread(tid) + @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 (C++: ea_t) + @param end_ea (C++: ea_t) + @param data (C++: const compiled_binpat_vec_t &) + @param srch_flags (C++: 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 @@ -5396,78 +4983,72 @@ dbg_can_query(*args) -> 'bool' 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) + dbg_del_thread(tid) + @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 + define_exception(code, name, desc, flags) -> char const * + @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) -> 'bool' - 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) + del_bpt(ea) -> bool + @param ea: any address in the breakpoint range (C++: ea_t) + + + del_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function del_bptgrp in module ida_dbg: del_bptgrp(*args) -> 'bool' del_bptgrp(name) -> bool + @param name (C++: const char *) Help on function del_virt_module in module ida_dbg: del_virt_module(*args) -> 'bool' del_virt_module(base) -> bool + @param base (C++: const ea_t) 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(nonnul_filename) -> bool - - Show difference between the current trace and the one from 'filename'. + + diff_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function disable_bblk_trace in module ida_dbg: @@ -5478,7 +5059,11 @@ Help on function disable_bpt in module ida_dbg: disable_bpt(*args) -> 'bool' disable_bpt(ea) -> bool + @param ea (C++: ea_t) + + disable_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function disable_func_trace in module ida_dbg: @@ -5504,32 +5089,43 @@ Help on function enable_bblk_trace in module ida_dbg: enable_bblk_trace(*args) -> 'bool' enable_bblk_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool + @param ea (C++: ea_t) + @param enable (C++: bool) + + enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: bool) Help on function enable_func_trace in module ida_dbg: enable_func_trace(*args) -> 'bool' enable_func_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_insn_trace in module ida_dbg: enable_insn_trace(*args) -> 'bool' enable_insn_trace(enable=True) -> bool + @param enable (C++: bool) Help on function enable_manual_regions in module ida_dbg: enable_manual_regions(*args) -> 'void' enable_manual_regions(enable) + @param enable (C++: 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 (C++: int) Help on class eval_ctx_t in module ida_dbg: @@ -5540,6 +5136,7 @@ class eval_ctx_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> eval_ctx_t + | _ea: ea_t | | __repr__ = _swig_repr(self) | @@ -5564,41 +5161,30 @@ class eval_ctx_t(builtins.object) 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) + exist_bpt(ea) -> bool + @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: Breakpoint location (C++: const bpt_location_t &) - @param bpt: bpt is filled if the breakpoint was found (C++: bpt_t *) + find_bpt(bptloc, bpt) -> bool + @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) -> '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)} @@ -5606,37 +5192,30 @@ get_bblk_trace_options(*args) -> 'int' 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: 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 + get_bpt(ea, bpt) -> bool + @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) -> 'qstring *' get_bpt_group(bptloc) -> str + @param bptloc (C++: const bpt_location_t &) 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)}Usually, a breakpoint is associated with a read, read/write @@ -5645,33 +5224,29 @@ get_bpt_tev_ea(*args) -> 'ea_t' 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. + get_bpt_tev_ea(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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) -> 'char const *' - get_bptloc_string(i) -> char const * - - Helper function for 'bpt_location_t' . - - @param i (C++: int) + get_bptloc_string(i) -> char const * + @param i (C++: 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: 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. + get_call_tev_callee(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -5686,47 +5261,38 @@ get_current_source_line(*args) -> '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) -> 'bool' - 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 + get_dbg_byte(x, ea) -> bool + @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) -> 'int' get_dbg_memory_info(ranges) -> int + @param ranges (C++: 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 *) - @param ri (C++: register_info_t *) + get_dbg_reg_info(regname, ri) -> bool + @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) -> '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,13 +5304,11 @@ Help on function get_first_module in module ida_dbg: get_first_module(*args) -> 'bool' get_first_module(modinfo) -> bool + @param modinfo (C++: 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)} @@ -5752,66 +5316,63 @@ 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 (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param name (C++: const char *) + @param out (C++: 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 + @param bpts (C++: bpt_vec_t *) + @param grp_name (C++: const char *) 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: 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 + get_insn_tev_reg_mem(n, memmap) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> '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. + get_insn_tev_reg_result(n, regname, regval) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> '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. + get_insn_tev_reg_val(n, regname, regval) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> '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)} @@ -5819,9 +5380,6 @@ get_insn_trace_options(*args) -> 'int' 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. @@ -5829,19 +5387,23 @@ 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 (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param name (C++: const char *) + @param out (C++: 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 (C++: srcinfo_provider_t *) + @param ea (C++: ea_t) + @param out (C++: 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 @return: list(start_ea, end_ea, name, sclass, sbase, bitness, perm) @@ -5849,105 +5411,91 @@ Help on function get_module_info in module ida_dbg: get_module_info(*args) -> 'bool' get_module_info(ea, modinfo) -> bool + @param ea (C++: ea_t) + @param modinfo (C++: modinfo_t *) Help on function get_next_module in module ida_dbg: get_next_module(*args) -> 'bool' get_next_module(modinfo) -> bool + @param modinfo (C++: 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 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 *) - @return: number of processes or -1 on error + get_processes(proclist) -> ssize_t + @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) -> 'PyObject *' - 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 *) + get_reg_val(regname, regval) -> bool + @param regname (C++: const char *) + @param regval (C++: regval_t *) + + + get_reg_val(regname, ival) -> bool + @param regname (C++: const char *) + ival: uint64 * + + + get_reg_val(regname) -> PyObject * + @param regname (C++: const char *) Help on function get_reg_vals in module ida_dbg: get_reg_vals(*args) -> 'int' get_reg_vals(tid, clsmask, values) -> int + @param tid (C++: thid_t) + @param clsmask (C++: int) + @param values (C++: regval_t *) 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: 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. + get_ret_tev_return(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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) -> '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. @@ -5955,74 +5503,62 @@ 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 (C++: const char *) 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 (C++: 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: 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". + get_tev_event(n, d) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> '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: 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 + get_tev_info(n, tev_info) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> '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". + get_tev_memory_info(n, mi) -> bool + @param n: number of trace event, is in range 0.. get_tev_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) -> 'int' - get_tev_qty() -> int - - Get number of trace events available in trace buffer. \sq{Type, Synchronous function, Notification, none (synchronous function)} @@ -6046,103 +5582,92 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int + @param n (C++: int) Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int + @param n (C++: 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)} + +Help on function get_trace_dynamic_register_set in module ida_dbg: + +get_trace_dynamic_register_set(*args) -> 'void' + Get dynamic register set of current trace. - @return: the base address of the currently loaded trace + get_trace_dynamic_register_set(idaregs) + @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 *) + get_trace_file_desc(filename) -> str + @param filename (C++: const char *) 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: 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 + getn_bpt(n, bpt) -> bool + @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) -> 'thid_t' - 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. + getn_thread(n) -> thid_t + @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) -> 'char const *' - 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. + getn_thread_name(n) -> char const * + @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) -> '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 (C++: const debug_event_t *) + @param rqflags (C++: int) Help on function hide_all_bpts in module ida_dbg: @@ -6153,8 +5678,6 @@ 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. @return: The sreg base, or BADADDR on failure. @@ -6163,25 +5686,24 @@ Help on function internal_ioctl in module ida_dbg: internal_ioctl(*args) -> 'int' internal_ioctl(fn, buf, poutbuf, poutsize) -> int + @param fn (C++: int) + @param buf (C++: const void *) + @param poutbuf (C++: void **) + @param poutsize (C++: 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: Debugged process invalidation options (C++: int) - @return: current debugger state (one of Debugged process states ) + invalidate_dbg_state(dbginv) -> int + @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) -> '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) @@ -6189,16 +5711,14 @@ invalidate_dbgmem_config(*args) -> 'void' 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) + invalidate_dbgmem_contents(ea, size) + @param ea (C++: ea_t) + @param size (C++: asize_t) Help on function is_bblk_trace_enabled in module ida_dbg: @@ -6208,9 +5728,6 @@ is_bblk_trace_enabled(*args) -> '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 @@ -6220,123 +5737,96 @@ is_debugger_busy(*args) -> 'bool' 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) + is_debugger_memory(ea) -> bool + @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 instructions tracing. \sq{Type, Synchronous + 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 *) + is_reg_custom(regname) -> bool + @param regname (C++: const char *) 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 *) + is_reg_float(regname) -> bool + @param regname (C++: const char *) 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 *) + is_reg_integer(regname) -> bool + @param regname (C++: const char *) 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_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 *) + is_valid_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function list_bptgrps in module ida_dbg: list_bptgrps(*args) -> 'PyObject *' list_bptgrps(bptgrps) -> size_t - list_bptgrps() -> PyObject * + @param bptgrps (C++: qstrvec_t *) Help on function load_debugger in module ida_dbg: load_debugger(*args) -> 'bool' load_debugger(dbgname, use_remote) -> bool + @param dbgname (C++: const char *) + @param use_remote (C++: 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 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 *) + load_trace_file(filename) -> str + @param filename (C++: const char *) Help on class memreg_info_t in module ida_dbg: @@ -6383,10 +5873,11 @@ class memreg_infos_t(builtins.object) | | __getitem__(self, *args) -> 'memreg_info_t const &' | __getitem__(self, i) -> memreg_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> memreg_infos_t - | __init__(self, x) -> memreg_infos_t + | 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,12 +5889,15 @@ class memreg_infos_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -6427,7 +5921,12 @@ class memreg_infos_t(builtins.object) | | erase(self, *args) -> 'qvector< memreg_info_t >::iterator' | erase(self, it) -> memreg_info_t + | it: qvector< memreg_info_t >::iterator + | + | | erase(self, first, last) -> memreg_info_t + | first: qvector< memreg_info_t >::iterator + | last: qvector< memreg_info_t >::iterator | | extract(self, *args) -> 'memreg_info_t *' | extract(self) -> memreg_info_t @@ -6437,35 +5936,47 @@ class memreg_infos_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=memreg_info_t()) + | x: memreg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: memreg_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< memreg_info_t >::iterator' | insert(self, it, x) -> memreg_info_t + | it: qvector< memreg_info_t >::iterator + | x: memreg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memreg_info_t &' | push_back(self, x) - | push_back(self) -> memreg_info_t + | x: memreg_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: memreg_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< memreg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -6486,33 +5997,30 @@ Help on function move_bpt_to_grp in module ida_dbg: move_bpt_to_grp(*args) -> 'void' 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) -> '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) - @return: true if the process memory has been modified + put_dbg_byte(ea, x) -> bool + @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) -> 'ssize_t' read_dbg_memory(ea, buffer, size) -> ssize_t + @param ea (C++: ea_t) + @param buffer (C++: void *) + @param size (C++: 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 @@ -6520,68 +6028,58 @@ Help on function rename_bptgrp in module ida_dbg: rename_bptgrp(*args) -> 'bool' rename_bptgrp(old_name, new_name) -> bool + @param old_name (C++: const char *) + @param new_name (C++: const char *) 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 - request_add_bpt(bpt) -> bool - - Post an 'add_bpt(ea_t, asize_t, bpttype_t)' request. + request_add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @param ea (C++: ea_t) + @param size (C++: asize_t) + @param type (C++: bpttype_t) - @param ea (C++: ea_t) - @param size (C++: asize_t) - @param type (C++: bpttype_t) + + request_add_bpt(bpt) -> bool + 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) + request_attach_process(pid, event_id) -> 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. 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()' Help on function request_del_bpt in module ida_dbg: request_del_bpt(*args) -> 'bool' - request_del_bpt(ea) -> bool - request_del_bpt(bptloc) -> bool - - Post a 'del_bpt(ea_t)' request. + request_del_bpt(ea) -> bool + @param ea (C++: ea_t) - @param ea (C++: ea_t) + + request_del_bpt(bptloc) -> bool + 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: @@ -6593,7 +6091,11 @@ Help on function request_disable_bpt in module ida_dbg: request_disable_bpt(*args) -> 'bool' request_disable_bpt(ea) -> bool + @param ea (C++: ea_t) + + request_disable_bpt(bptloc) -> bool + bptloc: bpt_location_t const & Help on function request_disable_func_trace in module ida_dbg: @@ -6614,211 +6116,172 @@ 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 (C++: 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 (C++: ea_t) + @param enable (C++: bool) + + request_enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: 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 (C++: 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 (C++: 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 (C++: 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) + request_resume_thread(tid) -> int + @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) - @param tid (C++: thid_t) + request_run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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) -> 'bool' - request_select_thread(tid) -> bool - - Post a 'select_thread()' request. - - @param tid (C++: thid_t) + request_select_thread(tid) -> bool + @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) + request_set_bblk_trace_options(options) + @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) + request_set_func_trace_options(options) + @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) + request_set_insn_trace_options(options) + @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 *) + request_set_reg_val(regname, o) -> PyObject * + @param regname (C++: const char *) + 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) + request_set_resume_mode(tid, mode) -> bool + @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) -> 'void' - request_set_step_trace_options(options) - - Post a 'set_step_trace_options()' request. - - @param options (C++: int) + request_set_step_trace_options(options) + @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 *) - @param args (C++: const char *) - @param sdir (C++: const char *) + request_start_process(path=None, args=None, sdir=None) -> int + @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) -> '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) + request_suspend_thread(tid) -> int + @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) + resume_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @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 @@ -6827,24 +6290,15 @@ retrieve_exceptions(*args) -> 'excvec_t *' 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)}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) -> '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) @@ -6852,37 +6306,33 @@ run_to(*args) -> 'bool' 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) + run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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) -> '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 *) + save_trace_file(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) 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: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + select_thread(tid) -> bool + @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: @@ -6898,113 +6348,100 @@ send_dbg_command(command) 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) + set_bblk_trace_options(options) + @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 bpt (C++: bpt_t &) + @param grp_name (C++: const char *) Help on function set_bptloc_group in module ida_dbg: set_bptloc_group(*args) -> 'bool' set_bptloc_group(bptloc, grp_name) -> bool + @param bptloc (C++: const bpt_location_t &) + @param grp_name (C++: const char *) 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 *) + set_bptloc_string(s) -> int + @param s (C++: const char *) 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(evcond) + @param evcond (C++: const char *) 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 + set_debugger_options(options) -> 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)} - @param options (C++: int) + set_func_trace_options(options) + @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) + set_highlight_trace_options(hilight, color, diff) + @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) + set_insn_trace_options(options) + @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 (C++: const meminfo_vec_t *) 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 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) + set_process_options(path, args, sdir, host, _pass, port) + @param path (C++: const char *) + @param args (C++: const char *) + @param sdir (C++: const char *) + @param host (C++: const char *) + pass: 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 @@ -7015,112 +6452,110 @@ set_process_state(*args) -> 'int' 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 ) + set_process_state(newstate, p_thid, dbginv) -> int + @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) -> 'PyObject *' - 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 *) + set_reg_val(regname, o) -> PyObject + @param regname (C++: const char *) + o: PyObject * + + + set_reg_val(tid, regidx, o) -> PyObject * + tid: thid_t + regidx: int + 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: 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) + set_remote_debugger(host, _pass, port=-1) + @param host: If empty, IDA will use local debugger. If NULL, the host + will not be set. (C++: const char *) + pass: char const * + @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) -> '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) + set_resume_mode(tid, mode) -> bool + @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) -> '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) + set_step_trace_options(options) + @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) + set_trace_base_address(ea) + @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 dynamic register set of current trace. + + set_trace_dynamic_register_set(idaregs) + @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 *) + set_trace_file_desc(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) 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 *) + set_trace_platform(platform) + @param platform (C++: const char *) 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)}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) + set_trace_size(size) -> bool + @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: @@ -7155,9 +6590,6 @@ srcdbg_step_until_ret(*args) -> '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' }You can also use the 'run_to()' function to easily start the execution of a process @@ -7165,16 +6597,17 @@ start_process(*args) -> 'int' 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 *) + start_process(path=None, args=None, sdir=None) -> int + @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 *) + @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' } @@ -7182,9 +6615,6 @@ step_into(*args) -> 'bool' 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' } @@ -7192,9 +6622,6 @@ step_over(*args) -> 'bool' 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, @@ -7203,18 +6630,12 @@ step_until_ret(*args) -> 'bool' 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 @@ -7227,15 +6648,16 @@ suspend_process(*args) -> 'bool' 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: thread id (C++: thid_t) + suspend_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @retval: -1 - network error + @retval: 0 - failed + @retval: 1 - ok Help on class tev_info_reg_t in module ida_dbg: @@ -7315,6 +6737,8 @@ class tev_reg_value_t(builtins.object) | | __init__(self, *args) | __init__(self, _reg_idx=-1, _value=uint64(-1)) -> tev_reg_value_t + | _reg_idx: int + | _value: uint64 | | __repr__ = _swig_repr(self) | @@ -7348,10 +6772,11 @@ class tev_reg_values_t(builtins.object) | | __getitem__(self, *args) -> 'tev_reg_value_t const &' | __getitem__(self, i) -> tev_reg_value_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tev_reg_values_t - | __init__(self, x) -> tev_reg_values_t + | 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,12 +6788,15 @@ class tev_reg_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -7392,7 +6820,12 @@ class tev_reg_values_t(builtins.object) | | erase(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | erase(self, it) -> tev_reg_value_t + | it: qvector< tev_reg_value_t >::iterator + | + | | erase(self, first, last) -> tev_reg_value_t + | first: qvector< tev_reg_value_t >::iterator + | last: qvector< tev_reg_value_t >::iterator | | extract(self, *args) -> 'tev_reg_value_t *' | extract(self) -> tev_reg_value_t @@ -7402,35 +6835,47 @@ class tev_reg_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_reg_value_t()) + | x: tev_reg_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: tev_reg_value_t * + | len: size_t | | insert(self, *args) -> 'qvector< tev_reg_value_t >::iterator' | insert(self, it, x) -> tev_reg_value_t + | it: qvector< tev_reg_value_t >::iterator + | 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) - | push_back(self) -> tev_reg_value_t + | x: tev_reg_value_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: tev_reg_value_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< tev_reg_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7456,10 +6901,11 @@ class tevinforeg_vec_t(builtins.object) | | __getitem__(self, *args) -> 'tev_info_reg_t const &' | __getitem__(self, i) -> tev_info_reg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tevinforeg_vec_t - | __init__(self, x) -> tevinforeg_vec_t + | 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,12 +6917,15 @@ class tevinforeg_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -7500,7 +6949,12 @@ class tevinforeg_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | erase(self, it) -> tev_info_reg_t + | it: qvector< tev_info_reg_t >::iterator + | + | | erase(self, first, last) -> tev_info_reg_t + | first: qvector< tev_info_reg_t >::iterator + | last: qvector< tev_info_reg_t >::iterator | | extract(self, *args) -> 'tev_info_reg_t *' | extract(self) -> tev_info_reg_t @@ -7510,35 +6964,47 @@ class tevinforeg_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=tev_info_reg_t()) + | x: tev_info_reg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: tev_info_reg_t * + | len: size_t | | insert(self, *args) -> 'qvector< tev_info_reg_t >::iterator' | insert(self, it, x) -> tev_info_reg_t + | it: qvector< tev_info_reg_t >::iterator + | 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) - | push_back(self) -> tev_info_reg_t + | x: tev_info_reg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: tev_info_reg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< tev_info_reg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -7558,9 +7024,6 @@ class tevinforeg_vec_t(builtins.object) 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)}Only the following @@ -7575,28 +7038,30 @@ update_bpt(*args) -> 'bool' '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 *) + update_bpt(bpt) -> bool + @param bpt (C++: const bpt_t *) 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: 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) + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + @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) -> 'ssize_t' write_dbg_memory(ea, py_buf, size=size_t(-1)) -> ssize_t + @param ea (C++: ea_t) + py_buf: PyObject * + @param size (C++: size_t) === ida_dbg EPYDOC INJECTIONS === ida_dbg.BKPT_ACTIVE @@ -7737,6 +7202,9 @@ refresh the memory layout and contents before evaluating bpt condition ida_dbg.BT_LOG_INSTS """ +specific options for basic block tracing (see +'set_bblk_trace_options()' ) + log all instructions in the current basic block """ @@ -7882,12 +7350,19 @@ display for unknown exceptions ida_dbg.FT_LOG_RET """ +specific options for function tracing (see 'set_func_trace_options()' +) + function tracing will log returning instructions """ ida_dbg.IT_LOG_SAME_IP """ -instruction tracing will log instructions whose IP doesn't change +specific options for instruction tracing (see +'set_insn_trace_options()' ) + +instruction tracing will log new instructions even when IP doesn't +change """ ida_dbg.ST_ALREADY_LOGGED @@ -7897,7 +7372,7 @@ step tracing will be disabled when IP is already logged ida_dbg.ST_DIFFERENTIAL """ -tracing: log only new instructions +tracing: log only new instructions (not previously logged) """ ida_dbg.ST_OPTIONS_MASK @@ -7955,61 +7430,99 @@ ida_dbg.WFNE_USEC timeout is specified in microseconds """ === ida_dbg EPYDOC INJECTIONS END === +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 (C++: qstring *) + @param file (C++: const char *) + @param parse_params (C++: 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 + | 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 + | @param param (C++: qstring *) + | @param line (C++: const char *) + | @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 + | + | ---------------------------------------------------------------------- + | Data 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 *) + close_linput(li) + @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. + + create_bytearray_linput(s) -> linput_t * + 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 - *) + create_generic_linput(gl) -> linput_t * + @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) -> '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: 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) + create_memory_linput(start, size) -> linput_t * + @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) -> 'void' eclose(fp) + @param fp (C++: 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 @@ -8020,73 +7533,105 @@ enumerate_files(*args) -> 'PyObject *' 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 (C++: char *) + @param answer_size (C++: size_t) + @param path (C++: const char *) + @param fname (C++: const char *) + @param fv (C++: 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 + | 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 (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data 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 + fopenA(file) -> FILE * + @param file (C++: const char *) + @return: NULL 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 + fopenM(file) -> FILE * + @param file (C++: const char *) + @return: NULL 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 + fopenRB(file) -> FILE * + @param file (C++: const char *) + @return: NULL 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 + fopenRT(file) -> FILE * + @param file (C++: const char *) + @return: NULL 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 *) - @return: NULL if failure + fopenWB(file) -> FILE * + @param file (C++: const char *) + @return: NULL 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 *) - @return: NULL if failure + fopenWT(file) -> FILE * + @param file (C++: const char *) + @return: NULL if failure Help on class generic_linput_t in module ida_diskio: @@ -8105,6 +7650,9 @@ class generic_linput_t(builtins.object) | | read(self, *args) -> 'ssize_t' | read(self, off, buffer, nbytes) -> ssize_t + | @param off (C++: qoff64_t) + | @param buffer (C++: void *) + | @param nbytes (C++: size_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8127,47 +7675,37 @@ class generic_linput_t(builtins.object) 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: name of the resource to list (C++: const char *) - @param flags: Subdirectory modification flags bits (C++: int) - @return: number of directories appended to 'dirs' + get_ida_subdirs(subdir, flags=0) -> int + @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) -> 'linput_type_t' - get_linput_type(li) -> linput_type_t - - Get linput type. - - @param li (C++: linput_t *) + get_linput_type(li) -> linput_type_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 - @param csidl (C++: int) + get_special_folder(csidl) -> str + @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: @@ -8178,51 +7716,86 @@ get_user_idadir(*args) -> 'char const *' 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: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. + getsysfile(filename, subdir) -> str + @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) -> 'char const *' - idadir(subdir) -> char const * - - Get IDA directory (if subdir==NULL) or the specified subdirectory (see 'IDA subdirectories' ) - @param subdir (C++: const char *) + idadir(subdir) -> char const * + @param subdir (C++: const char *) + +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 + | 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 (C++: const ioports_t &) + | @param line (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data 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) + open_linput(file, remote) -> linput_t * + @param file (C++: const char *) + @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) + qlgetz(li, fpos) -> str + @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 (C++: ioports_t *) + @param device (C++: qstring *) + @param file (C++: const char *) + @param callback (C++: ioports_fallback_t *) === ida_diskio EPYDOC INJECTIONS === ida_diskio.IDA_SUBDIR_IDADIR_FIRST @@ -8243,103 +7816,86 @@ only existing directories will be present 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) - @return: success (currently always true) + add_entry(ord, ea, name, makecode, flags=0) -> bool + @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) -> '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 + get_entry(ord) -> ea_t + @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) -> '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) - @return: size of entry forwarder name or -1 + get_entry_forwarder(ord) -> str + @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) -> '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) - @return: size of entry name or -1 + get_entry_name(ord) -> str + @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) -> '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) - @return: ordinal number or 0. + get_entry_ordinal(idx) -> uval_t + @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) -> '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) - @return: success + rename_entry(ord, name, flags=0) -> bool + @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) -> '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) - @return: success + set_entry_forwarder(ord, name, flags=0) -> bool + @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 @@ -8363,54 +7919,44 @@ the name is given in UTF-8 (default) 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 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) + add_enum(idx, name, flag) -> enum_t + @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) -> '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 + add_enum_member(id, name, value, bmask=(bmask_t(-1))) -> int + @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) -> 'void' - del_enum(id) - - Delete an enum type. - - @param id (C++: enum_t) + del_enum(id) + @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) + del_enum_member(id, value, serial, bmask) -> bool + @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 +7969,7 @@ class enum_member_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> enum_member_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -8430,7 +7977,12 @@ class enum_member_visitor_t(builtins.object) | delete_enum_member_visitor_t(self) | | visit_enum_member(self, *args) -> 'int' + | Implements action to take when enum member is visited. + | | visit_enum_member(self, cid, value) -> int + | @param cid (C++: const_t) + | @param value (C++: uval_t) + | @return: nonzero to stop the iteration | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -8447,533 +7999,452 @@ class enum_member_visitor_t(builtins.object) 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 &) + for_all_enum_members(id, cv) -> int + @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 (C++: enum_t) + @param bmask (C++: bmask_t) + @param repeatable (C++: bool) Help on function get_bmask_name in module ida_enum: get_bmask_name(*args) -> 'qstring *' get_bmask_name(id, bmask) -> str + @param id (C++: enum_t) + @param bmask (C++: 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 *) + get_enum(name) -> enum_t + @param name (C++: const char *) 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) + get_enum_cmt(id, repeatable) -> str + @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 flags determining the representation of the enum. (currently they define the numeric base: octal, decimal, hex, bin) and signness. - @param id (C++: enum_t) + get_enum_flag(id) -> flags_t + @param id (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' + Get the index in the list of enums. + 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) + @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 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) + get_enum_member(id, value, serial, mask) -> const_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) + get_enum_member_bmask(id) -> bmask_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 *) + get_enum_member_by_name(name) -> const_t + @param name (C++: const char *) 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) + get_enum_member_cmt(id, repeatable) -> str + @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) + get_enum_member_enum(id) -> enum_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) + get_enum_member_name(id) -> str + @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) + get_enum_member_serial(cid) -> uchar + @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) + get_enum_member_value(id) -> uval_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) + get_enum_name(id) -> str + @param id (C++: 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) + get_enum_name2(id, flags=0) -> str + @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) -> '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) + get_enum_size(id) -> size_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) + get_enum_type_ordinal(id) -> int32 + @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) + get_enum_width(id) -> size_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 bitmask in the enum (bitfield) - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + get_first_bmask(id) -> bmask_t + @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) -> 'uval_t' get_first_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + @param id (C++: enum_t) + @param bmask (C++: 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 (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: 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 bitmask in the enum (bitfield) - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + get_last_bmask(id) -> bmask_t + @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) -> 'uval_t' get_last_enum_member(id, bmask=(bmask_t(-1))) -> uval_t + @param id (C++: enum_t) + @param bmask (C++: 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 (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: 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 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 + get_next_bmask(id, bmask) -> bmask_t + @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) -> 'uval_t' get_next_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: 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 (C++: uchar *) + @param first_cid (C++: 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 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 + get_prev_bmask(id, bmask) -> bmask_t + @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) -> 'uval_t' get_prev_enum_member(id, value, bmask=(bmask_t(-1))) -> uval_t + @param id (C++: enum_t) + @param value (C++: uval_t) + @param bmask (C++: 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 (C++: uchar *) + @param first_cid (C++: const_t) Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - getn_enum(n) -> 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) + getn_enum(idx) -> enum_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) - @param id (C++: enum_t) + is_bf(id) -> bool + @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) + is_enum_fromtil(id) -> bool + @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) + is_enum_hidden(id) -> bool + @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) + is_ghost_enum(id) -> bool + @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) + is_one_bit_mask(mask) -> bool + @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 (C++: enum_t) + @param bmask (C++: bmask_t) + @param cmt (C++: const char *) + @param repeatable (C++: 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 (C++: enum_t) + @param bmask (C++: bmask_t) + @param name (C++: const char *) 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) + set_enum_bf(id, bf) -> 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) + set_enum_cmt(id, cmt, repeatable) -> bool + @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) -> 'bool' - set_enum_flag(id, flag) -> bool - - Set data representation flags. - - @param id (C++: enum_t) - @param flag (C++: flags_t) + set_enum_flag(id, flag) -> bool + @param id (C++: enum_t) + @param flag (C++: flags_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) + set_enum_fromtil(id, fromtil) -> 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) + set_enum_ghost(id, ghost) -> 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) + set_enum_hidden(id, hidden) -> 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()' . - @param id (C++: enum_t) - @param idx (C++: size_t) + set_enum_idx(id, idx) -> bool + @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) + set_enum_member_cmt(id, cmt, repeatable) -> bool + @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) -> 'bool' - set_enum_member_name(id, name) -> bool - - Set name of enum member. - - @param id (C++: const_t) - @param name (C++: const char *) + set_enum_member_name(id, name) -> bool + @param id (C++: const_t) + @param name (C++: const char *) 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 *) + set_enum_name(id, name) -> bool + @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) -> 'void' - set_enum_type_ordinal(id, ord) - - Set corresponding type ordinal number. - - @param id (C++: enum_t) - @param ord (C++: int32) + set_enum_type_ordinal(id, ord) + @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) + set_enum_width(id, width) -> bool + @param id (C++: enum_t) + @param width (C++: int) === ida_enum EPYDOC INJECTIONS === ida_enum.DEFMASK @@ -9038,132 +8509,100 @@ class _IdcFunction(builtins.object) 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. + add_idc_class(name, super=None) -> idc_class_t * + @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 +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 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 defvals: default argument values (optional) + @param flags: IDC function flags. A combination of EXTFUN_XXX constants (optional) - @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 + @return: Boolean 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. + add_idc_gvar(name) -> idc_value_t + @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) -> 'qstring *' compile_idc_file(nonnul_line) -> str + 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) + compile_idc_snippet(func, text, resolver=None, only_safe_funcs=False) -> str + @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) + @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 + 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 &) + copy_idcv(dst, src) -> error_t + @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) -> 'bool' - 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 + create_idcv_ref(ref, v) -> bool + @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) -> '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 &) + deep_copy_idcv(dst, src) -> error_t + @param dst (C++: idc_value_t *) + @param src (C++: const idc_value_t &) Help on function del_idc_func in module ida_expr: @@ -9173,199 +8612,181 @@ del_idc_func(name) @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 *) - @return: error code, eOk on success + del_idcv_attr(obj, attr) -> error_t + @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) -> 'idc_value_t *' - 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" + deref_idcv(v, vref_flags) -> idc_value_t + @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) -> '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 *) + eval_expr(rv, where, line) -> str + @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 *) + @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) + eval_idc_expr(rv, where, line) -> str + @param rv (C++: idc_value_t *) + @param where (C++: ea_t) + 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) + exec_idc_script(result, path, func, args, argsnum) -> str + @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) + @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) + exec_system_script(file, complain_if_no_file=True) -> bool + @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) + @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() + find_idc_class(name) -> idc_class_t * + @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) -> 'qstring *' find_idc_func(prefix, n=0) -> str + @param prefix (C++: const char *) + @param n (C++: 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 + find_idc_gvar(name) -> idc_value_t + @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) -> 'char const *' first_idcv_attr(obj) -> char const * + @param obj (C++: const idc_value_t *) 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 *) + free_idcv(v) + @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 the current directory. - @param file: file name without full path (C++: const char *) - @return: NULL is file not found. otherwise returns pointer to buf + get_idc_filename(file) -> str + @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) -> '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) - @return: error code, eOk on success + get_idcv_attr(res, obj, attr, may_use_getattr=False) -> error_t + @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) -> 'qstring *' - 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 + get_idcv_class_name(obj) -> str + @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) -> '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) - @return: eOk if success + get_idcv_slice(res, v, i1, i2, flags=0) -> error_t + @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: @@ -9378,6 +8799,7 @@ class highlighter_cbs_t(builtins.object) | | __init__(self, *args) | __init__(self) -> highlighter_cbs_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -9392,9 +8814,13 @@ class highlighter_cbs_t(builtins.object) | | set_block_state(self, *args) -> 'void' | set_block_state(self, arg0) + | arg0: int32 | | set_style(self, *args) -> 'void' | set_style(self, arg0, arg1, arg2) + | arg0: int32 + | arg1: int32 + | arg2: enum syntax_highlight_style | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9417,7 +8843,7 @@ class idc_global_t(builtins.object) | | __init__(self, *args) | __init__(self) -> idc_global_t - | __init__(self, n) -> idc_global_t + | n: char const * | | __repr__ = _swig_repr(self) | @@ -9451,8 +8877,15 @@ class idc_value_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0) -> idc_value_t + | n: sval_t + | + | | __init__(self, r) -> idc_value_t + | r: idc_value_t const & + | + | | __init__(self, _str) -> idc_value_t + | _str: char const * | | __repr__ = _swig_repr(self) | @@ -9466,48 +8899,60 @@ class idc_value_t(builtins.object) | __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 - | qstr(self) -> qstring const & + | 'VT_STR' | | set_float(self, *args) -> 'void' | set_float(self, f) + | f: ushort const [6] | | set_int64(self, *args) -> 'void' | set_int64(self, v) + | v: int64 | | set_long(self, *args) -> 'void' | set_long(self, v) + | v: sval_t | | set_pvoid(self, *args) -> 'void' | set_pvoid(self, p) + | p: void * | | set_string(self, *args) -> 'void' | set_string(self, _str, len) + | _str: char const * + | len: size_t + | + | | set_string(self, _str) + | _str: char const * | | swap(self, *args) -> 'void' + | Set this = r and v = this. + | | swap(self, v) + | @param v (C++: idc_value_t &) | | u_str(self, *args) -> 'uchar const *' - | u_str(self) -> uchar const * + | 'VT_STR' | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -9556,10 +9001,11 @@ class idc_values_t(builtins.object) | | __getitem__(self, *args) -> 'idc_value_t const &' | __getitem__(self, i) -> idc_value_t + | i: size_t | | __init__(self, *args) | __init__(self) -> idc_values_t - | __init__(self, x) -> idc_values_t + | 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,12 +9017,15 @@ class idc_values_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -9600,7 +9049,12 @@ class idc_values_t(builtins.object) | | erase(self, *args) -> 'qvector< idc_value_t >::iterator' | erase(self, it) -> idc_value_t + | it: qvector< idc_value_t >::iterator + | + | | erase(self, first, last) -> idc_value_t + | first: qvector< idc_value_t >::iterator + | last: qvector< idc_value_t >::iterator | | extract(self, *args) -> 'idc_value_t *' | extract(self) -> idc_value_t @@ -9610,35 +9064,47 @@ class idc_values_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=idc_value_t()) + | x: idc_value_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: idc_value_t * + | len: size_t | | insert(self, *args) -> 'qvector< idc_value_t >::iterator' | insert(self, it, x) -> idc_value_t + | it: qvector< idc_value_t >::iterator + | x: idc_value_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'idc_value_t &' | push_back(self, x) - | push_back(self) -> idc_value_t + | x: idc_value_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: idc_value_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< idc_value_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -9658,120 +9124,111 @@ class idc_values_t(builtins.object) 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 *) + idcv_float(v) -> error_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 *) - @return: v = 0 if impossible to convert to int64 + idcv_int64(v) -> error_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 *) - @return: v = 0 if impossible to convert to long + idcv_long(v) -> error_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 + idcv_num(v) -> error_t + @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 *) - @return: always eOk + idcv_object(v, icls=None) -> error_t + @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) -> 'error_t' - idcv_string(v) -> error_t - - Convert IDC variable to a text string. - - @param v (C++: idc_value_t *) + idcv_string(v) -> error_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 (C++: const idc_value_t *) 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 *) + move_idcv(dst, src) -> error_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 (C++: const idc_value_t *) + @param attr (C++: const char *) 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 (C++: const idc_value_t *) + @param attr (C++: const char *) 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 &) - @param name (C++: const char *) - @param indent (C++: int) + print_idcv(v, name=None, indent=0) -> str + @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) -> 'bool' py_add_idc_func(name, fp_ptr, args, defvals, flags) -> bool + name: char const * + fp_ptr: size_t + args: char const * + defvals: idc_values_t const & + flags: int Help on function py_get_call_idc_func in module ida_expr: @@ -9782,87 +9239,85 @@ Help on function pyw_convert_defvals in module ida_expr: pyw_convert_defvals(*args) -> 'bool' pyw_convert_defvals(out, py_seq) -> bool + out: idc_values_t * + 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 + name: char const * + args: char const * + 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 + 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: 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) + set_header_path(path, add) -> bool + @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) + @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) - @return: error code, eOk on success + set_idcv_attr(obj, attr, value, may_use_setattr=False) -> error_t + @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) -> '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) - @return: eOk on success + set_idcv_slice(v, i1, i2, _in, flags=0) -> error_t + @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) + in: idc_value_t const & + @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) -> 'void' - swap_idcvs(v1, v2) - - Swap 2 variables. - - @param v1 (C++: idc_value_t *) - @param v2 (C++: idc_value_t *) + swap_idcvs(v1, v2) + @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: object to hold the exception object (C++: idc_value_t *) - @param desc: exception description (C++: const char *) - @return: eExecThrow + throw_idc_exception(r, desc) -> error_t + @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 @@ -9960,58 +9415,46 @@ See return value of 'idc_func_t' . 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) - @param type (C++: fixup_type_t) + calc_fixup_size(type) -> int + @param type (C++: fixup_type_t) + @retval: -1 - means error 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) + contains_fixups(ea, size) -> bool + @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) + del_fixup(source) + @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) + exists_fixup(source) -> bool + @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 *) - @return: id with FIXUP_CUSTOM bit set or 0 + find_custom_fixup(name) -> fixup_type_t + @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: @@ -10022,7 +9465,8 @@ class fixup_data_t(builtins.object) | | __init__(self, *args) | __init__(self) -> fixup_data_t - | __init__(self, type_, flags_=0) -> fixup_data_t + | type_: fixup_type_t + | flags_: uint32 | | __repr__ = _swig_repr(self) | @@ -10030,7 +9474,7 @@ class fixup_data_t(builtins.object) | 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) @@ -10039,31 +9483,41 @@ class fixup_data_t(builtins.object) | clr_unused(self) | | get(self, *args) -> 'bool' + | 'get_fixup()' + | | get(self, source) -> bool + | @param source (C++: ea_t) | | get_base(self, *args) -> 'ea_t' - | get_base(self) -> ea_t + | Get base of fixup.The target is calculated as 'get_base()' + off. + | 'get_base()' + off 'FIXUPF_REL' | | get_desc(self, *args) -> 'char const *' + | 'get_fixup_desc()' + | | get_desc(self, source) -> char const * + | @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_fixup_value()' + | | get_value(self, ea) -> uval_t + | @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 @@ -10072,34 +9526,49 @@ class fixup_data_t(builtins.object) | is_unused(self) -> bool | | patch_value(self, *args) -> 'bool' + | 'patch_fixup_value()' + | | patch_value(self, ea) -> bool + | @param ea (C++: ea_t) | | set(self, *args) -> 'void' + | 'set_fixup()' + | | set(self, source) + | @param source (C++: ea_t) | | set_base(self, *args) -> 'void' + | Set base of fixup. The target should be set before a call of this + | function. + | | set_base(self, new_base) + | @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 (C++: const segment_t *) | | 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_ (C++: fixup_type_t) | | set_type_and_flags(self, *args) -> 'void' | set_type_and_flags(self, type_, flags_=0) + | @param type_ (C++: fixup_type_t) + | @param flags_ (C++: 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: @@ -10158,9 +9627,6 @@ class fixup_info_t(builtins.object) 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 @@ -10169,61 +9635,45 @@ gen_fix_fixups(*args) -> 'void' 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) + gen_fix_fixups(_from, to, size) + @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) + get_fixup(fd, source) -> bool + @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 &) + get_fixup_desc(source, fd) -> str + @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) -> '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) + get_fixup_handler(type) -> fixup_handler_t const * + @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()' . @@ -10233,76 +9683,73 @@ get_fixup_value(*args) -> 'uval_t' 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) + get_fixup_value(ea, type) -> uval_t + @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) + @retval: operand - value Help on function get_fixups in module ida_fixup: get_fixups(*args) -> 'bool' get_fixups(out, ea, size) -> bool + @param out (C++: fixups_t *) + @param ea (C++: ea_t) + @param size (C++: 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) - @return: the next address with fixup information, or BADADDR + get_next_fixup_ea(ea) -> ea_t + @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) -> 'ea_t' - 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 + get_prev_fixup_ea(ea) -> ea_t + @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) -> 'bool' - is_fixup_custom(type) -> bool - - Is fixup processed by processor module? - - @param type (C++: fixup_type_t) + is_fixup_custom(type) -> bool + @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. '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 &) + patch_fixup_value(ea, fd) -> bool + @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 &) + @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: the fixup source address, i.e. the address modified by - the fixup (C++: ea_t) - @param fd: fixup data (C++: const fixup_data_t &) + set_fixup(source, fd) + @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 @@ -10346,9 +9793,6 @@ class qfile_t(builtins.object) | | __init__(self, *args) | __init__(self, rhs) -> qfile_t - | __init__(self, pycapsule=None) -> qfile_t - | - | | Closes the file | | __repr__ = _swig_repr(self) @@ -10364,8 +9808,6 @@ class qfile_t(builtins.object) | | 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 *' @@ -10376,14 +9818,10 @@ class qfile_t(builtins.object) | | gets(self, *args) -> 'PyObject *' | gets(self, size) -> PyObject * - | - | | Reads a line from the input file. Returns the read line or None | | open(self, *args) -> 'bool' | open(self, filename, mode) -> bool - | - | | Opens a file | | @param filename: the file name @@ -10392,35 +9830,26 @@ 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 | | puts(self, *args) -> 'int' | puts(self, str) -> int + | str: char const * | | read(self, *args) -> 'PyObject *' | read(self, size) -> PyObject * - | - | | Reads from the file. Returns the buffer or None | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * - | - | | Similar to read() but it respect the endianness | | seek(self, *args) -> 'int' | seek(self, offset, whence=SEEK_SET) -> int - | - | | Set input source position | @return: the new position (not 0 as fseek!) | @@ -10429,20 +9858,14 @@ 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 | | writebytes(self, *args) -> 'int' | writebytes(self, py_buf, big_endian) -> int - | - | | Similar to write() but it respect the endianness | | ---------------------------------------------------------------------- @@ -10450,14 +9873,14 @@ class qfile_t(builtins.object) | | from_capsule(*args) -> 'qfile_t *' | from_capsule(pycapsule) -> qfile_t + | pycapsule: PyObject * | | from_fp(*args) -> 'qfile_t *' | from_fp(fp) -> qfile_t + | fp: FILE * | | tmpfile(*args) -> 'qfile_t *' | tmpfile() -> qfile_t - | - | | A static method to construct an instance using a temporary file | | ---------------------------------------------------------------------- @@ -10479,11 +9902,13 @@ 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 + 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 + fp: FILE * Help on function qfile_t_tmpfile in module ida_fpro: @@ -10493,361 +9918,322 @@ qfile_t_tmpfile(*args) -> 'qfile_t *' 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) - @return: success + add_auto_stkpnt(pfn, ea, delta) -> bool + @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) -> '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) + add_frame(pfn, frsize, frregs, argsize) -> bool + @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) + @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 *) - @return: Register variable error codes + add_regvar(pfn, ea1, ea2, canon, user, cmt) -> int + @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) -> '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) - @return: success + add_user_stkpnt(ea, delta) -> bool + @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) -> '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) - @return: length of stack variable name or -1 + build_stkvar_name(pfn, v) -> str + @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) -> '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: 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 *) + build_stkvar_xrefs(out, pfn, mptr) + @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) -> '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) + calc_stkvar_struc_offset(pfn, insn, n) -> ea_t + @param pfn: pointer to function (can't be NULL!) (C++: func_t *) + @param insn: the instruction - an ida_ua.insn_t, or an address (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) -> '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) - @return: success + define_stkvar(pfn, name, off, flags, ti, nbytes) -> bool + @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) -> 'bool' - del_frame(pfn) -> bool - - Delete a function frame. - @param pfn: pointer to function structure (C++: func_t *) - @return: success + del_frame(pfn) -> bool + @param pfn: pointer to function structure (C++: func_t *) + @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 *) - @return: Register variable error codes + del_regvar(pfn, ea1, ea2, canon) -> int + @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) -> '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) - @return: success + del_stkpnt(pfn, ea) -> bool + @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) -> 'int' delete_unreferenced_stkvars(pfn) -> int + @param pfn (C++: 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 (C++: 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_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 + find_regvar(pfn, ea1, ea2, canon, user) -> regvar_t + @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 + + + find_regvar(pfn, ea, canon) -> regvar_t + @param pfn: function in question (C++: func_t *) + ea: ea_t + @param canon: name of a general 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) -> 'ea_t' - frame_off_args(pfn) -> ea_t - - Get starting address of arguments section. - - @param pfn (C++: const func_t *) + frame_off_args(pfn) -> ea_t + @param pfn (C++: const func_t *) 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 *) + frame_off_lvars(pfn) -> ea_t + @param pfn (C++: const func_t *) 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 *) + frame_off_retaddr(pfn) -> ea_t + @param pfn (C++: const func_t *) 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 *) + frame_off_savregs(pfn) -> ea_t + @param pfn (C++: const func_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: 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 + get_effective_spd(pfn, ea) -> sval_t + @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) -> '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 *) + get_frame(pfn) -> struc_t + @param pfn: pointer to function structure (C++: const func_t *) + + + get_frame(ea) -> struc_t * + 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) + get_frame_part(range, pfn, part) + @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) -> '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 *) + get_frame_retsize(pfn) -> int + @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) -> '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: pointer to function structure, may be NULL (C++: const - func_t *) - @return: size of frame in bytes or zero + get_frame_size(pfn) -> asize_t + @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) -> 'ea_t' - 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 + get_func_by_frame(frame_id) -> ea_t + @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) -> 'ea_t' get_min_spd_ea(pfn) -> ea_t + @param pfn (C++: 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. + get_sp_delta(pfn, ea) -> sval_t + @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) -> '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. + get_spd(pfn, ea) -> sval_t + @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) -> 'PyObject *' 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) @@ -10859,77 +10245,29 @@ get_stkvar(*args) -> 'PyObject *' 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) + has_regvar(pfn, ea) -> bool + @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) -> '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 + pfn: func_t const * + 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) + pfn: func_t const * + 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 @@ -10938,7 +10276,10 @@ recalc_spd(*args) -> 'bool' current instruction doesn't pass the execution flow to the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + recalc_spd(cur_ea) -> bool + @param cur_ea: linear address of the current instruction (C++: ea_t) + @retval: 1 - new stkpnt is added + @retval: 0 - nothing is changed Help on class regvar_t in module ida_frame: @@ -10980,43 +10321,66 @@ class regvar_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11045,77 +10409,67 @@ class regvar_t(ida_range.range_t) 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 - *) - @return: Register variable error codes + rename_regvar(pfn, v, user) -> int + @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) -> '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: 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 + set_frame_size(pfn, frsize, frregs, argsize) -> bool + @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) -> '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: 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 + set_purged(ea, nbytes, override_old_value) -> bool + @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) -> '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 *) - @return: Register variable error codes + set_regvar_cmt(pfn, v, cmt) -> int + @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) -> '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) + soff_to_fpoff(pfn, soff) -> sval_t + @param pfn (C++: func_t *) + @param soff (C++: uval_t) Help on class stkpnt_t in module ida_frame: @@ -11126,24 +10480,30 @@ class stkpnt_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: stkpnt_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: stkpnt_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: stkpnt_t const & | | __init__(self, *args) | __init__(self) -> stkpnt_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: stkpnt_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: stkpnt_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: stkpnt_t const & | | __repr__ = _swig_repr(self) | @@ -11152,6 +10512,7 @@ class stkpnt_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: stkpnt_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11185,24 +10546,30 @@ class stkpnts_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: stkpnts_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: stkpnts_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: stkpnts_t const & | | __init__(self, *args) | __init__(self) -> stkpnts_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: stkpnts_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: stkpnts_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: stkpnts_t const & | | __repr__ = _swig_repr(self) | @@ -11211,6 +10578,7 @@ class stkpnts_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: stkpnts_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11232,15 +10600,13 @@ class stkpnts_t(builtins.object) 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) - @return: success + update_fpd(pfn, fpd) -> bool + @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: @@ -11251,18 +10617,40 @@ class xreflist_entry_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __ge__(self, *args) -> 'bool' + | __ge__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __gt__(self, *args) -> 'bool' + | __gt__(self, r) -> bool + | r: xreflist_entry_t const & | | __init__(self, *args) | __init__(self) -> xreflist_entry_t | + | __le__(self, *args) -> 'bool' + | __le__(self, r) -> bool + | r: xreflist_entry_t const & + | + | __lt__(self, *args) -> 'bool' + | __lt__(self, r) -> bool + | r: xreflist_entry_t const & + | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 + | r: xreflist_entry_t const & + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -11298,13 +10686,15 @@ class xreflist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< xreflist_entry_t > const & | | __getitem__(self, *args) -> 'xreflist_entry_t const &' | __getitem__(self, i) -> xreflist_entry_t + | i: size_t | | __init__(self, *args) | __init__(self) -> xreflist_t - | __init__(self, x) -> xreflist_t + | 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,23 +10704,29 @@ class xreflist_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< xreflist_entry_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: xreflist_entry_t const & | | __swig_destroy__ = delete_xreflist_t(...) | delete_xreflist_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: xreflist_entry_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: xreflist_entry_t const & | | at(self, *args) -> 'xreflist_entry_t const &' | at(self, _idx) -> xreflist_entry_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -11354,52 +10750,74 @@ class xreflist_t(builtins.object) | | erase(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | erase(self, it) -> xreflist_entry_t + | it: qvector< xreflist_entry_t >::iterator + | + | | erase(self, first, last) -> xreflist_entry_t + | first: qvector< xreflist_entry_t >::iterator + | 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 + | x: xreflist_entry_t const & + | + | | find(self, x) -> xreflist_entry_t + | x: xreflist_entry_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=xreflist_entry_t()) + | x: xreflist_entry_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: xreflist_entry_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: xreflist_entry_t * + | len: size_t | | insert(self, *args) -> 'qvector< xreflist_entry_t >::iterator' | insert(self, it, x) -> xreflist_entry_t + | it: qvector< xreflist_entry_t >::iterator + | x: xreflist_entry_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'xreflist_entry_t &' | push_back(self, x) - | push_back(self) -> xreflist_entry_t + | x: xreflist_entry_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: xreflist_entry_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< xreflist_entry_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -11452,210 +10870,450 @@ variable size 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: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + add_func(ea1, ea2=BADADDR) -> bool + @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) -> '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: ptr to filled function structure (C++: func_t *) - @return: success + add_func_ex(pfn) -> bool + @param pfn: ptr to filled function structure (C++: func_t *) + @return: success Help on function add_regarg in module ida_funcs: add_regarg(*args) -> 'void' add_regarg(pfn, reg, tif, name) + @param pfn (C++: func_t *) + @param reg (C++: int) + @param tif (C++: const tinfo_t &) + @param name (C++: const char *) 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 *) - @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) + append_func_tail(pfn, ea1, ea2) -> bool + @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) -> '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) - @return: Library function codes + apply_idasgn_to(signame, ea, is_startup) -> int + @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) -> '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 *) - @return: true if successfully applied the signature + apply_startup_sig(ea, startup) -> bool + @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) -> 'asize_t' - 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 *) + calc_func_size(pfn) -> asize_t + @param pfn: ptr to function structure (C++: func_t *) 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 + calc_idasgn_state(n) -> int + @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 + calc_thunk_func_target(pfn) -> ea_t + @param pfn: pointer to function (may not be nullptr) (C++: func_t *) + @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) - @return: success + del_func(ea) -> bool + @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) -> '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 + del_idasgn(n) -> int + @param n: number of signature in the list (0.. get_idasgn_qty() -1) + (C++: int) + @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 &↗ + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_ea_array + | _data: unsigned-ea-like-numeric-type *↗ + | _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) + | i: size_t + | 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 + | dyn_ea_array_count_get(self) -> size_t + | + | data + | dyn_ea_array_data_get(self) -> unsigned-ea-like-numeric-type *↗ + | + | 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 + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_range_array + | _data: range_t * + | _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) + | i: size_t + | 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 + | dyn_range_array_count_get(self) -> size_t + | + | data + | dyn_range_array_data_get(self) -> range_t + | + | 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 + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regarg_array + | _data: regarg_t * + | _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) + | i: size_t + | 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 + | dyn_regarg_array_count_get(self) -> size_t + | + | data + | dyn_regarg_array_data_get(self) -> regarg_t + | + | 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 & + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_regvar_array + | _data: regvar_t * + | _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) + | i: size_t + | 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 + | dyn_regvar_array_count_get(self) -> size_t + | + | data + | dyn_regvar_array_data_get(self) -> regvar_t * + | + | 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 & + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_stkpnt_array + | _data: stkpnt_t * + | _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) + | i: size_t + | 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 + | dyn_stkpnt_array_count_get(self) -> size_t + | + | data + | dyn_stkpnt_array_data_get(self) -> stkpnt_t * + | + | 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. + + f_any(arg1, arg2) -> bool + arg1: flags_t + 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 \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 + find_func_bounds(nfn, flags) -> int + @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) -> 'bool' - func_contains(pfn, ea) -> bool - - Does the given function contain the given address? - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + func_contains(pfn, ea) -> bool + @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) + func_does_return(callee) -> bool + @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 + fii: func_item_iterator_t * + visited: eavec_t * + p_farref: bool * + out: insn_t * 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 + fii: func_item_iterator_t * + out: insn_t * 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 + fii: func_item_iterator_t * + testf: testf_t * + ud: void * 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 + fii: func_item_iterator_t * + testf: testf_t * + ud: void * Help on class func_item_iterator_t in module ida_funcs: @@ -11666,10 +11324,13 @@ 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 + | pfn: func_t * + | _ea: ea_t | | __next__(self, *args) -> 'bool' | __next__(self, func, ud) -> bool + | func: testf_t * + | ud: void * | | __repr__ = _swig_repr(self) | @@ -11684,9 +11345,13 @@ class func_item_iterator_t(builtins.object) | | decode_preceding_insn(self, *args) -> 'bool' | decode_preceding_insn(self, visited, p_farref, out) -> bool + | @param visited (C++: eavec_t *) + | @param p_farref (C++: bool *) + | @param out (C++: insn_t *) | | decode_prev_insn(self, *args) -> 'bool' | decode_prev_insn(self, out) -> bool + | @param out (C++: insn_t *) | | first(self, *args) -> 'bool' | first(self) -> bool @@ -11713,6 +11378,8 @@ class func_item_iterator_t(builtins.object) | | prev(self, *args) -> 'bool' | prev(self, func, ud) -> bool + | @param func (C++: testf_t *) + | @param ud (C++: void *) | | prev_addr(self, *args) -> 'bool' | prev_addr(self) -> bool @@ -11730,10 +11397,19 @@ class func_item_iterator_t(builtins.object) | prev_not_tail(self) -> bool | | set(self, *args) -> 'bool' + | Set a function range. if pfn == nullptr then a segment range will be + | set. + | | set(self, pfn, _ea=BADADDR) -> bool + | @param pfn (C++: func_t *) + | @param _ea (C++: ea_t) | | set_range(self, *args) -> 'bool' + | Set an arbitrary range. + | | set_range(self, ea1, ea2) -> bool + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11751,6 +11427,8 @@ Help on function func_parent_iterator_set in module ida_funcs: func_parent_iterator_set(*args) -> 'bool' func_parent_iterator_set(fpi, pfn) -> bool + fpi: func_parent_iterator_t * + pfn: func_t * Help on class func_parent_iterator_t in module ida_funcs: @@ -11761,7 +11439,7 @@ class func_parent_iterator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> func_parent_iterator_t - | __init__(self, _fnt) -> func_parent_iterator_t + | _fnt: func_t * | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -11787,9 +11465,11 @@ class func_parent_iterator_t(builtins.object) | | reset_fnt(self, *args) -> 'void' | reset_fnt(self, _fnt) + | @param _fnt (C++: func_t *) | | set(self, *args) -> 'bool' | set(self, _fnt) -> bool + | @param _fnt (C++: func_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11816,19 +11496,25 @@ 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) -> regarg_array + | __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 + | start: ea_t + | end: ea_t + | f: flags_t | | __repr__ = _swig_repr(self) | @@ -11836,16 +11522,16 @@ class func_t(ida_range.range_t) | delete_func_t(self) | | analyzed_sp(self, *args) -> 'bool' - | analyzed_sp(self) -> bool + | Has SP-analysis been performed? | | does_return(self, *args) -> 'bool' - | does_return(self) -> bool + | Does function return? | | 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? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -11878,10 +11564,10 @@ class func_t(ida_range.range_t) | func_t_pntqty_get(self) -> uint32 | | 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 @@ -11890,19 +11576,19 @@ class func_t(ida_range.range_t) | func_t_regargqty_get(self) -> int | | regargs - | __get_regargs__(self) -> regarg_array + | __get_regargs__(self) -> dyn_regarg_array | | regvarqty | func_t_regvarqty_get(self) -> int | | regvars - | __get_regvars__(self) -> regvar_array + | __get_regvars__(self) -> dyn_regvar_array | | tailqty | func_t_tailqty_get(self) -> int | | tails - | __get_tails__(self) -> range_array + | __get_tails__(self) -> dyn_range_array | | thisown | The membership flag @@ -11912,43 +11598,66 @@ class func_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -11978,16 +11687,22 @@ 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 + 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 + fti: func_tail_iterator_t * + pfn: func_t * + 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 + fti: func_tail_iterator_t * + ea: ea_t Help on class func_tail_iterator_t in module ida_funcs: @@ -11998,7 +11713,8 @@ 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 + | _pfn: func_t * + | ea: ea_t | | __next__(self, *args) -> 'bool' | __next__(self) -> bool @@ -12027,12 +11743,17 @@ class func_tail_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, _pfn, ea=BADADDR) -> bool + | @param _pfn (C++: func_t *) + | @param ea (C++: ea_t) | | set_ea(self, *args) -> 'bool' | set_ea(self, ea) -> bool + | @param ea (C++: ea_t) | | set_range(self, *args) -> 'bool' | set_range(self, ea1, ea2) -> bool + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -12049,169 +11770,140 @@ class func_tail_iterator_t(builtins.object) 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: 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. + get_fchunk(ea) -> func_t + @param ea: any address in a function chunk (C++: ea_t) + @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: 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'. + get_fchunk_num(ea) -> int + @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) -> '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 + ea: ea_t + 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. + get_func(ea) -> func_t + @param ea: any address in a function (C++: ea_t) + @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 - @param pfn (C++: const func_t *) + get_func_bitness(pfn) -> int + @param pfn (C++: const func_t *) + @retval: 0 - 16 + @retval: 1 - 32 + @retval: 2 - 64 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 *) + get_func_bits(pfn) -> int + @param pfn (C++: const func_t *) 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 *) + get_func_bytes(pfn) -> int + @param pfn (C++: const func_t *) 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'. - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + get_func_chunknum(pfn, ea) -> int + @param pfn (C++: func_t *) + @param ea (C++: ea_t) + @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 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. + get_func_cmt(pfn, repeatable) -> str + @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) -> 'qstring *' - get_func_name(ea) -> str - - Get function name. - @param ea: any address in the function (C++: ea_t) - @return: length of the function name + get_func_name(ea) -> str + @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) -> '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'. + get_func_num(ea) -> int + @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) -> '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 *) - @return: end address of the last function range (BADADDR-error) + get_func_ranges(ranges, pfn) -> ea_t + @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) -> 'PyObject *' get_idasgn_desc(n) -> PyObject * - - Get information about a signature in the list. It returns: (name of signature, names of optional libraries) @@ -12224,8 +11916,6 @@ 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 information about a signature in the list. It returns: (name of signature, names of optional libraries, number of matches) @@ -12235,173 +11925,140 @@ get_idasgn_desc_with_matches(*args) -> 'PyObject *' 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: short name of a signature (C++: const char *) - @return: size of signature description or -1 + get_idasgn_title(name) -> str + @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) -> '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 + get_next_fchunk(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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 + get_next_func(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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 (C++: func_t *) + @param ea (C++: 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 + get_prev_fchunk(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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 + get_prev_func(ea) -> func_t + @param ea: any address in the program (C++: ea_t) + @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 (C++: func_t *) + @param ea (C++: 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. + getn_fchunk(n) -> func_t + @param n: number of function chunk, is in range 0.. get_fchunk_qty() + -1 (C++: int) + @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. + getn_func(n) -> func_t + @param n: number of function, is in range 0.. get_func_qty() -1 (C++: + size_t) + @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 *) + is_finally_visible_func(pfn) -> bool + @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 *) + is_func_entry(pfn) -> bool + @param pfn (C++: const func_t *) 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 *) + is_func_locked(pfn) -> bool + @param pfn (C++: const func_t *) 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 *) + is_func_tail(pfn) -> bool + @param pfn (C++: const func_t *) 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) + is_same_func(ea1, ea2) -> bool + @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 *) + is_visible_func(pfn) -> bool + @param pfn (C++: func_t *) Help on class lock_func in module ida_funcs: @@ -12412,6 +12069,7 @@ class lock_func(builtins.object) | | __init__(self, *args) | __init__(self, _pfn) -> lock_func + | _pfn: func_t const * | | __repr__ = _swig_repr(self) | @@ -12433,152 +12091,55 @@ class lock_func(builtins.object) 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 *) - @param lock (C++: bool) + lock_func_range(pfn, lock) + @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) -> '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 + plan_to_apply_idasgn(fname) -> int + @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 read_regargs in module ida_funcs: read_regargs(*args) -> 'void' read_regargs(pfn) + @param pfn (C++: 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: 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) + reanalyze_function(pfn, ea1=0, ea2=BADADDR, analyze_parents=False) + @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) -> '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_array in module ida_funcs: - -class 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 - | - | __init__(self, *args) - | __init__(self, _data, _count) -> regarg_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_regarg_array(...) - | delete_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 - | regarg_array_count_get(self) -> size_t - | - | data - | regarg_array_data_get(self) -> regarg_t - | - | thisown - | The membership flag + reanalyze_noret_flag(ea) -> bool + @param ea (C++: ea_t) Help on class regarg_t in module ida_funcs: @@ -12616,227 +12177,117 @@ class regarg_t(builtins.object) | 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 - 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 *) - @param tail_ea (C++: ea_t) + remove_func_tail(pfn, tail_ea) -> bool + @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) -> '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) + set_func_cmt(pfn, cmt, repeatable) -> bool + @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) -> '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) - @return: success + set_func_end(ea, newend) -> bool + @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) -> 'int' - 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 + set_func_name_if_jumpfunc(pfn, oldname) -> int + @param pfn: pointer to function (may be nullptr) (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 nullptr. (C++: const char + *) + @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) - @return: Function move result codes + set_func_start(ea, newstart) -> int + @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) -> '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 + set_noret_insn(insn_ea, noret) -> 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 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) + set_tail_owner(fnt, func_start) -> bool + @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) -> '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 + set_visible_func(pfn, visible) + @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: any address in the program (C++: ea_t) - @return: Library function codes + try_to_add_libfunc(ea) -> int + @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) -> '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: ptr to function structure (C++: func_t *) - @return: success + update_func(pfn) -> bool + @param pfn: ptr to function structure (C++: func_t *) + @return: success === ida_funcs EPYDOC INJECTIONS === ida_funcs.FIND_FUNC_DEFINE @@ -13086,7 +12537,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) | @@ -13109,112 +12560,95 @@ class FlowChart(builtins.object) 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()' . - @param fname (C++: const char *) - @return: error code from os, 0 if ok + display_gdl(fname) -> int + @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) -> '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 + gen_complex_call_chart(filename, wait, title, ea1, ea2, flags, recursion_depth=-1) -> bool + @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) -> '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 + gen_flow_graph(filename, title, pfn, ea1, ea2, gflags) -> bool + @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) -> 'void' - gen_gdl(g, fname) - - Create GDL file for graph. - - @param g (C++: const gdl_graph_t *) - @param fname (C++: const char *) + gen_gdl(g, fname) + @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) -> '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 + gen_simple_call_chart(filename, wait, title, gflags) -> bool + @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) -> 'bool' - is_noret_block(btype) -> bool - - Does this block never return? - - @param btype (C++: fc_block_type_t) + is_noret_block(btype) -> bool + @param btype (C++: 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) + is_ret_block(btype) -> bool + @param btype (C++: fc_block_type_t) Help on class node_iterator in module ida_gdl: @@ -13225,12 +12659,16 @@ class node_iterator(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool + | n: node_iterator const & | | __init__(self, *args) | __init__(self, _g, n) -> node_iterator + | _g: gdl_graph_t const * + | n: int | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool + | n: node_iterator const & | | __ref__(self, *args) -> 'int' | __ref__(self) -> int @@ -13288,43 +12726,66 @@ class qbasic_block_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -13359,10 +12820,15 @@ class qflow_chart_t(builtins.object) | | __getitem__(self, *args) -> 'qbasic_block_t *' | __getitem__(self, n) -> qbasic_block_t + | n: int | | __init__(self, *args) | __init__(self) -> qflow_chart_t - | __init__(self, _title, _pfn, _ea1, _ea2, _flags) -> qflow_chart_t + | _title: char const * + | _pfn: func_t * + | _ea1: ea_t + | _ea2: ea_t + | _flags: int | | __repr__ = _swig_repr(self) | @@ -13371,37 +12837,61 @@ class qflow_chart_t(builtins.object) | | append_to_flowchart(self, *args) -> 'void' | append_to_flowchart(self, ea1, ea2) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) | | calc_block_type(self, *args) -> 'fc_block_type_t' | calc_block_type(self, blknum) -> fc_block_type_t + | @param blknum (C++: size_t) | | create(self, *args) -> 'void' | create(self, _title, _pfn, _ea1, _ea2, _flags) + | @param _title (C++: const char *) + | @param _pfn (C++: func_t *) + | @param _ea1 (C++: ea_t) + | @param _ea2 (C++: ea_t) + | @param _flags (C++: int) + | + | | create(self, _title, ranges, _flags) + | @param _title (C++: const char *) + | ranges: rangevec_t const & + | @param _flags (C++: int) | | get_node_label(self, *args) -> 'char *' | get_node_label(self, arg2, arg3, arg4) -> char * + | arg2: char * + | arg3: int + | arg4: int | | is_noret_block(self, *args) -> 'bool' | is_noret_block(self, blknum) -> bool + | @param blknum (C++: size_t) | | is_ret_block(self, *args) -> 'bool' | is_ret_block(self, blknum) -> bool + | @param blknum (C++: size_t) | | npred(self, *args) -> 'int' | npred(self, node) -> int + | @param node (C++: int) | | nsucc(self, *args) -> 'int' | nsucc(self, node) -> int + | @param node (C++: int) | | pred(self, *args) -> 'int' | pred(self, node, i) -> int + | @param node (C++: int) + | @param i (C++: int) | | print_names(self, *args) -> 'bool' | print_names(self) -> bool | | print_node_attributes(self, *args) -> 'void' | print_node_attributes(self, arg2, arg3) + | arg2: FILE * + | arg3: int | | refresh(self, *args) -> 'void' | refresh(self) @@ -13411,6 +12901,8 @@ class qflow_chart_t(builtins.object) | | succ(self, *args) -> 'int' | succ(self, node, i) -> int + | @param node (C++: int) + | @param i (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13506,6 +12998,11 @@ ida_gdl.FC_APPND multirange flowchart (set by append_to_flowchart) """ +ida_gdl.FC_CALL_ENDS +""" +call instructions terminate basic blocks +""" + ida_gdl.FC_CHKBREAK """ build_qflow_chart() may be aborted by user @@ -13519,9 +13016,9 @@ targets of those outgoing jumps will be present in the flow chart under the form of one-instruction blocks """ -ida_gdl.FC_PREDS +ida_gdl.FC_NOPREDS """ -compute predecessor lists +do not compute predecessor lists """ ida_gdl.FC_PRINT @@ -13694,37 +13191,81 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, view, ve) + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, view, *args) + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, view, *args) + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, view, ve) + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, view) + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, view, key, state) + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, view, now, was) + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, view, ve) + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, view, rt) + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from ida_kernwin.CustomIDAMemo: @@ -13748,7 +13289,10 @@ class GraphViewer(ida_kernwin.CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_kernwin.View_Hooks: @@ -13771,14 +13315,20 @@ class TPointDouble(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: TPointDouble const & | | __init__(self, *args) | __init__(self) -> TPointDouble - | __init__(self, a, b) -> TPointDouble + | a: double + | b: double + | + | | __init__(self, r) -> TPointDouble + | r: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: TPointDouble const & | | __repr__ = _swig_repr(self) | @@ -13787,12 +13337,14 @@ class TPointDouble(builtins.object) | | add(self, *args) -> 'void' | add(self, r) + | @param r (C++: const TPointDouble &) | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'void' | sub(self, r) + | @param r (C++: const TPointDouble &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -13820,106 +13372,88 @@ class TPointDouble(builtins.object) 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) + calc_dist(p, q) -> double + @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) + clr_node_info(gid, node, flags) + @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) -> 'mutable_graph_t *' - create_disasm_graph(ea) -> mutable_graph_t - create_disasm_graph(ranges) -> mutable_graph_t - - Create a graph for the function that contains 'ea'. + create_disasm_graph(ea) -> mutable_graph_t + @param ea (C++: ea_t) - @param ea (C++: ea_t) + + create_disasm_graph(ranges) -> mutable_graph_t + 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 *) - @return: new viewer + create_graph_viewer(title, id, callback, ud, title_height, parent=None) -> graph_viewer_t * + @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) -> 'mutable_graph_t *' - create_mutable_graph(id) -> mutable_graph_t - - Create a new empty graph with given id. - - @param id (C++: uval_t) + create_mutable_graph(id) -> mutable_graph_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) - - @param node (C++: int) - @param lnnum (C++: int) + create_user_graph_place(node, lnnum) -> user_graph_place_t + @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) + del_node_info(gid, 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.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 *) + delete_mutable_graph(g) + @param g (C++: mutable_graph_t *) Help on class edge_info_t in module ida_graph: @@ -14005,14 +13539,20 @@ class edge_layout_point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: edge_layout_point_t const & | | __init__(self, *args) | __init__(self) -> edge_layout_point_t - | __init__(self, r) -> edge_layout_point_t + | r: edge_layout_point_t const & + | + | | __init__(self, _e, _pidx) -> edge_layout_point_t + | _e: edge_t const & + | _pidx: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: edge_layout_point_t const & | | __repr__ = _swig_repr(self) | @@ -14021,6 +13561,7 @@ class edge_layout_point_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | @param r (C++: const edge_layout_point_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14057,6 +13598,7 @@ class edge_segment_t(builtins.object) | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: edge_segment_t const & | | __repr__ = _swig_repr(self) | @@ -14102,16 +13644,20 @@ class edge_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, y) -> bool + | y: edge_t const & | | __init__(self, *args) | __init__(self) -> edge_t - | __init__(self, x, y) -> edge_t + | x: int + | y: int | | __lt__(self, *args) -> 'bool' | __lt__(self, y) -> bool + | y: edge_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, y) -> bool + | y: edge_t const & | | __repr__ = _swig_repr(self) | @@ -14144,37 +13690,29 @@ class edge_t(builtins.object) 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 *) + get_graph_viewer(parent) -> graph_viewer_t * + @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) - @return: success + get_node_info(out, gid, node) -> bool + @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) -> 'mutable_graph_t *' - get_viewer_graph(gv) -> mutable_graph_t - - Get graph object for given custom graph viewer. - - @param gv (C++: graph_viewer_t *) + get_viewer_graph(gv) -> mutable_graph_t + @param gv (C++: graph_viewer_t *) Help on class graph_item_t in module ida_graph: @@ -14238,6 +13776,7 @@ class graph_node_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_node_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14245,19 +13784,32 @@ class graph_node_visitor_t(builtins.object) | delete_graph_node_visitor_t(self) | | is_forbidden_edge(self, *args) -> 'bool' + | Should the edge between 'n' and 'm' be ignored? + | | is_forbidden_edge(self, arg0, arg1) -> bool + | arg0: int + | arg1: int | | is_visited(self, *args) -> 'bool' + | Have we already visited the given node? + | | is_visited(self, n) -> bool + | @param n (C++: int) | | reinit(self, *args) -> 'void' - | reinit(self) + | Reset visited nodes. | | set_visited(self, *args) -> 'void' + | Mark node as visited. + | | set_visited(self, n) + | @param n (C++: int) | | visit_node(self, *args) -> 'int' + | Implements action to take when a node is visited. + | | visit_node(self, arg0) -> int + | arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14282,6 +13834,7 @@ class graph_path_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_path_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14290,9 +13843,11 @@ class graph_path_visitor_t(builtins.object) | | walk_backward(self, *args) -> 'int' | walk_backward(self, arg0) -> int + | arg0: int | | walk_forward(self, *args) -> 'int' | walk_forward(self, arg0) -> int + | arg0: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14323,6 +13878,7 @@ class graph_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> graph_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -14331,9 +13887,13 @@ class graph_visitor_t(builtins.object) | | visit_edge(self, *args) -> 'int' | visit_edge(self, arg2, arg3) -> int + | arg2: edge_t + | arg3: edge_info_t * | | visit_node(self, *args) -> 'int' | visit_node(self, arg2, arg3) -> int + | arg2: int + | arg3: rect_t & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14389,14 +13949,20 @@ class interval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: interval_t const & | | __init__(self, *args) | __init__(self) -> interval_t - | __init__(self, y0, y1) -> interval_t + | y0: int + | y1: int + | + | | __init__(self, s) -> interval_t + | s: edge_segment_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: interval_t const & | | __repr__ = _swig_repr(self) | @@ -14405,21 +13971,25 @@ class interval_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, x) -> bool + | @param x (C++: int) | | empty(self, *args) -> 'bool' | empty(self) -> bool | | intersect(self, *args) -> 'void' | intersect(self, r) + | @param r (C++: const interval_t &) | | length(self, *args) -> 'int' | length(self) -> int | | make_union(self, *args) -> 'void' | make_union(self, r) + | @param r (C++: const interval_t &) | | move_by(self, *args) -> 'void' | move_by(self, shift) + | @param shift (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14463,9 +14033,12 @@ class mutable_graph_t(builtins.object) | | calc_group_ea(self, *args) -> 'ea_t' | calc_group_ea(self, arg0) -> ea_t + | arg0: intvec_t const & | | change_group_visibility(self, *args) -> 'bool' | change_group_visibility(self, group, expand) -> bool + | @param group (C++: int) + | @param expand (C++: bool) | | clear(self, *args) -> 'void' | clear(self) @@ -14475,88 +14048,115 @@ class mutable_graph_t(builtins.object) | | create_group(self, *args) -> 'int' | create_group(self, nodes) -> int + | @param nodes (C++: const intvec_t &) | | del_custom_layout(self, *args) -> 'void' | del_custom_layout(self) | | delete_group(self, *args) -> 'bool' | delete_group(self, group) -> bool + | @param group (C++: int) | | empty(self, *args) -> 'bool' | empty(self) -> bool | | exists(self, *args) -> 'bool' | exists(self, node) -> bool + | @param node (C++: int) | | 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 + | @param e (C++: edge_t) | | get_first_subgraph_node(self, *args) -> 'int' | get_first_subgraph_node(self, group) -> int + | @param group (C++: 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 (C++: int) + | @param current (C++: int) | | get_node_group(self, *args) -> 'int' | get_node_group(self, node) -> int + | @param node (C++: int) | | get_node_representative(self, *args) -> 'int' | get_node_representative(self, node) -> int + | @param node (C++: int) | | is_collapsed_node(self, *args) -> 'bool' | is_collapsed_node(self, node) -> bool + | @param node (C++: int) | | is_deleted_node(self, *args) -> 'bool' | is_deleted_node(self, node) -> bool + | @param node (C++: int) | | is_displayable_node(self, *args) -> 'bool' | is_displayable_node(self, node) -> bool + | @param node (C++: int) | | is_dot_node(self, *args) -> 'bool' | is_dot_node(self, node) -> bool + | @param node (C++: int) | | is_group_node(self, *args) -> 'bool' | is_group_node(self, node) -> bool + | @param node (C++: int) | | is_simple_node(self, *args) -> 'bool' | is_simple_node(self, node) -> bool + | @param node (C++: int) | | is_subgraph_node(self, *args) -> 'bool' | is_subgraph_node(self, node) -> bool + | @param node (C++: int) | | is_uncollapsed_node(self, *args) -> 'bool' | is_uncollapsed_node(self, node) -> bool + | @param node (C++: int) | | is_user_graph(self, *args) -> 'bool' | is_user_graph(self) -> bool | | is_visible_node(self, *args) -> 'bool' | is_visible_node(self, node) -> bool + | @param node (C++: int) | | node_qty(self, *args) -> 'int' | node_qty(self) -> int | | npred(self, *args) -> 'int' | npred(self, b) -> int + | @param b (C++: int) | | nrect(self, *args) -> 'rect_t &' | nrect(self, n) -> rect_t + | @param n (C++: int) + | + | | nrect(self, n) -> rect_t + | @param n (C++: int) | | nsucc(self, *args) -> 'int' | nsucc(self, b) -> int + | @param b (C++: int) | | pred(self, *args) -> 'int' | pred(self, b, i) -> int + | @param b (C++: int) + | @param i (C++: int) | | predset(self, *args) -> 'intvec_t const &' | predset(self, b) -> intvec_t const & + | @param b (C++: int) | | reset(self, *args) -> 'void' | reset(self) @@ -14566,24 +14166,32 @@ class mutable_graph_t(builtins.object) | | set_deleted_node(self, *args) -> 'void' | set_deleted_node(self, node) + | @param node (C++: int) | | set_edge(self, *args) -> 'bool' | set_edge(self, e, ei) -> bool + | @param e (C++: edge_t) + | @param ei (C++: const edge_info_t *) | | set_graph_groups(self, *args) -> 'void' | set_graph_groups(self) | | set_node_group(self, *args) -> 'void' | set_node_group(self, node, group) + | @param node (C++: int) + | @param group (C++: int) | | size(self, *args) -> 'int' | size(self) -> int | | succ(self, *args) -> 'int' | succ(self, b, i) -> int + | @param b (C++: int) + | @param i (C++: int) | | succset(self, *args) -> 'intvec_t const &' | succset(self, b) -> intvec_t const & + | @param b (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14640,22 +14248,23 @@ class node_info_t(builtins.object) | 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: @@ -14693,13 +14302,15 @@ class node_layout_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< rect_t > const & | | __getitem__(self, *args) -> 'rect_t const &' | __getitem__(self, i) -> rect_t + | i: size_t | | __init__(self, *args) | __init__(self) -> node_layout_t - | __init__(self, x) -> node_layout_t + | x: qvector< rect_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -14709,23 +14320,29 @@ class node_layout_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< rect_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: rect_t const & | | __swig_destroy__ = delete_node_layout_t(...) | delete_node_layout_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: rect_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: rect_t const & | | at(self, *args) -> 'rect_t const &' | at(self, _idx) -> rect_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -14749,52 +14366,74 @@ class node_layout_t(builtins.object) | | erase(self, *args) -> 'qvector< rect_t >::iterator' | erase(self, it) -> rect_t + | it: qvector< rect_t >::iterator + | + | | erase(self, first, last) -> rect_t + | first: qvector< rect_t >::iterator + | 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 + | x: rect_t const & + | + | | find(self, x) -> rect_t + | x: rect_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rect_t()) + | x: rect_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: rect_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: rect_t * + | len: size_t | | insert(self, *args) -> 'qvector< rect_t >::iterator' | insert(self, it, x) -> rect_t + | it: qvector< rect_t >::iterator + | x: rect_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rect_t &' | push_back(self, x) - | push_back(self) -> rect_t + | x: rect_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: rect_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< rect_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -14836,12 +14475,16 @@ class node_ordering_t(builtins.object) | | node(self, *args) -> 'int' | node(self, _order) -> int + | @param _order (C++: size_t) | | resize(self, *args) -> 'void' | resize(self, n) + | @param n (C++: int) | | set(self, *args) -> 'void' | set(self, _node, num) + | @param _node (C++: int) + | @param num (C++: int) | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -14867,13 +14510,16 @@ class point_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: point_t const & | | __init__(self, *args) | __init__(self) -> point_t - | __init__(self, _x, _y) -> point_t + | _x: int + | _y: int | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: point_t const & | | __repr__ = _swig_repr(self) | @@ -14882,12 +14528,14 @@ class point_t(builtins.object) | | add(self, *args) -> 'point_t &' | add(self, r) -> point_t + | @param r (C++: const point_t &) | | negate(self, *args) -> 'void' | negate(self) | | sub(self, *args) -> 'point_t &' | sub(self, r) -> point_t + | @param r (C++: const point_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -14943,9 +14591,11 @@ class pointseq_t(pointvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -14955,18 +14605,24 @@ class pointseq_t(pointvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< point_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: point_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -14990,52 +14646,74 @@ class pointseq_t(pointvec_t) | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t + | it: qvector< point_t >::iterator + | + | | erase(self, first, last) -> point_t + | first: qvector< point_t >::iterator + | 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 + | x: point_t const & + | + | | find(self, x) -> point_t + | x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) + | x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: point_t * + | len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t + | it: qvector< point_t >::iterator + | x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) - | push_back(self) -> point_t + | x: point_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: point_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15063,13 +14741,15 @@ class pointvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< point_t > const & | | __getitem__(self, *args) -> 'point_t const &' | __getitem__(self, i) -> point_t + | i: size_t | | __init__(self, *args) | __init__(self) -> pointvec_t - | __init__(self, x) -> pointvec_t + | x: qvector< point_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15079,23 +14759,29 @@ class pointvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< point_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: point_t const & | | __swig_destroy__ = delete_pointvec_t(...) | delete_pointvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: point_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: point_t const & | | at(self, *args) -> 'point_t const &' | at(self, _idx) -> point_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15119,52 +14805,74 @@ class pointvec_t(builtins.object) | | erase(self, *args) -> 'qvector< point_t >::iterator' | erase(self, it) -> point_t + | it: qvector< point_t >::iterator + | + | | erase(self, first, last) -> point_t + | first: qvector< point_t >::iterator + | 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 + | x: point_t const & + | + | | find(self, x) -> point_t + | x: point_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=point_t()) + | x: point_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: point_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: point_t * + | len: size_t | | insert(self, *args) -> 'qvector< point_t >::iterator' | insert(self, it, x) -> point_t + | it: qvector< point_t >::iterator + | x: point_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'point_t &' | push_back(self, x) - | push_back(self) -> point_t + | x: point_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: point_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< point_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15190,16 +14898,20 @@ Help on function pyg_close in module ida_graph: pyg_close(*args) -> 'void' pyg_close(_self) + self: PyObject * Help on function pyg_select_node in module ida_graph: pyg_select_node(*args) -> 'void' pyg_select_node(_self, nid) + self: PyObject * + nid: int Help on function pyg_show in module ida_graph: pyg_show(*args) -> 'bool' pyg_show(_self) -> bool + self: PyObject * Help on class rect_t in module ida_graph: @@ -15210,14 +14922,23 @@ class rect_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: rect_t const & | | __init__(self, *args) | __init__(self) -> rect_t - | __init__(self, l, t, r, b) -> rect_t + | l: int + | t: int + | r: int + | b: int + | + | | __init__(self, p0, p1) -> rect_t + | p0: point_t const & + | p1: point_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: rect_t const & | | __repr__ = _swig_repr(self) | @@ -15235,30 +14956,37 @@ class rect_t(builtins.object) | | contains(self, *args) -> 'bool' | contains(self, p) -> bool + | @param p (C++: const point_t &) | | empty(self, *args) -> 'bool' | empty(self) -> bool | | grow(self, *args) -> 'void' | grow(self, delta) + | @param delta (C++: int) | | height(self, *args) -> 'int' | height(self) -> int | | intersect(self, *args) -> 'void' | intersect(self, r) + | @param r (C++: const rect_t &) | | is_intersection_empty(self, *args) -> 'bool' | is_intersection_empty(self, r) -> bool + | @param r (C++: const rect_t &) | | make_union(self, *args) -> 'void' | make_union(self, r) + | @param r (C++: const rect_t &) | | move_by(self, *args) -> 'void' | move_by(self, p) + | @param p (C++: const point_t &) | | move_to(self, *args) -> 'void' | move_to(self, p) + | @param p (C++: const point_t &) | | topleft(self, *args) -> 'point_t' | topleft(self) -> point_t @@ -15298,13 +15026,10 @@ class rect_t(builtins.object) 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 *) + refresh_viewer(gv) + @param gv (C++: graph_viewer_t *) Help on class row_info_t in module ida_graph: @@ -15354,13 +15079,15 @@ class screen_graph_selection_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t + | i: size_t | | __init__(self, *args) | __init__(self) -> screen_graph_selection_base_t - | __init__(self, x) -> screen_graph_selection_base_t + | 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. @@ -15370,23 +15097,29 @@ class screen_graph_selection_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15410,52 +15143,74 @@ class screen_graph_selection_base_t(builtins.object) | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | + | | erase(self, first, last) -> selection_item_t + | first: qvector< selection_item_t >::iterator + | 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 + | x: selection_item_t const & + | + | | find(self, x) -> selection_item_t + | x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) + | x: selection_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: selection_item_t * + | len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) - | push_back(self) -> selection_item_t + | x: selection_item_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: selection_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15499,24 +15254,33 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | add(self, *args) -> 'void' | add(self, s) + | @param s (C++: const screen_graph_selection_t &) | | add_node(self, *args) -> 'void' | add_node(self, node) + | @param node (C++: int) | | add_point(self, *args) -> 'void' | add_point(self, e, idx) + | @param e (C++: edge_t) + | @param idx (C++: int) | | del_node(self, *args) -> 'void' | del_node(self, node) + | @param node (C++: int) | | del_point(self, *args) -> 'void' | del_point(self, e, idx) + | @param e (C++: edge_t) + | @param idx (C++: int) | | has(self, *args) -> 'bool' | has(self, item) -> bool + | @param item (C++: const selection_item_t &) | | items_count(self, *args) -> 'size_t' | items_count(self, look_for_nodes) -> size_t + | @param look_for_nodes (C++: bool) | | nodes_count(self, *args) -> 'size_t' | nodes_count(self) -> size_t @@ -15526,6 +15290,7 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | sub(self, *args) -> 'void' | sub(self, s) + | @param s (C++: const screen_graph_selection_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15538,9 +15303,11 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __getitem__(self, *args) -> 'selection_item_t const &' | __getitem__(self, i) -> selection_item_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -15550,18 +15317,24 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< selection_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: selection_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: selection_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: selection_item_t const & | | at(self, *args) -> 'selection_item_t const &' | at(self, _idx) -> selection_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -15585,49 +15358,70 @@ class screen_graph_selection_t(screen_graph_selection_base_t) | | erase(self, *args) -> 'qvector< selection_item_t >::iterator' | erase(self, it) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | + | | erase(self, first, last) -> selection_item_t + | first: qvector< selection_item_t >::iterator + | 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 + | x: selection_item_t const & + | + | | find(self, x) -> selection_item_t + | x: selection_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=selection_item_t()) + | x: selection_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: selection_item_t * + | len: size_t | | insert(self, *args) -> 'qvector< selection_item_t >::iterator' | insert(self, it, x) -> selection_item_t + | it: qvector< selection_item_t >::iterator + | x: selection_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'selection_item_t &' | push_back(self, x) - | push_back(self) -> selection_item_t + | x: selection_item_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: selection_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< selection_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -15655,18 +15449,28 @@ class selection_item_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: selection_item_t const & | | __init__(self, *args) | __init__(self) -> selection_item_t - | __init__(self, n) -> selection_item_t + | n: int + | + | | __init__(self, _elp) -> selection_item_t + | _elp: edge_layout_point_t & + | + | | __init__(self, e, idx) -> selection_item_t + | e: edge_t + | idx: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: selection_item_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: selection_item_t const & | | __repr__ = _swig_repr(self) | @@ -15675,6 +15479,7 @@ class selection_item_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | @param r (C++: const selection_item_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -15705,28 +15510,23 @@ class selection_item_t(builtins.object) 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) + set_node_info(gid, node, ni, flags) + @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) -> '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 *) + set_viewer_graph(gv, g) + @param gv (C++: graph_viewer_t *) + @param g (C++: mutable_graph_t *) Help on class user_graph_place_t in module ida_graph: @@ -15761,34 +15561,26 @@ class user_graph_place_t(builtins.object) 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 *) - @param name: action name (C++: const char *) - @return: success + viewer_attach_menu_item(g, name) -> bool + @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) -> 'void' - viewer_center_on(gv, node) - - Center the graph view on the given node. - - @param gv (C++: graph_viewer_t *) - @param node (C++: int) + viewer_center_on(gv, 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 @@ -15798,151 +15590,123 @@ viewer_create_groups(*args) -> 'bool' 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 &) + viewer_create_groups(gv, out_group_nodes, gi) -> bool + @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) -> '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) + viewer_del_node_info(gv, n) + @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 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) + viewer_delete_groups(gv, groups, new_current=-1) -> bool + @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) -> 'void' - viewer_fit_window(gv) - - Fit graph viewer to its parent form. - - @param gv (C++: graph_viewer_t *) + viewer_fit_window(gv) + @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 *) + viewer_get_curnode(gv) -> int + @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) + viewer_get_gli(out, gv, flags=0) -> bool + @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) + viewer_get_node_info(gv, out, n) -> bool + @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 *) + viewer_get_selection(gv, sgs) -> bool + @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 *) - @param flags (C++: uint32) + viewer_set_gli(gv, gli, flags=0) + @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) -> '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 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) + viewer_set_groups_visibility(gv, groups, expand, new_current=-1) -> bool + @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) -> '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 &) - @param flags (C++: uint32) + viewer_set_node_info(gv, n, ni, flags) + @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) -> '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) + viewer_set_titlebar_height(gv, height) -> int + @param gv (C++: graph_viewer_t *) + @param height (C++: int) === ida_graph EPYDOC INJECTIONS === ida_graph.GLICTL_CENTER @@ -15969,27 +15733,27 @@ slowing down significantly (see MAX_VISIBLE_NODE_AREA) ida_graph.NIF_BG_COLOR """ - 'node_info_t::bg_color' +'node_info_t::bg_color' """ ida_graph.NIF_EA """ - 'node_info_t::ea' +'node_info_t::ea' """ ida_graph.NIF_FLAGS """ - 'node_info_t::flags' +'node_info_t::flags' """ ida_graph.NIF_FRAME_COLOR """ - 'node_info_t::frame_color' +'node_info_t::frame_color' """ ida_graph.NIF_TEXT """ - 'node_info_t::text' +'node_info_t::text' """ === ida_graph EPYDOC INJECTIONS END === Help on class DecompilationFailure in module ida_hexrays: @@ -16078,6 +15842,7 @@ class Hexrays_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> Hexrays_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -16085,100 +15850,240 @@ class Hexrays_Hooks(builtins.object) | delete_Hexrays_Hooks(self) | | close_pseudocode(self, *args) -> 'int' + | Pseudocode view is being closed. + | | close_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | cmt_changed(self, *args) -> 'int' + | Comment got changed. + | | cmt_changed(self, cfunc, loc, cmt) -> int + | @param cfunc (C++: cfunc_t *) + | @param loc (C++: const treeloc_t *) + | @param cmt (C++: const char *) | | combine(self, *args) -> 'int' + | Trying to combine instructions of basic block. + | | combine(self, blk, insn) -> int + | @param blk (C++: mblock_t *) + | @param insn: Should return: 1 if combined the current instruction with + | a preceding one (C++: minsn_t *) | | create_hint(self, *args) -> 'PyObject *' + | Create a hint for the current item. + | | create_hint(self, vu) -> PyObject * + | @param vu (C++: vdui_t *) | | curpos(self, *args) -> 'int' + | Current cursor position has been changed. (for example, by left- + | clicking or using keyboard) + | | curpos(self, vu) -> int + | @param vu (C++: vdui_t *) | | double_click(self, *args) -> 'int' + | Mouse double click. + | | double_click(self, vu, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | flowchart(self, *args) -> 'int' + | Flowchart has been generated. + | | flowchart(self, fc) -> int + | @param fc (C++: qflow_chart_t *) | | func_printed(self, *args) -> 'int' + | Function text has been generated. Plugins may modify the text in + | 'cfunc_t::sv' . + | | func_printed(self, cfunc) -> int + | @param cfunc (C++: cfunc_t *) | | glbopt(self, *args) -> 'int' + | Global optimization has been finished. If microcode is modified, + | MERR_LOOP must be returned. It will cause a complete restart of the + | optimization. + | | glbopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | interr(self, *args) -> 'int' + | Internal error has occurred. + | | interr(self, errcode) -> int + | @param errcode (C++: int ) | | keyboard(self, *args) -> 'int' + | Keyboard has been hit. + | | keyboard(self, vu, key_code, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param key_code: VK_... (C++: int) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | locopt(self, *args) -> 'int' + | Basic block level optimization has been finished. + | | locopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | lvar_cmt_changed(self, *args) -> 'int' + | Local variable comment got changed. + | | lvar_cmt_changed(self, vu, v, cmt) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param cmt: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | char *) | | lvar_mapping_changed(self, *args) -> 'int' + | Local variable mapping got changed. + | | lvar_mapping_changed(self, vu, frm, to) -> int + | @param vu (C++: vdui_t *) + | @param frm (C++: lvar_t *) + | @param to: Please note that it is possible to read/write user settings + | for lvars directly from the idb. (C++: lvar_t *) | | lvar_name_changed(self, *args) -> 'int' + | Local variable got renamed. + | | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param name (C++: const char *) + | @param is_user_name: Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | (C++: bool) | | lvar_type_changed(self, *args) -> 'int' + | Local variable type got changed. + | | lvar_type_changed(self, vu, v, tinfo) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param tinfo: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | tinfo_t *) | | maturity(self, *args) -> 'int' + | Ctree maturity level is being changed. + | | maturity(self, cfunc, new_maturity) -> int + | @param cfunc (C++: cfunc_t *) + | @param new_maturity (C++: ctree_maturity_t) | | microcode(self, *args) -> 'int' + | Microcode has been generated. + | | microcode(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | open_pseudocode(self, *args) -> 'int' + | New pseudocode view has been opened. + | | open_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | populating_popup(self, *args) -> 'int' + | Populating popup menu. We can add menu items now. + | | populating_popup(self, widget, popup_handle, vu) -> int + | @param widget (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param vu (C++: vdui_t *) | | prealloc(self, *args) -> 'int' + | Local variables: preallocation step begins. + | | prealloc(self, mba) -> int + | @param mba: This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error + | codes error codes (C++: mba_t *) | | preoptimized(self, *args) -> 'int' + | Microcode has been preoptimized. + | | preoptimized(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | print_func(self, *args) -> 'int' + | Printing ctree and generating text. + | | print_func(self, cfunc, vp) -> int + | @param cfunc (C++: cfunc_t *) + | @param vp: Returns: 1 if text has been generated by the plugin (C++: + | vc_printer_t *) | | prolog(self, *args) -> 'int' + | Prolog analysis has been finished. + | | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | @param mba (C++: mba_t *) + | @param fc (C++: qflow_chart_t *) + | @param reachable_blocks (C++: bitset_t *) + | @param decomp_flags: return Microcode error codes code (C++: int) | | refresh_pseudocode(self, *args) -> 'int' + | Existing pseudocode text has been refreshed. Adding/removing + | pseudocode lines is forbidden in this event. + | | refresh_pseudocode(self, vu) -> int + | @param vu: See also hxe_text_ready, which happens earlier (C++: + | vdui_t *) | | resolve_stkaddrs(self, *args) -> 'int' + | The optimizer is about to resolve stack addresses. + | | resolve_stkaddrs(self, mba) -> int + | @param mba (C++: mba_t *) | | right_click(self, *args) -> 'int' + | Mouse right click. Use hxe_populating_popup instead, in case you want + | to add items in the popup menu. + | | right_click(self, vu) -> int + | @param vu (C++: vdui_t *) | | stkpnts(self, *args) -> 'int' + | SP change points have been calculated. + | | stkpnts(self, mba, _sps) -> int + | @param mba (C++: mba_t *) + | _sps: stkpnts_t * | | structural(self, *args) -> 'int' + | Structural analysis has been finished. + | | structural(self, ct) -> int + | @param ct (C++: control_graph_t *) | | switch_pseudocode(self, *args) -> '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. + | | switch_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | text_ready(self, *args) -> 'int' + | Decompiled text is ready. + | | text_ready(self, vu) -> int + | @param vu: This event can be used to modify the output text (sv). The + | text uses regular color codes (see lines.hpp) COLOR_ADDR is + | used to store pointers to ctree elements (C++: vdui_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -16209,51 +16114,116 @@ class __cbhooks_t(Hexrays_Hooks) | | __init__(self, callback) | __init__(self, _flags=0) -> Hexrays_Hooks + | _flags: uint32 | | close_pseudocode(self, *args) + | Pseudocode view is being closed. + | | close_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | create_hint(self, *args) + | Create a hint for the current item. + | | create_hint(self, vu) -> PyObject * + | @param vu (C++: vdui_t *) | | curpos(self, *args) + | Current cursor position has been changed. (for example, by left- + | clicking or using keyboard) + | | curpos(self, vu) -> int + | @param vu (C++: vdui_t *) | | double_click(self, *args) + | Mouse double click. + | | double_click(self, vu, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | func_printed(self, *args) + | Function text has been generated. Plugins may modify the text in + | 'cfunc_t::sv' . + | | func_printed(self, cfunc) -> int + | @param cfunc (C++: cfunc_t *) | | interr(self, *args) + | Internal error has occurred. + | | interr(self, errcode) -> int + | @param errcode (C++: int ) | | keyboard(self, *args) + | Keyboard has been hit. + | | keyboard(self, vu, key_code, shift_state) -> int + | @param vu (C++: vdui_t *) + | @param key_code: VK_... (C++: int) + | @param shift_state: Should return: 1 if the event has been handled + | (C++: int) | | maturity(self, *args) + | Ctree maturity level is being changed. + | | maturity(self, cfunc, new_maturity) -> int + | @param cfunc (C++: cfunc_t *) + | @param new_maturity (C++: ctree_maturity_t) | | open_pseudocode(self, *args) + | New pseudocode view has been opened. + | | open_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | populating_popup(self, *args) + | Populating popup menu. We can add menu items now. + | | populating_popup(self, widget, popup_handle, vu) -> int + | @param widget (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param vu (C++: vdui_t *) | | print_func(self, *args) + | Printing ctree and generating text. + | | print_func(self, cfunc, vp) -> int + | @param cfunc (C++: cfunc_t *) + | @param vp: Returns: 1 if text has been generated by the plugin (C++: + | vc_printer_t *) | | refresh_pseudocode(self, *args) + | Existing pseudocode text has been refreshed. Adding/removing + | pseudocode lines is forbidden in this event. + | | refresh_pseudocode(self, vu) -> int + | @param vu: See also hxe_text_ready, which happens earlier (C++: + | vdui_t *) | | right_click(self, *args) + | Mouse right click. Use hxe_populating_popup instead, in case you want + | to add items in the popup menu. + | | right_click(self, vu) -> int + | @param vu (C++: vdui_t *) | | switch_pseudocode(self, *args) + | Existing pseudocode view has been reloaded with a new function. Its + | text has not been refreshed yet, only cfunc and mba pointers are + | ready. + | | switch_pseudocode(self, vu) -> int + | @param vu (C++: vdui_t *) | | text_ready(self, *args) + | Decompiled text is ready. + | | text_ready(self, vu) -> int + | @param vu: This event can be used to modify the output text (sv). The + | text uses regular color codes (see lines.hpp) COLOR_ADDR is + | used to store pointers to ctree elements (C++: vdui_t *) | | ---------------------------------------------------------------------- | Data and other attributes defined here: @@ -16271,55 +16241,131 @@ class __cbhooks_t(Hexrays_Hooks) | delete_Hexrays_Hooks(self) | | cmt_changed(self, *args) -> 'int' + | Comment got changed. + | | cmt_changed(self, cfunc, loc, cmt) -> int + | @param cfunc (C++: cfunc_t *) + | @param loc (C++: const treeloc_t *) + | @param cmt (C++: const char *) | | combine(self, *args) -> 'int' + | Trying to combine instructions of basic block. + | | combine(self, blk, insn) -> int + | @param blk (C++: mblock_t *) + | @param insn: Should return: 1 if combined the current instruction with + | a preceding one (C++: minsn_t *) | | flowchart(self, *args) -> 'int' + | Flowchart has been generated. + | | flowchart(self, fc) -> int + | @param fc (C++: qflow_chart_t *) | | glbopt(self, *args) -> 'int' + | Global optimization has been finished. If microcode is modified, + | MERR_LOOP must be returned. It will cause a complete restart of the + | optimization. + | | glbopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | locopt(self, *args) -> 'int' + | Basic block level optimization has been finished. + | | locopt(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | lvar_cmt_changed(self, *args) -> 'int' + | Local variable comment got changed. + | | lvar_cmt_changed(self, vu, v, cmt) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param cmt: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | char *) | | lvar_mapping_changed(self, *args) -> 'int' + | Local variable mapping got changed. + | | lvar_mapping_changed(self, vu, frm, to) -> int + | @param vu (C++: vdui_t *) + | @param frm (C++: lvar_t *) + | @param to: Please note that it is possible to read/write user settings + | for lvars directly from the idb. (C++: lvar_t *) | | lvar_name_changed(self, *args) -> 'int' + | Local variable got renamed. + | | lvar_name_changed(self, vu, v, name, is_user_name) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param name (C++: const char *) + | @param is_user_name: Please note that it is possible to read/write + | user settings for lvars directly from the idb. + | (C++: bool) | | lvar_type_changed(self, *args) -> 'int' + | Local variable type got changed. + | | lvar_type_changed(self, vu, v, tinfo) -> int + | @param vu (C++: vdui_t *) + | @param v (C++: lvar_t *) + | @param tinfo: Please note that it is possible to read/write user + | settings for lvars directly from the idb. (C++: const + | tinfo_t *) | | microcode(self, *args) -> 'int' + | Microcode has been generated. + | | microcode(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | prealloc(self, *args) -> 'int' + | Local variables: preallocation step begins. + | | prealloc(self, mba) -> int + | @param mba: This event may occur several times. Should return: 1 if + | modified microcode Negative values are Microcode error + | codes error codes (C++: mba_t *) | | preoptimized(self, *args) -> 'int' + | Microcode has been preoptimized. + | | preoptimized(self, mba) -> int + | @param mba: return Microcode error codes code (C++: mba_t *) | | prolog(self, *args) -> 'int' + | Prolog analysis has been finished. + | | prolog(self, mba, fc, reachable_blocks, decomp_flags) -> int + | @param mba (C++: mba_t *) + | @param fc (C++: qflow_chart_t *) + | @param reachable_blocks (C++: bitset_t *) + | @param decomp_flags: return Microcode error codes code (C++: int) | | resolve_stkaddrs(self, *args) -> 'int' + | The optimizer is about to resolve stack addresses. + | | resolve_stkaddrs(self, mba) -> int + | @param mba (C++: mba_t *) | | stkpnts(self, *args) -> 'int' + | SP change points have been calculated. + | | stkpnts(self, mba, _sps) -> int + | @param mba (C++: mba_t *) + | _sps: stkpnts_t * | | structural(self, *args) -> 'int' + | Structural analysis has been finished. + | | structural(self, ct) -> int + | @param ct (C++: control_graph_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool @@ -16341,40 +16387,58 @@ 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) + 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 + 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 + 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 + 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 + 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 + 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 + e: cexpr_t * Help on function _ll_new_block in module ida_hexrays: @@ -16389,32 +16453,27 @@ _map_as_dict(maptype, name, keytype, valuetype) 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) + accepts_small_udts(op) -> bool + @param op (C++: ctype_t) Help on function accepts_udts in module ida_hexrays: accepts_udts(*args) -> 'bool' accepts_udts(op) -> bool + @param op (C++: 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) + arglocs_overlap(loc1, w1, loc2, w2) -> bool + @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: @@ -16425,13 +16484,15 @@ class array_of_bitsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< bitset_t > const & | | __getitem__(self, *args) -> 'bitset_t const &' | __getitem__(self, i) -> bitset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_bitsets - | __init__(self, x) -> array_of_bitsets + | x: qvector< bitset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16441,23 +16502,29 @@ class array_of_bitsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< bitset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: bitset_t const & | | __swig_destroy__ = delete_array_of_bitsets(...) | delete_array_of_bitsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: bitset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: bitset_t const & | | at(self, *args) -> 'bitset_t const &' | at(self, _idx) -> bitset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -16481,52 +16548,74 @@ class array_of_bitsets(builtins.object) | | erase(self, *args) -> 'qvector< bitset_t >::iterator' | erase(self, it) -> bitset_t + | it: qvector< bitset_t >::iterator + | + | | erase(self, first, last) -> bitset_t + | first: qvector< bitset_t >::iterator + | 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 + | x: bitset_t const & + | + | | find(self, x) -> bitset_t + | x: bitset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bitset_t()) + | x: bitset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: bitset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: bitset_t * + | len: size_t | | insert(self, *args) -> 'qvector< bitset_t >::iterator' | insert(self, it, x) -> bitset_t + | it: qvector< bitset_t >::iterator + | x: bitset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bitset_t &' | push_back(self, x) - | push_back(self) -> bitset_t + | x: bitset_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: bitset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< bitset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16557,13 +16646,15 @@ class array_of_ivlsets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< ivlset_t > const & | | __getitem__(self, *args) -> 'ivlset_t const &' | __getitem__(self, i) -> ivlset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_ivlsets - | __init__(self, x) -> array_of_ivlsets + | x: qvector< ivlset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -16573,23 +16664,29 @@ class array_of_ivlsets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< ivlset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: ivlset_t const & | | __swig_destroy__ = delete_array_of_ivlsets(...) | delete_array_of_ivlsets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: ivlset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: ivlset_t const & | | at(self, *args) -> 'ivlset_t const &' | at(self, _idx) -> ivlset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -16613,52 +16710,74 @@ class array_of_ivlsets(builtins.object) | | erase(self, *args) -> 'qvector< ivlset_t >::iterator' | erase(self, it) -> ivlset_t + | it: qvector< ivlset_t >::iterator + | + | | erase(self, first, last) -> ivlset_t + | first: qvector< ivlset_t >::iterator + | 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 + | x: ivlset_t const & + | + | | find(self, x) -> ivlset_t + | x: ivlset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ivlset_t()) + | x: ivlset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: ivlset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: ivlset_t * + | len: size_t | | insert(self, *args) -> 'qvector< ivlset_t >::iterator' | insert(self, it, x) -> ivlset_t + | it: qvector< ivlset_t >::iterator + | x: ivlset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ivlset_t &' | push_back(self, x) - | push_back(self) -> ivlset_t + | x: ivlset_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: ivlset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< ivlset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -16683,27 +16802,22 @@ class array_of_ivlsets(builtins.object) 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) + asgop(cop) -> ctype_t + @param cop (C++: 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) - @return: cot_empty is the input operator is not an assignment - operator. + asgop_revert(cop) -> ctype_t + @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: @@ -16714,6 +16828,8 @@ class bit_bound_t(builtins.object) | | __init__(self, *args) | __init__(self, n=0, s=0) -> bit_bound_t + | n: int + | s: int | | __repr__ = _swig_repr(self) | @@ -16747,29 +16863,35 @@ class bitset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: bitset_t const & | | __init__(self, *args) | __init__(self) -> bitset_t - | __init__(self, m) -> bitset_t + | m: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: bitset_t const & | | __repr__ = _swig_repr(self) | @@ -16778,30 +16900,41 @@ class bitset_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, bit) -> bool + | @param bit (C++: int) + | + | | add(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | add(self, ml) -> bool + | 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 + | r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t + | @param m (C++: const bitset_t &) | | count(self, *args) -> 'int' | count(self) -> int - | count(self, bit) -> int + | bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool + | @param maxbit (C++: int) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -16810,57 +16943,81 @@ 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 (C++: int) | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool + | @param bit (C++: int) | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | inc(self, *args) -> 'void' | inc(self, p, n=1) + | @param p (C++: iterator &) + | @param n (C++: int) | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | itat(self, *args) -> 'bitset_t::iterator' - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | @param n (C++: int) | | itv(self, *args) -> 'int' | itv(self, it) -> int + | it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) + | @param shift (C++: int) | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool + | @param bit (C++: int) + | + | | sub(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | sub(self, ml) -> bool + | ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: bitset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -16882,93 +17039,69 @@ class bitset_t(builtins.object) 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_begin(set) -> block_chains_iterator_t + @param set (C++: const block_chains_t *) 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 *) + block_chains_clear(set) + @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_end(set) -> block_chains_iterator_t + @param set (C++: const block_chains_t *) 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) + block_chains_erase(set, p) + @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 *) - @param val (C++: const chain_t &) + block_chains_find(set, val) -> block_chains_iterator_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) -> 'void' - block_chains_free(set) - - Delete 'block_chains_t' instance. - - @param set (C++: block_chains_t *) + block_chains_free(set) + @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) + block_chains_get(p) -> chain_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' . - - @param set (C++: block_chains_t *) - @param val (C++: const chain_t &) + block_chains_insert(set, val) -> block_chains_iterator_t + @param set (C++: block_chains_t *) + @param val (C++: const chain_t &) Help on class block_chains_iterator_t in module ida_hexrays: @@ -16979,12 +17112,14 @@ class block_chains_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: block_chains_iterator_t const & | | __init__(self, *args) | __init__(self) -> block_chains_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: block_chains_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -17014,43 +17149,31 @@ class block_chains_iterator_t(builtins.object) 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) + block_chains_next(p) -> 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) + block_chains_prev(p) -> 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' . - - @param set (C++: block_chains_t *) + block_chains_size(set) -> size_t + @param set (C++: block_chains_t *) Help on class block_chains_t in module ida_hexrays: @@ -17074,18 +17197,50 @@ class block_chains_t(builtins.object) | dstr(self) -> char const * | | get_chain(self, *args) -> 'chain_t *' + | Get chain for the specified value offset. + | | get_chain(self, k, width=1) -> chain_t + | @param k: value offset (register number or stack offset) (C++: const + | voff_t &) + | @param width: size of value in bytes (C++: int) + | + | | get_chain(self, k, width=1) -> chain_t + | @param k: value offset (register number or stack offset) (C++: const + | voff_t &) + | @param width: size of value in bytes (C++: int) + | + | | get_chain(self, ch) -> chain_t + | ch: chain_t const & + | + | | get_chain(self, ch) -> chain_t + | ch: chain_t const & | | get_reg_chain(self, *args) -> 'chain_t *' + | Get chain for the specified register + | | get_reg_chain(self, reg, width=1) -> chain_t + | @param reg: register number (C++: mreg_t) + | @param width: size of register in bytes (C++: int) + | + | | get_reg_chain(self, reg, width=1) -> chain_t + | @param reg: register number (C++: mreg_t) + | @param width: size of register in bytes (C++: int) | | get_stk_chain(self, *args) -> 'chain_t *' + | Get chain for the specified stack offset + | | get_stk_chain(self, off, width=1) -> chain_t + | @param off: stack offset (C++: sval_t) + | @param width: size of stack value in bytes (C++: int) + | + | | get_stk_chain(self, off, width=1) -> chain_t + | @param off: stack offset (C++: sval_t) + | @param width: size of stack value in bytes (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17108,10 +17263,11 @@ class block_chains_vec_t(builtins.object) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t + | i: size_t | | __init__(self, *args) | __init__(self) -> block_chains_vec_t - | __init__(self, x) -> block_chains_vec_t + | 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. @@ -17123,12 +17279,15 @@ class block_chains_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -17152,7 +17311,12 @@ class block_chains_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | + | | erase(self, first, last) -> block_chains_t + | first: qvector< block_chains_t >::iterator + | last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -17162,35 +17326,47 @@ class block_chains_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) + | x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: block_chains_t * + | len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) - | push_back(self) -> block_chains_t + | x: block_chains_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: block_chains_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< block_chains_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -17210,94 +17386,70 @@ class block_chains_vec_t(builtins.object) 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_begin(map) -> boundaries_iterator_t + @param map (C++: const boundaries_t *) Help on function boundaries_clear in module ida_hexrays: boundaries_clear(*args) -> 'void' - boundaries_clear(map) - - Clear boundaries_t. - - @param map (C++: boundaries_t *) + boundaries_clear(map) + @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_end(map) -> boundaries_iterator_t + @param map (C++: const boundaries_t *) 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) + boundaries_erase(map, p) + @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 *&) + boundaries_find(map, key) -> boundaries_iterator_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) -> 'cinsn_t *const &' - boundaries_first(p) -> cinsn_t - - Get reference to the current map key. - - @param p (C++: boundaries_iterator_t) + boundaries_first(p) -> cinsn_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 *) + boundaries_free(map) + @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 *&) - @param val (C++: const rangeset_t &) + boundaries_insert(map, key, val) -> boundaries_iterator_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: @@ -17308,12 +17460,14 @@ class boundaries_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: boundaries_iterator_t const & | | __init__(self, *args) | __init__(self) -> boundaries_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: boundaries_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -17343,54 +17497,39 @@ class boundaries_iterator_t(builtins.object) 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) + boundaries_next(p) -> 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) + boundaries_prev(p) -> 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) + boundaries_second(p) -> rangeset_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 *) + boundaries_size(map) -> size_t + @param map (C++: boundaries_t *) Help on class boundaries_t in module ida_hexrays: @@ -17401,9 +17540,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 . @@ -17413,15 +17560,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. @@ -17431,6 +17596,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. @@ -17440,23 +17611,36 @@ 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 + | _Keyval: cinsn_t *const & | | begin lambda self, *args | @@ -17545,24 +17729,30 @@ class carg_t(cexpr_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: carg_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: carg_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: carg_t const & | | __init__(self, *args) | __init__(self) -> carg_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: carg_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: carg_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: carg_t const & | | __repr__ = _swig_repr(self) | @@ -17571,9 +17761,11 @@ class carg_t(cexpr_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: carg_t const & | | consume_cexpr(self, *args) -> 'void' | consume_cexpr(self, e) + | @param e (C++: cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -17642,119 +17834,194 @@ class carg_t(cexpr_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | _v: char * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) + | _v: char * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t + | @param r (C++: const cexpr_t &) | | calc_type(self, *args) -> 'void' + | Calculate the type of the expression. Use this function to calculate + | the expression type when a new expression is built + | | calc_type(self, recursive) + | @param recursive: if true, types of all children expression will be + | calculated before calculating our type (C++: bool) | | 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' + | Does the expression contain a comma operator? + | | contains_comma(self, times=1) -> bool + | @param times (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' + | Does the expression contain a comma operator or an embedded statement + | operator or a label? + | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | @param maxcommas (C++: int) | | contains_insn(self, *args) -> 'bool' + | Does the expression contain an embedded statement operator? + | | contains_insn(self, times=1) -> bool + | @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' + | Check if the expression contains the specified operator. + | | contains_operator(self, needed_op, times=1) -> bool + | @param needed_op: operator code to search for (C++: ctype_t) + | @param times: how many times the operator code should be present (C++: + | int) + | @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? | | equal_effect(self, *args) -> '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. + | | equal_effect(self, r) -> bool + | @param r: the expression to compare against the current expression + | (C++: const cexpr_t &) + | @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 the operand with a numeric value. | | find_op(self, *args) -> 'cexpr_t *' + | Find the child with the specified operator. + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) + | + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) | | get_1num_op(self, *args) -> 'bool' + | Get pointers to operands. at last one operand should be a number o1 + | will be pointer to the number + | | get_1num_op(self, o1, o2) -> bool + | @param o1 (C++: cexpr_t **) + | @param o2 (C++: cexpr_t **) | | get_const_value(self, *args) -> 'bool' - | get_const_value(self) -> bool + | Get expression value. | | 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 argument? + | | is_call_arg_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is a call argument of the specified + | parent expression. | | is_call_object_of(self, *args) -> 'bool' + | Is call object? + | | is_call_object_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is the call object of the specified + | parent expression. | | is_child_of(self, *args) -> 'bool' + | Verify if the specified item is our parent. + | | is_child_of(self, parent) -> bool + | @param parent: possible parent item (C++: const citem_t *) + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' + | Check if the expression is a number with the specified value. + | | is_const_value(self, _v) -> bool + | @param _v (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -17766,28 +18033,30 @@ class carg_t(cexpr_t) | 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 @@ -17796,38 +18065,63 @@ class carg_t(cexpr_t) | 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' + | Print expression into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | put_number(self, *args) -> 'void' + | Assign a number to the expression. + | | put_number(self, func, value, nbytes, sign=no_sign) + | @param func: current function (C++: cfunc_t *) + | @param value: number value (C++: uint64) + | @param nbytes: size of the number in bytes (C++: int) + | @param sign: number sign (C++: type_sign_t) | | requires_lvalue(self, *args) -> 'bool' + | Check if the expression requires an lvalue. + | | requires_lvalue(self, child) -> bool + | @param child: The function will check if this child of our expression + | must be an lvalue. (C++: const cexpr_t *) + | @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) + | v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: cexpr_t &) | | theother(self, *args) -> 'cexpr_t *' + | Get the other operand. This function returns the other operand (not + | the specified one) for binary expressions. + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) + | + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors inherited from cexpr_t: @@ -17907,22 +18201,37 @@ class carg_t(cexpr_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | 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 (C++: ea_t) | | find_parent_of(self, *args) -> 'citem_t *' + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) -> 'bool' - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -17975,25 +18284,32 @@ class carglist_t(qvector_carg_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: carglist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: carglist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: carglist_t const & | | __init__(self, *args) | __init__(self) -> carglist_t - | __init__(self, ftype, fl=0) -> carglist_t + | ftype: tinfo_t const & + | fl: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: carglist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: carglist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: carglist_t const & | | __repr__ = _swig_repr(self) | @@ -18002,6 +18318,7 @@ class carglist_t(qvector_carg_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: carglist_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18025,6 +18342,7 @@ class carglist_t(qvector_carg_t) | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18034,19 +18352,24 @@ class carglist_t(qvector_carg_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: carg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | at = __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18070,52 +18393,74 @@ class carglist_t(qvector_carg_t) | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t + | it: qvector< carg_t >::iterator + | + | | erase(self, first, last) -> carg_t + | first: qvector< carg_t >::iterator + | 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 + | x: carg_t const & + | + | | find(self, x) -> carg_t + | x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) + | x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: carg_t * + | len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t + | it: qvector< carg_t >::iterator + | x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: carg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18143,25 +18488,35 @@ class casm_t(ida_pro.eavec_t)↗ | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: casm_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: casm_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: casm_t const & | | __init__(self, *args) | __init__(self, ea) -> casm_t + | ea: ea_t + | + | | __init__(self, r) -> casm_t + | r: casm_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: casm_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: casm_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: casm_t const & | | __repr__ = _swig_repr(self) | @@ -18170,6 +18525,7 @@ class casm_t(ida_pro.eavec_t)↗ | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: casm_t const & | | one_insn(self, *args) -> 'bool' | one_insn(self) -> bool @@ -18190,6 +18546,7 @@ 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 &↗ + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18199,19 +18556,24 @@ class casm_t(ida_pro.eavec_t)↗ | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: unsigned-ea-like-numeric-type const &↗ | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | append = push_back(self, *args) -> 'unsigned-ea-like-numeric-type &'↗ | push_back(self, x) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | x: unsigned-ea-like-numeric-type const &↗ | | at = __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18235,49 +18597,70 @@ 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↗ + | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | + | | erase(self, first, last) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | first: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | 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↗ + | x: unsigned-ea-like-numeric-type const &↗ + | + | | find(self, x) -> qvector< unsigned-ea-like-numeric-type >::const_iterator↗ + | x: unsigned-ea-like-numeric-type const &↗ | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: unsigned-ea-like-numeric-type const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: unsigned-ea-like-numeric-type *↗ + | len: size_t | | insert(self, *args) -> 'qvector< unsigned-ea-like-numeric-type >::iterator'↗ | insert(self, it, x) -> qvector< unsigned-ea-like-numeric-type >::iterator↗ + | it: qvector< unsigned-ea-like-numeric-type >::iterator↗ + | 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) - | push_back(self) -> unsigned-ea-like-numeric-type &↗ + | x: unsigned-ea-like-numeric-type const &↗ | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned-ea-like-numeric-type const &↗ + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< unsigned-ea-like-numeric-type > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -18305,24 +18688,30 @@ class cblock_t(qlist_cinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cblock_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cblock_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cblock_t const & | | __init__(self, *args) | __init__(self) -> cblock_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cblock_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cblock_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cblock_t const & | | __repr__ = _swig_repr(self) | @@ -18334,6 +18723,7 @@ class cblock_t(qlist_cinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cblock_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18351,6 +18741,7 @@ class cblock_t(qlist_cinsn_t) | | __getitem__(self, *args) -> 'cinsn_t const &' | __getitem__(self, i) -> cinsn_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18360,6 +18751,8 @@ class cblock_t(qlist_cinsn_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: cinsn_t const & | | at(self, index) | @@ -18380,8 +18773,16 @@ class cblock_t(qlist_cinsn_t) | | erase(self, *args) -> 'void' | erase(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | erase(self, p1, p2) + | p1: qlist< cinsn_t >::iterator + | p2: qlist< cinsn_t >::iterator + | + | | erase(self, p) + | p: qlist_cinsn_t_iterator | | find(self, item) | @@ -18392,9 +18793,22 @@ class cblock_t(qlist_cinsn_t) | | insert(self, *args) -> 'qlist_cinsn_t_iterator' | insert(self, p, x) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | x: cinsn_t const & + | + | | insert(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | insert(self, i, v) + | i: size_t + | v: cinsn_t const & + | + | | insert(self, p, x) -> qlist_cinsn_t_iterator + | p: qlist_cinsn_t_iterator + | x: cinsn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) @@ -18404,10 +18818,11 @@ class cblock_t(qlist_cinsn_t) | | push_back(self, *args) -> 'cinsn_t &' | push_back(self, x) - | push_back(self) -> cinsn_t + | x: cinsn_t const & | | push_front(self, *args) -> 'void' | push_front(self, x) + | x: cinsn_t const & | | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rbegin(self) -> qlist< cinsn_t >::reverse_iterator @@ -18415,6 +18830,7 @@ class cblock_t(qlist_cinsn_t) | | remove(self, *args) -> 'bool' | remove(self, v) -> bool + | v: cinsn_t const & | | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rend(self) -> qlist< cinsn_t >::reverse_iterator @@ -18425,6 +18841,7 @@ class cblock_t(qlist_cinsn_t) | | swap(self, *args) -> 'void' | swap(self, x) + | x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from qlist_cinsn_t: @@ -18450,24 +18867,30 @@ class ccase_t(cinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ccase_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ccase_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ccase_t const & | | __init__(self, *args) | __init__(self) -> ccase_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ccase_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ccase_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ccase_t const & | | __repr__ = _swig_repr(self) | @@ -18476,12 +18899,14 @@ class ccase_t(cinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | 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 (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18535,89 +18960,145 @@ class ccase_t(cinsn_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | 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) + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t + | @param r (C++: const cinsn_t &) | | 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 '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. + | | collect_free_breaks(self, breaks) -> bool + | @param breaks: pointer to the variable where the vector of all found + | free break statements is returned. This argument can + | be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> '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. + | | collect_free_continues(self, continues) -> bool + | @param continues: pointer to the variable where the vector of all + | found free continue statements is returned. This + | argument can be NULL. (C++: cinsnptrvec_t *) + | @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' + | Check if the statement contains a statement of the specified type. + | | contains_insn(self, type, times=1) -> bool + | @param type: statement opcode to look for (C++: ctype_t) + | @param times: how many times TYPE should be present (C++: int) + | @return: true if the statement has at least TIMES children with opcode + | == TYPE | | create_if(self, *args) -> 'cif_t &' + | Create a new if-statement. The current statement must be a block. The + | new statement will be appended to it. + | | create_if(self, cnd) -> cif_t + | @param cnd: if condition. It will be deleted after being copied. (C++: + | cexpr_t *) | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' - | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. | | new_insn(self, *args) -> 'cinsn_t &' + | Create a new statement. The current statement must be a block. The new + | statement will be appended to it. + | | new_insn(self, insn_ea) -> cinsn_t + | @param insn_ea: statement address (C++: ea_t) | | print1(self, *args) -> 'void' + | Print the statement into one line. Currently this function is not + | available. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: 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 + | insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors inherited from cinsn_t: @@ -18683,22 +19164,37 @@ class ccase_t(cinsn_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | 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 (C++: ea_t) | | find_parent_of(self, *args) -> 'citem_t *' + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) -> 'bool' - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -18748,24 +19244,30 @@ class ccases_t(qvector_ccase_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ccases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ccases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ccases_t const & | | __init__(self, *args) | __init__(self) -> ccases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ccases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ccases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ccases_t const & | | __repr__ = _swig_repr(self) | @@ -18774,6 +19276,7 @@ class ccases_t(qvector_ccase_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: ccases_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18791,6 +19294,7 @@ class ccases_t(qvector_ccase_t) | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -18800,19 +19304,24 @@ class ccases_t(qvector_ccase_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: ccase_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | at = __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -18836,52 +19345,74 @@ class ccases_t(qvector_ccase_t) | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t + | it: qvector< ccase_t >::iterator + | + | | erase(self, first, last) -> ccase_t + | first: qvector< ccase_t >::iterator + | 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 + | x: ccase_t const & + | + | | find(self, x) -> ccase_t + | x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) + | x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: ccase_t * + | len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t + | it: qvector< ccase_t >::iterator + | x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: ccase_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -18903,8 +19434,12 @@ 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 + | mba_: mba_t const * + | + | | __init__(self, r) -> cdg_insn_iterator_t + | r: cdg_insn_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -18917,14 +19452,19 @@ 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 (C++: insn_t *) | | ok(self, *args) -> 'bool' | ok(self) -> bool | | start(self, *args) -> 'void' | start(self, rng) + | @param rng (C++: const range_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -18950,8 +19490,11 @@ class cdg_insn_iterator_t(builtins.object) | 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 + | mba + | cdg_insn_iterator_t_mba_get(self) -> mba_t + | + | severed_branch + | cdg_insn_iterator_t_severed_branch_get(self) -> ea_t | | thisown | The membership flag @@ -18971,24 +19514,30 @@ class cdo_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cdo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cdo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cdo_t const & | | __init__(self, *args) | __init__(self) -> cdo_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cdo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cdo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cdo_t const & | | __repr__ = _swig_repr(self) | @@ -18997,6 +19546,7 @@ class cdo_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cdo_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19014,6 +19564,7 @@ class cdo_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -19085,28 +19636,49 @@ class cexpr_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cexpr_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cexpr_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cexpr_t const & | | __init__(self, *args) | __init__(self) -> cexpr_t - | __init__(self, cop, _x) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | + | | __init__(self, cop, _x, _y) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | _y: cexpr_t * + | + | | __init__(self, cop, _x, _y, _z) -> cexpr_t + | cop: enum ctype_t + | _x: cexpr_t * + | _y: cexpr_t * + | _z: cexpr_t * + | + | | __init__(self, r) -> cexpr_t + | r: cexpr_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cexpr_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cexpr_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cexpr_t const & | | __repr__ = _swig_repr(self) | @@ -19160,122 +19732,198 @@ class cexpr_t(citem_t) | | _replace_by(self, *args) -> 'void' | _replace_by(self, r) + | r: cexpr_t * | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | _v: carglist_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | _v: char * | | _set_insn(self, *args) -> 'void' | _set_insn(self, _v) + | _v: cinsn_t * | | _set_m(self, *args) -> 'void' | _set_m(self, _v) + | _v: int | | _set_n(self, *args) -> 'void' | _set_n(self, _v) + | _v: cnumber_t * | | _set_obj_ea(self, *args) -> 'void' | _set_obj_ea(self, _v) + | _v: ea_t | | _set_ptrsize(self, *args) -> 'void' | _set_ptrsize(self, _v) + | _v: int | | _set_refwidth(self, *args) -> 'void' | _set_refwidth(self, _v) + | _v: int | | _set_string(self, *args) -> 'void' | _set_string(self, _v) + | _v: char * | | _set_x(self, *args) -> 'void' | _set_x(self, _v) + | _v: cexpr_t * | | _set_y(self, *args) -> 'void' | _set_y(self, _v) + | _v: cexpr_t * | | _set_z(self, *args) -> 'void' | _set_z(self, _v) + | _v: cexpr_t * | | assign(self, *args) -> 'cexpr_t &' | assign(self, r) -> cexpr_t + | @param r (C++: const cexpr_t &) | | calc_type(self, *args) -> 'void' + | Calculate the type of the expression. Use this function to calculate + | the expression type when a new expression is built + | | calc_type(self, recursive) + | @param recursive: if true, types of all children expression will be + | calculated before calculating our type (C++: bool) | | 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 + | r: cexpr_t const & | | contains_comma(self, *args) -> 'bool' + | Does the expression contain a comma operator? + | | contains_comma(self, times=1) -> bool + | @param times (C++: int) | | contains_comma_or_insn_or_label(self, *args) -> 'bool' + | Does the expression contain a comma operator or an embedded statement + | operator or a label? + | | contains_comma_or_insn_or_label(self, maxcommas=1) -> bool + | @param maxcommas (C++: int) | | contains_insn(self, *args) -> 'bool' + | Does the expression contain an embedded statement operator? + | | contains_insn(self, times=1) -> bool + | @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' + | Check if the expression contains the specified operator. + | | contains_operator(self, needed_op, times=1) -> bool + | @param needed_op: operator code to search for (C++: ctype_t) + | @param times: how many times the operator code should be present (C++: + | int) + | @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? | | equal_effect(self, *args) -> '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. + | | equal_effect(self, r) -> bool + | @param r: the expression to compare against the current expression + | (C++: const cexpr_t &) + | @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 the operand with a numeric value. | | find_op(self, *args) -> 'cexpr_t *' + | Find the child with the specified operator. + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) + | + | | find_op(self, _op) -> cexpr_t + | @param _op (C++: ctype_t) | | get_1num_op(self, *args) -> 'bool' + | Get pointers to operands. at last one operand should be a number o1 + | will be pointer to the number + | | get_1num_op(self, o1, o2) -> bool + | @param o1 (C++: cexpr_t **) + | @param o2 (C++: cexpr_t **) | | get_const_value(self, *args) -> 'bool' - | get_const_value(self) -> bool + | Get expression value. | | 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 argument? + | | is_call_arg_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is a call argument of the specified + | parent expression. | | is_call_object_of(self, *args) -> 'bool' + | Is call object? + | | is_call_object_of(self, parent) -> bool + | @param parent (C++: const citem_t *) + | @return: true if our expression is the call object of the specified + | parent expression. | | is_child_of(self, *args) -> 'bool' + | Verify if the specified item is our parent. + | | is_child_of(self, parent) -> bool + | @param parent: possible parent item (C++: const citem_t *) + | @return: true if the specified item is our parent | | is_const_value(self, *args) -> 'bool' + | Check if the expression is a number with the specified value. + | | is_const_value(self, _v) -> bool + | @param _v (C++: uint64) | | is_cstr(self, *args) -> 'bool' | is_cstr(self) -> bool @@ -19287,28 +19935,30 @@ class cexpr_t(citem_t) | 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 @@ -19317,38 +19967,63 @@ class cexpr_t(citem_t) | 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' + | Print expression into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | put_number(self, *args) -> 'void' + | Assign a number to the expression. + | | put_number(self, func, value, nbytes, sign=no_sign) + | @param func: current function (C++: cfunc_t *) + | @param value: number value (C++: uint64) + | @param nbytes: size of the number in bytes (C++: int) + | @param sign: number sign (C++: type_sign_t) | | requires_lvalue(self, *args) -> 'bool' + | Check if the expression requires an lvalue. + | | requires_lvalue(self, child) -> bool + | @param child: The function will check if this child of our expression + | must be an lvalue. (C++: const cexpr_t *) + | @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) + | v: var_ref_t const * | | set_vftable(self, *args) -> 'void' | set_vftable(self) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: cexpr_t &) | | theother(self, *args) -> 'cexpr_t *' + | Get the other operand. This function returns the other operand (not + | the specified one) for binary expressions. + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) + | + | | theother(self, what) -> cexpr_t + | @param what (C++: const cexpr_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19433,22 +20108,37 @@ class cexpr_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | 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 (C++: ea_t) | | find_parent_of(self, *args) -> 'citem_t *' + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) -> 'bool' - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -19502,24 +20192,30 @@ class cfor_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cfor_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cfor_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cfor_t const & | | __init__(self, *args) | __init__(self) -> cfor_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cfor_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cfor_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cfor_t const & | | __repr__ = _swig_repr(self) | @@ -19528,6 +20224,7 @@ class cfor_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cfor_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19551,6 +20248,7 @@ class cfor_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -19590,6 +20288,8 @@ class cfunc_parentee_t(ctree_parentee_t) | | __init__(self, *args) | __init__(self, f, post=False) -> cfunc_parentee_t + | f: cfunc_t * + | post: bool | | __repr__ = _swig_repr(self) | @@ -19597,7 +20297,18 @@ class cfunc_parentee_t(ctree_parentee_t) | delete_cfunc_parentee_t(self) | | calc_rvalue_type(self, *args) -> '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. + | | calc_rvalue_type(self, target, e) -> bool + | @param target: 'best' type of the expression will be returned here + | (C++: tinfo_t *) + | @param e: expression to determine the desired type (C++: const + | cexpr_t *) + | @return: false if failed | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19612,61 +20323,112 @@ class cfunc_parentee_t(ctree_parentee_t) | Methods inherited from ctree_parentee_t: | | recalc_parent_types(self, *args) -> 'bool' - | recalc_parent_types(self) -> bool + | Recalculate types of parent node. 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 it is + | recommended to restart the traversal because the information about + | parent nodes is stale. | | ---------------------------------------------------------------------- | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) -> 'int' + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> '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. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @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' + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> '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. + | | leave_insn(self, arg0) -> int + | 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 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> '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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -19702,98 +20464,189 @@ class cfunc_t(builtins.object) | 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 (C++: const citem_t *) + | @param px (C++: int *) + | @param py (C++: int *) + | + | | find_item_coords(self, item) -> PyObject * + | @param item (C++: const citem_t *) | | find_label(self, *args) -> 'citem_t *' + | Find the label. + | | find_label(self, label) -> citem_t + | @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 (C++: const ctree_item_t &) + | @param udm (C++: 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 the function type. + | | get_func_type(self, type) -> bool + | @param type: variable where the function type is returned (C++: + | tinfo_t *) + | @return: false if failure | | get_line_item(self, *args) -> 'bool' + | Get ctree item for the specified cursor position. + | 'vdui_t::get_current_item()' + | | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | @param line: line of decompilation text (element of sv ) (C++: const + | char *) + | @param x: x cursor coordinate in the line (C++: int) + | @param is_ctree_line: does the line belong to statement area? (if not, + | it is assumed to belong to the declaration area) + | (C++: bool) + | @param phead: ptr to the first item on the line (used to attach block + | comments). May be NULL (C++: ctree_item_t *) + | @param pitem: ptr to the current item. May be NULL (C++: ctree_item_t + | *) + | @param ptail: ptr to the last item on the line (used to attach + | indented comments). May be NULL (C++: ctree_item_t *) + | @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. | | 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. | | get_user_cmt(self, *args) -> 'char const *' + | Retrieve a user defined comment. + | | get_user_cmt(self, loc, rt) -> char const * + | @param loc: ctree location (C++: const treeloc_t &) + | @param rt: should already retrieved comments retrieved again? (C++: + | cmt_retrieval_type_t) + | @return: pointer to the comment string or NULL | | get_user_iflags(self, *args) -> 'int32' + | Retrieve citem iflags. + | | get_user_iflags(self, loc) -> int32 + | @param loc: citem locator (C++: const citem_locator_t &) + | @return: ctree item iflags bits or 0 | | get_user_union_selection(self, *args) -> 'bool' + | Retrieve a user defined union field selection. + | | get_user_union_selection(self, ea, path) -> bool + | @param ea: address (C++: ea_t) + | @param path: out: path describing the union selection. (C++: intvec_t + | *) + | @return: pointer to the path or NULL | | get_warnings(self, *args) -> 'hexwarns_t &' - | get_warnings(self) -> hexwarns_t + | Get information about decompilation 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 function text. + | | print_func(self, vp) + | @param vp: printer helper class to receive the generated text. (C++: + | vc_printer_t &) | | 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 check what labels are really used + | by the function and removes the unused ones. | | 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 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. + | | set_user_cmt(self, loc, cmt) + | @param loc: ctree location (C++: const treeloc_t &) + | @param cmt: new comment. if empty or NULL, then an existing comment is + | deleted. (C++: const char *) | | set_user_iflags(self, *args) -> 'void' + | Set citem iflags. + | | set_user_iflags(self, loc, iflags) + | @param loc: citem locator (C++: const citem_locator_t &) + | @param iflags: new iflags (C++: int32) | | set_user_union_selection(self, *args) -> 'void' + | Set a union field selection. The 'save_user_unions()' function must be + | called after calling this function. + | | set_user_union_selection(self, ea, path) + | @param ea: address (C++: ea_t) + | @param path: in: path describing the union selection. (C++: const + | intvec_t &) | | verify(self, *args) -> 'void' + | 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. + | | verify(self, aul, even_without_debugger) + | @param aul: Are unused labels acceptable? (C++: allow_unused_labels_t) + | @param even_without_debugger: if false and there is no debugger, the + | verification will be skipped (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -19813,10 +20666,12 @@ class cfunc_t(builtins.object) | cfunc_t_body_get(self) -> cinsn_t | | 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 @@ -19825,19 +20680,20 @@ class cfunc_t(builtins.object) | cfunc_t_hdrlines_get(self) -> int | | lvars - | get_lvars(self) -> lvars_t + | Get vector of local variables. | | maturity | cfunc_t_maturity_get(self) -> ctree_maturity_t | | mba - | cfunc_t_mba_get(self) -> mbl_array_t + | cfunc_t_mba_get(self) -> mba_t | | numforms | cfunc_t_numforms_get(self) -> user_numforms_t | | 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 @@ -19867,7 +20723,7 @@ class cfunc_t(builtins.object) | cfunc_t_user_unions_get(self) -> user_unions_t | | warnings - | get_warnings(self) -> hexwarns_t + | Get information about decompilation warnings. Help on function cfunc_type in module ida_hexrays: @@ -19888,7 +20744,11 @@ class cfuncptr_t(builtins.object) | | __init__(self, *args) | __init__(self, p) -> cfuncptr_t + | p: cfunc_t * + | + | | __init__(self, r) -> cfuncptr_t + | r: qrefcnt_t< cfunc_t > const & | | __ptrval__(self, *args) -> 'size_t' | __ptrval__(self) -> size_t @@ -19911,13 +20771,22 @@ class cfuncptr_t(builtins.object) | | find_item_coords(self, *args) -> 'PyObject *' | find_item_coords(self, item, px, py) -> bool + | item: citem_t const * + | px: int * + | py: int * + | + | | find_item_coords(self, item) -> PyObject * + | item: citem_t const * | | find_label(self, *args) -> 'citem_t *' | find_label(self, label) -> citem_t + | label: int | | gather_derefs(self, *args) -> 'bool' | gather_derefs(self, ci, udm=None) -> bool + | ci: ctree_item_t const & + | udm: udt_type_data_t * | | get_boundaries(self, *args) -> 'boundaries_t &' | get_boundaries(self) -> boundaries_t @@ -19927,9 +20796,16 @@ class cfuncptr_t(builtins.object) | | get_func_type(self, *args) -> 'bool' | get_func_type(self, type) -> bool + | type: tinfo_t * | | get_line_item(self, *args) -> 'bool' | get_line_item(self, line, x, is_ctree_line, phead, pitem, ptail) -> bool + | line: char const * + | x: int + | is_ctree_line: bool + | phead: ctree_item_t * + | pitem: ctree_item_t * + | ptail: ctree_item_t * | | get_lvars(self, *args) -> 'lvars_t *' | get_lvars(self) -> lvars_t @@ -19942,12 +20818,17 @@ class cfuncptr_t(builtins.object) | | get_user_cmt(self, *args) -> 'char const *' | get_user_cmt(self, loc, rt) -> char const * + | loc: treeloc_t const & + | rt: enum cmt_retrieval_type_t | | get_user_iflags(self, *args) -> 'int32' | get_user_iflags(self, loc) -> int32 + | loc: citem_locator_t const & | | get_user_union_selection(self, *args) -> 'bool' | get_user_union_selection(self, ea, path) -> bool + | ea: ea_t + | path: intvec_t * | | get_warnings(self, *args) -> 'hexwarns_t &' | get_warnings(self) -> hexwarns_t @@ -19955,11 +20836,15 @@ 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) + | vp: vc_printer_t & | | refresh_func_ctext(self, *args) -> 'void' | refresh_func_ctext(self) @@ -19990,15 +20875,23 @@ class cfuncptr_t(builtins.object) | | set_user_cmt(self, *args) -> 'void' | set_user_cmt(self, loc, cmt) + | loc: treeloc_t const & + | cmt: char const * | | set_user_iflags(self, *args) -> 'void' | set_user_iflags(self, loc, iflags) + | loc: citem_locator_t const & + | iflags: int32 | | set_user_union_selection(self, *args) -> 'void' | set_user_union_selection(self, ea, path) + | ea: ea_t + | path: intvec_t const & | | verify(self, *args) -> 'void' | verify(self, aul, even_without_debugger) + | aul: enum allow_unused_labels_t + | even_without_debugger: bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20033,7 +20926,7 @@ class cfuncptr_t(builtins.object) | cfuncptr_t_maturity_get(self) -> ctree_maturity_t | | mba - | cfuncptr_t_mba_get(self) -> mbl_array_t + | cfuncptr_t_mba_get(self) -> mba_t | | numforms | cfuncptr_t_numforms_get(self) -> user_numforms_t @@ -20077,24 +20970,30 @@ class cgoto_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cgoto_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cgoto_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cgoto_t const & | | __init__(self, *args) | __init__(self) -> cgoto_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cgoto_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cgoto_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cgoto_t const & | | __repr__ = _swig_repr(self) | @@ -20103,6 +21002,7 @@ class cgoto_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cgoto_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20133,6 +21033,7 @@ class chain_keeper_t(builtins.object) | | __init__(self, *args) | __init__(self, _gc) -> chain_keeper_t + | _gc: graph_chains_t * | | __repr__ = _swig_repr(self) | @@ -20144,6 +21045,8 @@ class chain_keeper_t(builtins.object) | | for_all_chains(self, *args) -> 'int' | for_all_chains(self, cv, gca) -> int + | @param cv (C++: chain_visitor_t &) + | @param gca (C++: int) | | front(self, *args) -> 'block_chains_t &' | front(self) -> block_chains_t @@ -20174,11 +21077,19 @@ class chain_t(ida_pro.intvec_t) | | __init__(self, *args) | __init__(self) -> chain_t - | __init__(self, t, off, w=1, v=-1) -> chain_t + | t: mopt_t + | off: sval_t + | w: int + | v: int + | + | | __init__(self, _k, w=1) -> chain_t + | _k: voff_t const & + | w: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: chain_t const & | | __repr__ = _swig_repr(self) | @@ -20189,7 +21100,10 @@ class chain_t(ida_pro.intvec_t) | _print(self) | | append_list(self, *args) -> 'void' + | Append the contents of the chain to the specified list of locations. + | | append_list(self, list) + | @param list (C++: mlist_t *) | | clear_varnum(self, *args) -> 'void' | clear_varnum(self) @@ -20208,6 +21122,7 @@ class chain_t(ida_pro.intvec_t) | | includes(self, *args) -> 'bool' | includes(self, r) -> bool + | @param r (C++: const chain_t &) | | is_fake(self, *args) -> 'bool' | is_fake(self) -> bool @@ -20238,21 +21153,27 @@ class chain_t(ida_pro.intvec_t) | | overlap(self, *args) -> 'bool' | overlap(self, r) -> bool + | @param r (C++: const chain_t &) | | set_inited(self, *args) -> 'void' | set_inited(self, b) + | @param b (C++: bool) | | set_overlapped(self, *args) -> 'void' | set_overlapped(self, b) + | @param b (C++: bool) | | set_replaced(self, *args) -> 'void' | set_replaced(self, b) + | @param b (C++: bool) | | set_term(self, *args) -> 'void' | set_term(self, b) + | @param b (C++: bool) | | set_value(self, *args) -> 'void' | set_value(self, r) + | @param r (C++: const chain_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20274,9 +21195,11 @@ class chain_t(ida_pro.intvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -20286,22 +21209,28 @@ class chain_t(ida_pro.intvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< int > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: int const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: int const & | | append = push_back(self, *args) -> 'int &' | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | at = __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -20325,49 +21254,70 @@ class chain_t(ida_pro.intvec_t) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator + | it: qvector< int >::iterator + | + | | erase(self, first, last) -> qvector< int >::iterator + | first: qvector< int >::iterator + | last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator + | x: int const & + | + | | find(self, x) -> qvector< int >::const_iterator + | x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: int * + | len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator + | it: qvector< int >::iterator + | x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -20397,6 +21347,7 @@ class chain_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> chain_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -20405,6 +21356,8 @@ class chain_visitor_t(builtins.object) | | visit_chain(self, *args) -> 'int' | visit_chain(self, nblock, ch) -> int + | @param nblock (C++: int) + | @param ch (C++: chain_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20424,9 +21377,6 @@ class chain_visitor_t(builtins.object) 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 @@ -20434,9 +21384,10 @@ checkout_hexrays_license(*args) -> 'bool' 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 + checkout_hexrays_license(silent) -> bool + @param silent: silently fail if the license cannot be checked out. + (C++: bool) + @return: false if failed Help on class cif_t in module ida_hexrays: @@ -20452,25 +21403,31 @@ class cif_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cif_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cif_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cif_t const & | | __init__(self, *args) | __init__(self) -> cif_t - | __init__(self, r) -> cif_t + | r: cif_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cif_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cif_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cif_t const & | | __repr__ = _swig_repr(self) | @@ -20479,12 +21436,14 @@ class cif_t(ceinsn_t) | | assign(self, *args) -> 'cif_t &' | assign(self, r) -> cif_t + | @param r (C++: const cif_t &) | | cleanup(self, *args) -> 'void' | cleanup(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cif_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20534,25 +21493,31 @@ class cinsn_t(citem_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cinsn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cinsn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cinsn_t const & | | __init__(self, *args) | __init__(self) -> cinsn_t - | __init__(self, r) -> cinsn_t + | r: cinsn_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cinsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cinsn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cinsn_t const & | | __repr__ = _swig_repr(self) | @@ -20594,92 +21559,149 @@ class cinsn_t(citem_t) | | _print(self, *args) -> 'void' | _print(self, indent, vp, use_curly=CALC_CURLY_BRACES) + | 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) + | r: cinsn_t * | | _set_casm(self, *args) -> 'void' | _set_casm(self, _v) + | _v: casm_t * | | _set_cblock(self, *args) -> 'void' | _set_cblock(self, _v) + | _v: cblock_t * | | _set_cdo(self, *args) -> 'void' | _set_cdo(self, _v) + | _v: cdo_t * | | _set_cexpr(self, *args) -> 'void' | _set_cexpr(self, _v) + | _v: cexpr_t * | | _set_cfor(self, *args) -> 'void' | _set_cfor(self, _v) + | _v: cfor_t * | | _set_cgoto(self, *args) -> 'void' | _set_cgoto(self, _v) + | _v: cgoto_t * | | _set_cif(self, *args) -> 'void' | _set_cif(self, _v) + | _v: cif_t * | | _set_creturn(self, *args) -> 'void' | _set_creturn(self, _v) + | _v: creturn_t * | | _set_cswitch(self, *args) -> 'void' | _set_cswitch(self, _v) + | _v: cswitch_t * | | _set_cwhile(self, *args) -> 'void' | _set_cwhile(self, _v) + | _v: cwhile_t * | | assign(self, *args) -> 'cinsn_t &' | assign(self, r) -> cinsn_t + | @param r (C++: const cinsn_t &) | | 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 '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. + | | collect_free_breaks(self, breaks) -> bool + | @param breaks: pointer to the variable where the vector of all found + | free break statements is returned. This argument can + | be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free break statements have been found | | collect_free_continues(self, *args) -> '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. + | | collect_free_continues(self, continues) -> bool + | @param continues: pointer to the variable where the vector of all + | found free continue statements is returned. This + | argument can be NULL. (C++: cinsnptrvec_t *) + | @return: true if some free continue statements have been found | | compare(self, *args) -> 'int' | compare(self, r) -> int + | 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' + | Check if the statement contains a statement of the specified type. + | | contains_insn(self, type, times=1) -> bool + | @param type: statement opcode to look for (C++: ctype_t) + | @param times: how many times TYPE should be present (C++: int) + | @return: true if the statement has at least TIMES children with opcode + | == TYPE | | create_if(self, *args) -> 'cif_t &' + | Create a new if-statement. The current statement must be a block. The + | new statement will be appended to it. + | | create_if(self, cnd) -> cif_t + | @param cnd: if condition. It will be deleted after being copied. (C++: + | cexpr_t *) | | is_epilog(self) | | is_ordinary_flow(self, *args) -> 'bool' - | is_ordinary_flow(self) -> bool + | Check if the statement passes execution to the next statement. | | new_insn(self, *args) -> 'cinsn_t &' + | Create a new statement. The current statement must be a block. The new + | statement will be appended to it. + | | new_insn(self, insn_ea) -> cinsn_t + | @param insn_ea: statement address (C++: ea_t) | | print1(self, *args) -> 'void' + | Print the statement into one line. Currently this function is not + | available. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: 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 + | insn: cinsn_t const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -20750,22 +21772,37 @@ class cinsn_t(citem_t) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | 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 (C++: ea_t) | | find_parent_of(self, *args) -> 'citem_t *' + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) -> 'bool' - | is_expr(self) -> bool + | Is an expression? | | replace_by(self, o) | @@ -20805,6 +21842,7 @@ 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 + insn: cinsn_t const * Help on class cinsnptrvec_t in module ida_hexrays: @@ -20815,13 +21853,15 @@ class cinsnptrvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< cinsn_t * > const & | | __getitem__(self, *args) -> 'cinsn_t *const &' | __getitem__(self, i) -> cinsn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> cinsnptrvec_t - | __init__(self, x) -> cinsnptrvec_t + | 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 +21870,25 @@ class cinsnptrvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< cinsn_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: cinsn_t *const & | | __swig_destroy__ = delete_cinsnptrvec_t(...) | delete_cinsnptrvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: cinsn_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: cinsn_t *const & | | append = push_back(self, *args) -> 'cinsn_t *&' | @@ -20871,49 +21916,70 @@ class cinsnptrvec_t(builtins.object) | | erase(self, *args) -> 'qvector< cinsn_t * >::iterator' | erase(self, it) -> qvector< cinsn_t * >::iterator + | it: qvector< cinsn_t * >::iterator + | + | | erase(self, first, last) -> qvector< cinsn_t * >::iterator + | first: qvector< cinsn_t * >::iterator + | 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 + | x: cinsn_t *const & + | + | | find(self, x) -> qvector< cinsn_t * >::const_iterator + | x: cinsn_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: cinsn_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: cinsn_t ** + | len: size_t | | insert(self, *args) -> 'qvector< cinsn_t * >::iterator' | insert(self, it, x) -> qvector< cinsn_t * >::iterator + | it: qvector< cinsn_t * >::iterator + | x: cinsn_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'cinsn_t *&' | push_back(self, x) - | push_back(self) -> cinsn_t *& + | x: cinsn_t *const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: cinsn_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< cinsn_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -20944,7 +22010,7 @@ class citem_cmt_t(builtins.object) | | __init__(self, *args) | __init__(self) -> citem_cmt_t - | __init__(self, s) -> citem_cmt_t + | s: char const * | | __repr__ = _swig_repr(self) | @@ -20981,25 +22047,36 @@ class citem_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: citem_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: citem_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: citem_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _op) -> citem_locator_t + | _ea: ea_t + | _op: enum ctype_t + | + | | __init__(self, i) -> citem_locator_t + | i: citem_t const * | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: citem_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: citem_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: citem_locator_t const & | | __repr__ = _swig_repr(self) | @@ -21008,6 +22085,7 @@ class citem_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: citem_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21041,7 +22119,7 @@ class citem_t(builtins.object) | | __init__(self, *args) | __init__(self) -> citem_t - | __init__(self, o) -> citem_t + | o: enum ctype_t | | __repr__ = _swig_repr(self) | @@ -21076,30 +22154,53 @@ class citem_t(builtins.object) | | _set_op(self, *args) -> 'void' | _set_op(self, v) + | v: enum ctype_t | | contains_expr(self, *args) -> 'bool' + | Does the item contain an expression? + | | contains_expr(self, e) -> bool + | @param e (C++: const cexpr_t *) | | 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 (C++: ea_t) | | find_parent_of(self, *args) -> 'citem_t *' + | Find parent of the specified item. + | | find_parent_of(self, sitem) -> citem_t + | @param sitem: Item to find the parent of. The search will be performed + | among the children of the item pointed by this . (C++: + | const citem_t *) + | @return: NULL if not found + | + | | find_parent_of(self, item) -> citem_t + | item: citem_t const * + | @return: NULL if not found | | is_expr(self, *args) -> 'bool' - | is_expr(self) -> bool + | Is an expression? | | print1(self, *args) -> 'void' + | Print item into one line. + | | print1(self, func) + | @param func: parent function. This argument is used to find out the + | referenced variable names. (C++: const cfunc_t *) + | @return: length of the generated text. | | replace_by(self, o) | | swap(self, *args) -> 'void' + | Swap two 'citem_t' . + | | swap(self, r) + | @param r (C++: citem_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21147,9 +22248,6 @@ citem_to_specific_type(self) 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: @@ -21166,8 +22264,11 @@ class cloop_t(ceinsn_t) | | __init__(self, *args) | __init__(self) -> cloop_t - | __init__(self, b) -> cloop_t + | b: cinsn_t * + | + | | __init__(self, r) -> cloop_t + | r: cloop_t const & | | __repr__ = _swig_repr(self) | @@ -21176,6 +22277,7 @@ class cloop_t(ceinsn_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -21201,16 +22303,20 @@ class cloop_t(ceinsn_t) | expr | ceinsn_t_expr_get(self) -> cexpr_t +Help on function close_hexrays_waitbox in module ida_hexrays: + +close_hexrays_waitbox(*args) -> 'void' + 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 *) - @return: false if failed + close_pseudocode(f) -> bool + @param f: pointer to window (C++: TWidget *) + @return: false if failed Help on class cnumber_t in module ida_hexrays: @@ -21221,24 +22327,31 @@ class cnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cnumber_t const & | | __init__(self, *args) | __init__(self, _opnum=0) -> cnumber_t + | _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cnumber_t const & | | __repr__ = _swig_repr(self) | @@ -21247,15 +22360,28 @@ class cnumber_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, type, parent=None, nice_stroff=None) + | type: tinfo_t const & + | parent: citem_t const * + | nice_stroff: bool * | | assign(self, *args) -> 'void' + | Assign new value + | | assign(self, v, nbytes, sign) + | @param v: new value (C++: uint64) + | @param nbytes: size of the new value in bytes (C++: int) + | @param sign: sign of the value (C++: type_sign_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cnumber_t const & | | value(self, *args) -> 'uint64' + | Get value. This function will properly extend the number sign to + | 64bits depending on the type sign. + | | value(self, type) -> uint64 + | @param type (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21287,10 +22413,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) | @@ -21298,20 +22422,62 @@ class codegen_t(builtins.object) | delete_codegen_t(self) | | analyze_prolog(self, *args) -> 'merror_t' + | Analyze prolog/epilog of the function to decompile. If prolog is + | found, allocate and fill 'mba->pi' structure. + | | analyze_prolog(self, fc, reachable) -> merror_t + | @param fc: flow chart (C++: const class qflow_chart_t &) + | @param reachable: bitmap of reachable blocks (C++: const class + | bitset_t &) + | @return: error code | | emit(self, *args) -> 'minsn_t *' + | Emit one microinstruction. The L, R, D arguments usually mean the + | register number. However, they depend on CODE. For example:for m_goto + | and m_jcnd L is the target addressfor m_ldc L is the constant value to + | load + | | emit(self, code, width, l, r, d, offsize) -> minsn_t + | @param code (C++: mcode_t) + | @param width (C++: int) + | @param l (C++: uval_t) + | @param r (C++: uval_t) + | @param d (C++: uval_t) + | @param offsize (C++: int) + | @return: created microinstruction. can be NULL if the instruction got + | immediately optimized away. + | + | | emit(self, code, l, r, d) -> minsn_t + | @param code (C++: mcode_t) + | @param l (C++: uval_t) + | @param r (C++: uval_t) + | @param d (C++: uval_t) + | @return: created microinstruction. can be NULL if the instruction got + | immediately optimized away. | | emit_micro_mvm(self, *args) -> 'minsn_t *' + | Emit one microinstruction. This variant takes a data type not a size. + | | emit_micro_mvm(self, code, dtype, l, r, d, offsize) -> minsn_t + | @param code (C++: 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 | | load_operand(self, *args) -> 'mreg_t' + | Generate microcode to load one operand. + | | load_operand(self, opnum) -> mreg_t + | @param opnum (C++: int) + | + | microgen_completed(self, *args) -> 'void' + | This method is called when the microcode generation is done. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21335,7 +22501,7 @@ class codegen_t(builtins.object) | codegen_t_mb_get(self) -> mblock_t | | mba - | codegen_t_mba_get(self) -> mbl_array_t + | codegen_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -21343,20 +22509,20 @@ class codegen_t(builtins.object) 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) + convert_to_user_call(udc, cdg) -> merror_t + @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) -> 'qstring' create_field_name(type, offset=BADADDR) -> qstring + @param type (C++: const tinfo_t &) + @param offset (C++: uval_t) Help on function create_helper in module ida_hexrays: @@ -21365,15 +22531,20 @@ create_helper(*args) Help on function create_typedef in module ida_hexrays: create_typedef(*args) -> 'tinfo_t' - 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. + create_typedef(name) -> tinfo_t + @param name: type name (C++: const char *) + @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 + n: int + @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. Help on class creturn_t in module ida_hexrays: @@ -21389,24 +22560,30 @@ class creturn_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: creturn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: creturn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: creturn_t const & | | __init__(self, *args) | __init__(self) -> creturn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: creturn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: creturn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: creturn_t const & | | __repr__ = _swig_repr(self) | @@ -21415,6 +22592,7 @@ class creturn_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: creturn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21453,24 +22631,30 @@ class cswitch_t(ceinsn_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cswitch_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cswitch_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cswitch_t const & | | __init__(self, *args) | __init__(self) -> cswitch_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cswitch_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cswitch_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cswitch_t const & | | __repr__ = _swig_repr(self) | @@ -21479,6 +22663,7 @@ class cswitch_t(ceinsn_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cswitch_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21518,24 +22703,33 @@ class ctext_position_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ctext_position_t const & | | __init__(self, *args) | __init__(self, _lnnum=-1, _x=0, _y=0) -> ctext_position_t + | _lnnum: int + | _x: int + | _y: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -21544,9 +22738,13 @@ class ctext_position_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' + | Is the cursor in the variable/type declaration area? + | | in_ctree(self, hdrlines) -> bool + | @param hdrlines: Number of lines of the declaration area (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21656,19 +22854,32 @@ class ctree_item_t(builtins.object) | _get_l(self) -> lvar_t | | get_ea(self, *args) -> 'ea_t' - | get_ea(self) -> ea_t + | Get address of the current item. Each ctree item has an address. | | get_label_num(self, *args) -> 'int' + | Get label number of the current item. + | | get_label_num(self, gln_flags) -> int + | @param gln_flags: Combination of get_label_num control bits (C++: + | int) + | @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. | | get_memptr(self, *args) -> 'member_t *' + | Get pointer to structure member. If the current item is a structure + | field, this function will return pointer to its definition. + | | get_memptr(self, p_sptr=None) -> member_t * + | @param p_sptr: pointer to the variable where the pointer to the parent + | structure is returned. This parameter can be NULL. + | (C++: struc_t **) + | @return: NULL if failed | | is_citem(self, *args) -> 'bool' - | is_citem(self) -> bool + | Is the current item is a ctree item? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21707,13 +22918,15 @@ class ctree_items_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< citem_t * > const & | | __getitem__(self, *args) -> 'citem_t *const &' | __getitem__(self, i) -> citem_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ctree_items_t - | __init__(self, x) -> ctree_items_t + | 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 +22935,25 @@ class ctree_items_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< citem_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: citem_t *const & | | __swig_destroy__ = delete_ctree_items_t(...) | delete_ctree_items_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: citem_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: citem_t *const & | | append = push_back(self, *args) -> 'citem_t *&' | @@ -21763,49 +22981,70 @@ class ctree_items_t(builtins.object) | | erase(self, *args) -> 'qvector< citem_t * >::iterator' | erase(self, it) -> qvector< citem_t * >::iterator + | it: qvector< citem_t * >::iterator + | + | | erase(self, first, last) -> qvector< citem_t * >::iterator + | first: qvector< citem_t * >::iterator + | 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 + | x: citem_t *const & + | + | | find(self, x) -> qvector< citem_t * >::const_iterator + | x: citem_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: citem_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: citem_t ** + | len: size_t | | insert(self, *args) -> 'qvector< citem_t * >::iterator' | insert(self, it, x) -> qvector< citem_t * >::iterator + | it: qvector< citem_t * >::iterator + | x: citem_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'citem_t *&' | push_back(self, x) - | push_back(self) -> citem_t *& + | x: citem_t *const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: citem_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< citem_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -21843,6 +23082,7 @@ class ctree_parentee_t(ctree_visitor_t) | | __init__(self, *args) | __init__(self, post=False) -> ctree_parentee_t + | post: bool | | __repr__ = _swig_repr(self) | @@ -21850,7 +23090,12 @@ class ctree_parentee_t(ctree_visitor_t) | delete_ctree_parentee_t(self) | | recalc_parent_types(self, *args) -> 'bool' - | recalc_parent_types(self) -> bool + | Recalculate types of parent node. 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 it is + | recommended to restart the traversal because the information about + | parent nodes is stale. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -21862,55 +23107,101 @@ class ctree_parentee_t(ctree_visitor_t) | Methods inherited from ctree_visitor_t: | | apply_to(self, *args) -> 'int' + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> '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. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @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' + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> '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. + | | leave_insn(self, arg0) -> int + | 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 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> '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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors inherited from ctree_visitor_t: @@ -21938,6 +23229,7 @@ class ctree_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, _flags) -> ctree_visitor_t + | _flags: int | | __repr__ = _swig_repr(self) | @@ -21945,55 +23237,101 @@ class ctree_visitor_t(builtins.object) | delete_ctree_visitor_t(self) | | apply_to(self, *args) -> 'int' + | Traverse ctree. The traversal will start at the specified item and + | continue until of one the visit_...() functions return a non-zero + | value. + | | apply_to(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @return: 0 or a non-zero value returned by a visit_...() function | | apply_to_exprs(self, *args) -> '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. + | | apply_to_exprs(self, item, parent) -> int + | @param item: root of the ctree to traverse (C++: citem_t *) + | @param parent: parent of the specified item. can be specified as NULL. + | (C++: citem_t *) + | @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' + | 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. + | | leave_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | leave_insn(self, *args) -> '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. + | | leave_insn(self, arg0) -> int + | 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 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. + | | visit_expr(self, arg0) -> int + | arg0: cexpr_t * + | @return: 0 to continue the traversal, nonzero to stop. | | visit_insn(self, *args) -> '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. + | | visit_insn(self, arg0) -> int + | arg0: cinsn_t * + | @return: 0 to continue the traversal, nonzero to stop. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22028,24 +23366,30 @@ class cwhile_t(cloop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: cwhile_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: cwhile_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: cwhile_t const & | | __init__(self, *args) | __init__(self) -> cwhile_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: cwhile_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: cwhile_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: cwhile_t const & | | __repr__ = _swig_repr(self) | @@ -22054,6 +23398,7 @@ class cwhile_t(cloop_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: cwhile_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22071,6 +23416,7 @@ class cwhile_t(cloop_t) | | assign(self, *args) -> 'cloop_t &' | assign(self, r) -> cloop_t + | @param r (C++: const cloop_t &) | | cleanup(self, *args) -> 'void' | cleanup(self) @@ -22097,6 +23443,7 @@ Help on function debug_hexrays_ctree in module ida_hexrays: debug_hexrays_ctree(*args) -> 'void' debug_hexrays_ctree(msg) + msg: char const * Help on function decompile in module ida_hexrays: @@ -22106,35 +23453,31 @@ decompile(ea, hf=None, flags=0) Help on function decompile_func in module ida_hexrays: decompile_func(*args) -> 'cfuncptr_t' - 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. + decompile_func(pfn, hf, decomp_flags=0) -> cfuncptr_t + @param pfn: pointer to function to decompile (C++: func_t *) + @param hf: extended error information (if failed) (C++: + hexrays_failure_t *) + @param decomp_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) -> '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 + decompile_many(outfile, funcaddrs, flags) -> bool + @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: @@ -22143,116 +23486,88 @@ dereference(e, ptrsize, is_float=False) 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 *) + dstr(tif) -> char const * + @param tif (C++: const tinfo_t *) 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) + dummy_ptrtype(ptrsize, isfp) -> tinfo_t + @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_iterator_t' - eamap_begin(map) -> eamap_iterator_t - - Get iterator pointing to the beginning of eamap_t. - - @param map (C++: const eamap_t *) + eamap_begin(map) -> eamap_iterator_t + @param map (C++: const eamap_t *) Help on function eamap_clear in module ida_hexrays: eamap_clear(*args) -> 'void' - eamap_clear(map) - - Clear eamap_t. - - @param map (C++: eamap_t *) + eamap_clear(map) + @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_end(map) -> eamap_iterator_t + @param map (C++: const eamap_t *) 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) + eamap_erase(map, p) + @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 &) + eamap_find(map, key) -> eamap_iterator_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) -> 'ea_t const &' - eamap_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: eamap_iterator_t) + eamap_first(p) -> ea_t const & + @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 *) + eamap_free(map) + @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 &) + eamap_insert(map, key, val) -> eamap_iterator_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: @@ -22263,12 +23578,14 @@ class eamap_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: eamap_iterator_t const & | | __init__(self, *args) | __init__(self) -> eamap_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: eamap_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -22298,54 +23615,39 @@ class eamap_iterator_t(builtins.object) 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) + eamap_next(p) -> 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) + eamap_prev(p) -> 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) + eamap_second(p) -> cinsnptrvec_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 *) + eamap_size(map) -> size_t + @param map (C++: eamap_t *) Help on class eamap_t in module ida_hexrays: @@ -22356,9 +23658,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 +23678,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 +23714,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 +23729,36 @@ 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 + | _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -22503,9 +23850,11 @@ class fnum_array(builtins.object) | | __getitem__(self, *args) -> 'unsigned short const &' | __getitem__(self, i) -> unsigned short const & + | i: size_t | | __init__(self, *args) | __init__(self, data) -> fnum_array + | data: unsigned short (&)[6] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -22517,6 +23866,8 @@ class fnum_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: unsigned short const & | | __swig_destroy__ = delete_fnum_array(...) | delete_fnum_array(self) @@ -22545,24 +23896,30 @@ class fnumber_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: fnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: fnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: fnumber_t const & | | __init__(self, *args) | __init__(self) -> fnumber_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: fnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: fnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: fnumber_t const & | | __repr__ = _swig_repr(self) | @@ -22577,6 +23934,7 @@ class fnumber_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: fnumber_t const & | | dereference_const_uint16(self, *args) -> 'uint16 const *' | dereference_const_uint16(self) -> uint16 const * @@ -22623,7 +23981,12 @@ class gco_info_t(builtins.object) | delete_gco_info_t(self) | | append_to_list(self, *args) -> 'bool' + | Append operand info to LIST. This function converts IDA register + | number or stack offset to a decompiler list. + | | append_to_list(self, list, mba) -> bool + | @param list: list to append to (C++: mlist_t *) + | @param mba: microcode object (C++: const mba_t *) | | is_def(self, *args) -> 'bool' | is_def(self) -> bool @@ -22657,138 +24020,115 @@ class gco_info_t(builtins.object) 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 *' 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. + gen_microcode(mbr, hf, retlist=None, decomp_flags=0, reqmat=MMAT_GLBOPT3) -> mba_t + @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 decomp_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) -> 'char const *' get_ctype_name(op) -> char const * + @param op (C++: 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 - return true. + returns true. - @param out (C++: gco_info_t *) + get_current_operand(out) -> bool + @param out (C++: gco_info_t *) 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) - @return: type info object + get_float_type(width) -> tinfo_t + @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) -> 'char const *' - 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) -> '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: size of the type in bytes (C++: int) - @param sign: sign of the type (C++: type_sign_t) + get_int_type_by_width_and_sign(srcwidth, sign) -> tinfo_t + @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) -> '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: 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 + get_member_type(mptr, type) -> bool + @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) -> '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 *) - @return: the error address + get_merror_desc(code, mba) -> str + @param code: Microcode error codes (C++: merror_t) + @param mba: the microcode array (C++: mba_t *) + @return: the error address Help on function get_mreg_name in module ida_hexrays: get_mreg_name(*args) -> 'qstring *' + Get the microregister name. + 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. + @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) -> '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) + get_op_signness(op) -> type_sign_t + @param op (C++: 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 (C++: 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 @@ -22799,65 +24139,54 @@ get_temp_regs(*args) -> 'mlist_t const &' 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) - @return: success + get_type(id, tif, guess) -> bool + @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) -> '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: size of the type in bytes (C++: int) + get_unk_type(size) -> tinfo_t + @param size: size of the type in bytes (C++: int) Help on function get_unsigned_mcode in module ida_hexrays: get_unsigned_mcode(*args) -> 'mcode_t' get_unsigned_mcode(code) -> mcode_t + @param code (C++: 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: pointer to window (C++: TWidget *) - @return: a vdui_t *, or NULL + get_widget_vdui(f) -> vdui_t + @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) -> 'minsn_t *' - getb_reginsn(ins) -> minsn_t - - Skip assertions backward. - - @param ins (C++: const minsn_t *) + getb_reginsn(ins) -> minsn_t + @param ins (C++: const 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 *) + getf_reginsn(ins) -> minsn_t + @param ins (C++: const minsn_t *) Help on class graph_chains_t in module ida_hexrays: @@ -22880,19 +24209,26 @@ class graph_chains_t(block_chains_vec_t) | delete_graph_chains_t(self) | | acquire(self, *args) -> 'void' - | acquire(self) + | Lock the chains. | | for_all_chains(self, *args) -> 'int' + | Visit all chains + | | for_all_chains(self, cv, gca_flags) -> int + | @param cv: chain visitor (C++: chain_visitor_t &) + | @param gca_flags: combination of GCA_ bits (C++: int) | | 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 (C++: graph_chains_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -22905,6 +24241,7 @@ class graph_chains_t(block_chains_vec_t) | | __getitem__(self, *args) -> 'block_chains_t const &' | __getitem__(self, i) -> block_chains_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -22914,9 +24251,12 @@ class graph_chains_t(block_chains_vec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: block_chains_t const & | | at(self, *args) -> 'block_chains_t const &' | at(self, _idx) -> block_chains_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -22940,7 +24280,12 @@ class graph_chains_t(block_chains_vec_t) | | erase(self, *args) -> 'qvector< block_chains_t >::iterator' | erase(self, it) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | + | | erase(self, first, last) -> block_chains_t + | first: qvector< block_chains_t >::iterator + | last: qvector< block_chains_t >::iterator | | extract(self, *args) -> 'block_chains_t *' | extract(self) -> block_chains_t @@ -22950,29 +24295,40 @@ class graph_chains_t(block_chains_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=block_chains_t()) + | x: block_chains_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: block_chains_t * + | len: size_t | | insert(self, *args) -> 'qvector< block_chains_t >::iterator' | insert(self, it, x) -> block_chains_t + | it: qvector< block_chains_t >::iterator + | x: block_chains_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'block_chains_t &' | push_back(self, x) - | push_back(self) -> block_chains_t + | x: block_chains_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: block_chains_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -22992,18 +24348,22 @@ class graph_chains_t(block_chains_vec_t) 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) + has_cached_cfunc(ea) -> bool + @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 (C++: mcode_t) Help on function hexrays_alloc in module ida_hexrays: hexrays_alloc(*args) -> 'void *' hexrays_alloc(size) -> void * + @param size (C++: size_t) Help on class hexrays_failure_t in module ida_hexrays: @@ -23014,8 +24374,15 @@ class hexrays_failure_t(builtins.object) | | __init__(self, *args) | __init__(self) -> hexrays_failure_t - | __init__(self, c, ea, buf=None) -> hexrays_failure_t + | c: enum merror_t + | ea: ea_t + | buf: char const * + | + | | __init__(self, c, ea, buf) -> hexrays_failure_t + | c: enum merror_t + | ea: ea_t + | buf: qstring const & | | __repr__ = _swig_repr(self) | @@ -23052,6 +24419,7 @@ Help on function hexrays_free in module ida_hexrays: hexrays_free(*args) -> 'void' hexrays_free(ptr) + @param ptr (C++: void *) Help on class hexwarn_t in module ida_hexrays: @@ -23062,24 +24430,30 @@ class hexwarn_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: hexwarn_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: hexwarn_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: hexwarn_t const & | | __init__(self, *args) | __init__(self) -> hexwarn_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: hexwarn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: hexwarn_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: hexwarn_t const & | | __repr__ = _swig_repr(self) | @@ -23088,6 +24462,7 @@ class hexwarn_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: hexwarn_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23124,13 +24499,15 @@ class hexwarns_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< hexwarn_t > const & | | __getitem__(self, *args) -> 'hexwarn_t const &' | __getitem__(self, i) -> hexwarn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> hexwarns_t - | __init__(self, x) -> hexwarns_t + | 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 +24516,25 @@ class hexwarns_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< hexwarn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: hexwarn_t const & | | __swig_destroy__ = delete_hexwarns_t(...) | delete_hexwarns_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: hexwarn_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: hexwarn_t const & | | append = push_back(self, *args) -> 'hexwarn_t &' | @@ -23180,52 +24562,74 @@ class hexwarns_t(builtins.object) | | erase(self, *args) -> 'qvector< hexwarn_t >::iterator' | erase(self, it) -> hexwarn_t + | it: qvector< hexwarn_t >::iterator + | + | | erase(self, first, last) -> hexwarn_t + | first: qvector< hexwarn_t >::iterator + | 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 + | x: hexwarn_t const & + | + | | find(self, x) -> hexwarn_t + | x: hexwarn_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=hexwarn_t()) + | x: hexwarn_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: hexwarn_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: hexwarn_t * + | len: size_t | | insert(self, *args) -> 'qvector< hexwarn_t >::iterator' | insert(self, it, x) -> hexwarn_t + | it: qvector< hexwarn_t >::iterator + | x: hexwarn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'hexwarn_t &' | push_back(self, x) - | push_back(self) -> hexwarn_t + | x: hexwarn_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: hexwarn_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< hexwarn_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -23261,7 +24665,15 @@ class history_item_t(ctext_position_t) | | __init__(self, *args) | __init__(self, _ea=BADADDR, _lnnum=-1, _x=0, _y=0) -> history_item_t + | _ea: ea_t + | _lnnum: int + | _x: int + | _y: int + | + | | __init__(self, _ea, p) -> history_item_t + | _ea: ea_t + | p: ctext_position_t const & | | __repr__ = _swig_repr(self) | @@ -23285,27 +24697,37 @@ class history_item_t(ctext_position_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ctext_position_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ctext_position_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ctext_position_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ctext_position_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ctext_position_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ctext_position_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: ctext_position_t const & | | in_ctree(self, *args) -> 'bool' + | Is the cursor in the variable/type declaration area? + | | in_ctree(self, hdrlines) -> bool + | @param hdrlines: Number of lines of the declaration area (C++: int) | | ---------------------------------------------------------------------- | Data descriptors inherited from ctext_position_t: @@ -23358,16 +24780,18 @@ class history_t(qvector_history_t) | | append = push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | at = __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | i: size_t | | pop(self, *args) -> 'history_item_t' | pop(self) -> history_item_t | | push(self, *args) -> 'void' | push(self, v) + | v: history_item_t const & | | top(self, *args) -> 'history_item_t &' | top(self) -> history_item_t @@ -23384,21 +24808,28 @@ class history_t(qvector_history_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | i: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< history_item_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: history_item_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: history_item_t const & | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -23422,52 +24853,74 @@ class history_t(qvector_history_t) | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t + | it: qvector< history_item_t >::iterator + | + | | erase(self, first, last) -> history_item_t + | first: qvector< history_item_t >::iterator + | 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 + | x: history_item_t const & + | + | | find(self, x) -> history_item_t + | x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) + | x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: history_item_t * + | len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t + | it: qvector< history_item_t >::iterator + | x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: history_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -23489,16 +24942,14 @@ class history_t(qvector_history_t) Help on function init_hexrays_plugin in module ida_hexrays: init_hexrays_plugin(*args) -> 'bool' - 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. + init_hexrays_plugin(flags=0) -> bool + @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: @@ -23507,342 +24958,343 @@ install_hexrays_callback(callback) 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' 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) + install_microcode_filter(filter, install=True) -> bool + @param filter: - microcode generator object (C++: microcode_filter_t + *) + @param install: - TRUE - register the object, FALSE - unregister (C++: + bool) + @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) + is_additive(op) -> bool + @param op (C++: 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) + is_assignment(op) -> bool + @param op (C++: 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) + is_binary(op) -> bool + @param op (C++: 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) + is_bitop(op) -> bool + @param op (C++: 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 &) - @return: true if the type is a boolean type + is_bool_type(type) -> bool + @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) -> 'bool' - is_break_consumer(op) -> bool - - Does a break statement influence the specified statement code? - - @param op (C++: ctype_t) + is_break_consumer(op) -> bool + @param op (C++: 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) + is_commutative(op) -> bool + @param op (C++: 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 &) + is_inplace_def(type) -> bool + @param type (C++: const tinfo_t &) Help on function is_kreg in module ida_hexrays: is_kreg(*args) -> '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_kreg(r) -> bool - - - 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) + is_logical(op) -> bool + @param op (C++: 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) + is_loop(op) -> bool + @param op (C++: 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) + is_lvalue(op) -> bool + @param op (C++: ctype_t) Help on function is_may_access in module ida_hexrays: is_may_access(*args) -> 'bool' is_may_access(maymust) -> bool + @param maymust (C++: maymust_t) Help on function is_mcode_addsub in module ida_hexrays: is_mcode_addsub(*args) -> 'bool' is_mcode_addsub(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_call in module ida_hexrays: is_mcode_call(*args) -> 'bool' is_mcode_call(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_commutative in module ida_hexrays: is_mcode_commutative(*args) -> 'bool' is_mcode_commutative(mcode) -> bool + @param mcode (C++: 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 (C++: 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 (C++: mcode_t) Help on function is_mcode_divmod in module ida_hexrays: is_mcode_divmod(*args) -> 'bool' is_mcode_divmod(op) -> bool + @param op (C++: mcode_t) Help on function is_mcode_fpu in module ida_hexrays: is_mcode_fpu(*args) -> 'bool' is_mcode_fpu(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_j1 in module ida_hexrays: is_mcode_j1(*args) -> 'bool' is_mcode_j1(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_jcond in module ida_hexrays: is_mcode_jcond(*args) -> 'bool' is_mcode_jcond(mcode) -> bool + @param mcode (C++: 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) + is_mcode_propagatable(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_set in module ida_hexrays: is_mcode_set(*args) -> 'bool' is_mcode_set(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_set1 in module ida_hexrays: is_mcode_set1(*args) -> 'bool' is_mcode_set1(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_shift in module ida_hexrays: is_mcode_shift(*args) -> 'bool' is_mcode_shift(mcode) -> bool + @param mcode (C++: mcode_t) Help on function is_mcode_xdsu in module ida_hexrays: is_mcode_xdsu(*args) -> 'bool' is_mcode_xdsu(mcode) -> bool + @param mcode (C++: 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) + is_multiplicative(op) -> bool + @param op (C++: 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) + is_nonbool_type(type) -> bool + @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) -> 'bool' - is_paf(t) -> bool - - Is a pointer, array, or function type? - - @param t (C++: type_t) + is_paf(t) -> bool + @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) + is_prepost(op) -> bool + @param op (C++: 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) + is_ptr_or_array(t) -> bool + @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) + is_relational(op) -> bool + @param op (C++: ctype_t) Help on function is_signed_mcode in module ida_hexrays: is_signed_mcode(*args) -> 'bool' is_signed_mcode(code) -> bool + @param code (C++: 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. + is_small_udt(tif) -> bool + @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) -> 'bool' - is_type_correct(ptr) -> bool - - Verify a type string. - @param ptr (C++: const type_t *) - @return: true if type string is correct + is_type_correct(ptr) -> bool + @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) -> 'bool' - is_unary(op) -> bool - - Is unary operator? - - @param op (C++: ctype_t) + is_unary(op) -> bool + @param op (C++: ctype_t) Help on function is_unsigned_mcode in module ida_hexrays: is_unsigned_mcode(*args) -> 'bool' is_unsigned_mcode(code) -> bool + @param code (C++: 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 + | n: bitset_t::iterator const & + | + | __init__(self, *args) + | __init__(self, n=-1) -> iterator + | n: int + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, n) -> bool + | 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 +25310,32 @@ class ivl_t(uval_ivl_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ivl_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ivl_t const & | | __init__(self, *args) | __init__(self, _off, _size) -> ivl_t + | _off: uval_t + | _size: uval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -23887,9 +25347,11 @@ class ivl_t(uval_ivl_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: ivl_t const & | | contains(self, *args) -> 'bool' | contains(self, off2) -> bool + | @param off2 (C++: uval_t) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -23899,15 +25361,19 @@ class ivl_t(uval_ivl_t) | | extend_to_cover(self, *args) -> 'bool' | extend_to_cover(self, r) -> bool + | @param r (C++: const ivl_t &) | | includes(self, *args) -> 'bool' | includes(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) | | intersect(self, *args) -> 'void' | intersect(self, r) + | @param r (C++: const ivl_t &) | | overlap(self, *args) -> 'bool' | overlap(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -23997,25 +25463,31 @@ class ivlset_t(uval_ivl_ivlset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ivlset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: ivlset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: ivlset_t const & | | __init__(self, *args) | __init__(self) -> ivlset_t - | __init__(self, ivl) -> ivlset_t + | ivl: ivl_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: ivlset_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: ivlset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ivlset_t const & | | __repr__ = _swig_repr(self) | @@ -24027,17 +25499,29 @@ class ivlset_t(uval_ivl_ivlset_t) | | add(self, *args) -> 'bool' | add(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) + | + | | add(self, ea, size) -> bool + | ea: ea_t + | size: asize_t + | + | | add(self, ivs) -> bool + | ivs: ivlset_t const & | | addmasked(self, *args) -> 'bool' | addmasked(self, ivs, mask) -> bool + | @param ivs (C++: const ivlset_t &) + | @param mask (C++: const ivl_t &) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: ivlset_t const & | | contains(self, *args) -> 'bool' | contains(self, off) -> bool + | @param off (C++: uval_t) | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -24047,18 +25531,33 @@ class ivlset_t(uval_ivl_ivlset_t) | | has_common(self, *args) -> 'bool' | has_common(self, ivl, strict=False) -> bool + | @param ivl (C++: const ivl_t &) + | @param strict (C++: bool) + | + | | has_common(self, ivs) -> bool + | ivs: ivlset_t const & | | includes(self, *args) -> 'bool' | includes(self, ivs) -> bool + | @param ivs (C++: const ivlset_t &) | | intersect(self, *args) -> 'bool' | intersect(self, ivs) -> bool + | @param ivs (C++: const ivlset_t &) | | sub(self, *args) -> 'bool' | sub(self, ivl) -> bool + | @param ivl (C++: const ivl_t &) + | + | | sub(self, ea, size) -> bool + | ea: ea_t + | size: asize_t + | + | | sub(self, ivs) -> bool + | ivs: ivlset_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24093,6 +25592,7 @@ class ivlset_t(uval_ivl_ivlset_t) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t + | idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -24107,10 +25607,12 @@ class ivlset_t(uval_ivl_ivlset_t) | set_all_values(self) | | single_value(self, *args) -> 'bool' - | single_value(self, v) -> bool + | single_value(self) -> bool + | v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) + | r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors inherited from uval_ivl_ivlset_t: @@ -24125,11 +25627,14 @@ Help on function jcnd2set in module ida_hexrays: jcnd2set(*args) -> 'mcode_t' jcnd2set(code) -> mcode_t + @param code (C++: mcode_t) Help on function lexcompare in module ida_hexrays: lexcompare(*args) -> 'int' lexcompare(a, b) -> int + a: mop_t const & + b: mop_t const & Help on function lnot in module ida_hexrays: @@ -24144,25 +25649,32 @@ class lvar_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: lvar_locator_t const & | | __init__(self, *args) | __init__(self) -> lvar_locator_t - | __init__(self, loc, ea) -> lvar_locator_t + | loc: vdloc_t const & + | ea: ea_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: lvar_locator_t const & | | __repr__ = _swig_repr(self) | @@ -24171,34 +25683,34 @@ class lvar_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | 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 information about scattered variable. | | get_stkoff(self, *args) -> 'sval_t' - | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. | | 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: @@ -24226,95 +25738,71 @@ class lvar_locator_t(builtins.object) 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_begin(map) -> lvar_mapping_iterator_t + @param map (C++: const lvar_mapping_t *) 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 *) + lvar_mapping_clear(map) + @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_end(map) -> lvar_mapping_iterator_t + @param map (C++: const lvar_mapping_t *) 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) + lvar_mapping_erase(map, p) + @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 &) + lvar_mapping_find(map, key) -> lvar_mapping_iterator_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_locator_t const &' - lvar_mapping_first(p) -> lvar_locator_t - - Get reference to the current map key. - - @param p (C++: lvar_mapping_iterator_t) + lvar_mapping_first(p) -> lvar_locator_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 *) + lvar_mapping_free(map) + @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 &) - @param val (C++: const lvar_locator_t &) + lvar_mapping_insert(map, key, val) -> lvar_mapping_iterator_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: @@ -24325,12 +25813,14 @@ class lvar_mapping_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: lvar_mapping_iterator_t const & | | __init__(self, *args) | __init__(self) -> lvar_mapping_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: lvar_mapping_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -24360,54 +25850,39 @@ class lvar_mapping_iterator_t(builtins.object) 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) + lvar_mapping_next(p) -> 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) + lvar_mapping_prev(p) -> 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) + lvar_mapping_second(p) -> lvar_locator_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 *) + lvar_mapping_size(map) -> size_t + @param map (C++: lvar_mapping_t *) Help on class lvar_mapping_t in module ida_hexrays: @@ -24426,6 +25901,7 @@ class lvar_mapping_t(builtins.object) | | at(self, *args) -> 'lvar_locator_t &' | at(self, _Keyval) -> lvar_locator_t + | _Keyval: lvar_locator_t const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -24451,25 +25927,37 @@ class lvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: lvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: lvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: lvar_ref_t const & | | __init__(self, *args) | __init__(self, m, i, o=0) -> lvar_ref_t + | m: mba_t * + | i: int + | o: sval_t + | + | | __init__(self, r) -> lvar_ref_t + | r: lvar_ref_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: lvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: lvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: lvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -24478,12 +25966,14 @@ class lvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: lvar_ref_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: lvar_ref_t &) | | var(self, *args) -> 'lvar_t &' - | var(self) -> lvar_t + | Retrieve the referenced variable. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24498,7 +25988,7 @@ class lvar_ref_t(builtins.object) | lvar_ref_t_idx_get(self) -> int | | mba - | lvar_ref_t_mba_get(self) -> mbl_array_t + | lvar_ref_t_mba_get(self) -> mba_t | | off | lvar_ref_t_off_get(self) -> sval_t @@ -24520,12 +26010,14 @@ class lvar_saved_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: lvar_saved_info_t const & | | __init__(self, *args) | __init__(self) -> lvar_saved_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: lvar_saved_info_t const & | | __repr__ = _swig_repr(self) | @@ -24615,13 +26107,15 @@ class lvar_saved_infos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< lvar_saved_info_t > const & | | __getitem__(self, *args) -> 'lvar_saved_info_t const &' | __getitem__(self, i) -> lvar_saved_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> lvar_saved_infos_t - | __init__(self, x) -> lvar_saved_infos_t + | 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 +26124,25 @@ class lvar_saved_infos_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< lvar_saved_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: lvar_saved_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: lvar_saved_info_t const & | | append = push_back(self, *args) -> 'lvar_saved_info_t &' | @@ -24671,52 +26170,74 @@ class lvar_saved_infos_t(builtins.object) | | erase(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | erase(self, it) -> lvar_saved_info_t + | it: qvector< lvar_saved_info_t >::iterator + | + | | erase(self, first, last) -> lvar_saved_info_t + | first: qvector< lvar_saved_info_t >::iterator + | 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 + | x: lvar_saved_info_t const & + | + | | find(self, x) -> lvar_saved_info_t + | x: lvar_saved_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_saved_info_t()) + | x: lvar_saved_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: lvar_saved_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: lvar_saved_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< lvar_saved_info_t >::iterator' | insert(self, it, x) -> lvar_saved_info_t + | it: qvector< lvar_saved_info_t >::iterator + | 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) - | push_back(self) -> lvar_saved_info_t + | x: lvar_saved_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_saved_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< lvar_saved_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -24752,7 +26273,8 @@ class lvar_t(lvar_locator_t) | | __init__(self, *args, **kwargs) | __init__(self) -> lvar_locator_t - | __init__(self, loc, ea) -> lvar_locator_t + | loc: vdloc_t const & + | ea: ea_t | | __repr__ = _swig_repr(self) | @@ -24760,10 +26282,19 @@ class lvar_t(lvar_locator_t) | delete_lvar_t(self) | | accepts_type(self, *args) -> 'bool' + | Check if the variable accept the specified type. Some types are + | forbidden (void, function types, wrong arrays, etc) + | | accepts_type(self, t, may_change_thisarg=False) -> bool + | @param t (C++: const tinfo_t &) + | @param may_change_thisarg (C++: bool) | | append_list(self, *args) -> 'void' + | Append local variable to mlist. + | | append_list(self, lst, pad_if_scattered=False) + | @param lst: list to append to (C++: mlist_t *) + | @param pad_if_scattered (C++: bool) | | clear_used(self, *args) -> 'void' | clear_used(self) @@ -24810,6 +26341,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) | @@ -24820,34 +26354,49 @@ class lvar_t(lvar_locator_t) | clr_user_type(self) | | has_common(self, *args) -> 'bool' + | Do variables overlap? + | | has_common(self, v) -> bool + | @param v (C++: const lvar_t &) | | has_common_bit(self, *args) -> 'bool' + | Does the variable overlap with the specified location? + | | has_common_bit(self, loc, width2) -> bool + | @param loc (C++: const vdloc_t &) + | @param width2 (C++: asize_t) | | has_regname(self, *args) -> 'bool' - | has_regname(self) -> bool + | Has a register name? (like _RAX) | | is_aliasable(self, *args) -> 'bool' + | Is the variable aliasable? + | | is_aliasable(self, mba) -> bool + | @param mba: ptr to the current mba_t Aliasable variables may be + | modified indirectly (through a pointer) (C++: const mba_t + | *) | | is_automapped(self, *args) -> 'bool' - | is_automapped(self) -> bool + | Was the variable automatically mapped to another variable? | | 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_thisarg(self, *args) -> 'bool' - | is_thisarg(self) -> bool + | Is 'this' argument of a C++ member function? + | + | is_used_byref(self, *args) -> 'bool' + | Was the address of the variable taken? | | set_arg_var(self, *args) -> 'void' | set_arg_var(self) @@ -24862,7 +26411,10 @@ class lvar_t(lvar_locator_t) | set_fake_var(self) | | set_final_lvar_type(self, *args) -> 'void' + | Set final variable type. + | | set_final_lvar_type(self, t) + | @param t (C++: const tinfo_t &) | | set_floating_var(self, *args) -> 'void' | set_floating_var(self) @@ -24871,7 +26423,17 @@ class lvar_t(lvar_locator_t) | set_forced_var(self) | | set_lvar_type(self, *args) -> '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. + | | set_lvar_type(self, t, may_fail=False) -> bool + | @param t: new type (C++: const tinfo_t &) + | @param may_fail: if false and type is bad, interr (C++: bool) + | @return: success | | set_mapdst_var(self, *args) -> 'void' | set_mapdst_var(self) @@ -24906,6 +26468,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) | @@ -24913,11 +26478,17 @@ class lvar_t(lvar_locator_t) | set_user_type(self) | | set_width(self, *args) -> '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()' . + | | set_width(self, w, svw_flags=0) -> bool + | @param w: new width (C++: int) + | @param svw_flags: combination of SVW_... bits (C++: int) + | @return: success | | type(self, *args) -> 'tinfo_t &' - | type(self) -> tinfo_t - | type(self) -> tinfo_t + | Get variable type. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -24932,43 +26503,44 @@ class lvar_t(lvar_locator_t) | lvar_t_divisor_get(self) -> uint64 | | 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 * @@ -24980,10 +26552,10 @@ class lvar_t(lvar_locator_t) | lvar_t_tif_get(self) -> tinfo_t | | 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 @@ -24993,52 +26565,58 @@ class lvar_t(lvar_locator_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: lvar_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: lvar_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: lvar_locator_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: lvar_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: lvar_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: lvar_locator_t const & | | compare(self, *args) -> 'int' | compare(self, r) -> int + | 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 information about scattered variable. | | get_stkoff(self, *args) -> 'sval_t' - | get_stkoff(self) -> sval_t + | Get offset of the varialbe in the stack frame. | | 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: @@ -25079,13 +26657,20 @@ class lvar_uservec_t(builtins.object) | clear(self) | | find_info(self, *args) -> 'lvar_saved_info_t *' + | find saved user settings for given var + | | find_info(self, vloc) -> lvar_saved_info_t + | @param vloc (C++: const lvar_locator_t &) | | keep_info(self, *args) -> 'void' + | Preserve user settings for given var. + | | keep_info(self, v) + | @param v (C++: const lvar_t &) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: lvar_uservec_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25132,16 +26717,37 @@ class lvars_t(qvector_lvar_t) | delete_lvars_t(self) | | find(self, *args) -> 'lvar_t *' + | Find variable at the specified location. + | | find(self, ll) -> lvar_t + | @param ll: variable location (C++: const lvar_locator_t &) + | @return: pointer to variable or NULL | | find_input_lvar(self, *args) -> 'int' + | Find input variable at the specified location. + | | find_input_lvar(self, argloc, _size) -> int + | @param argloc: variable location (C++: const vdloc_t &) + | @param _size: variable size (C++: int) + | @return: -1 if failed, otherwise the index into the variables vector. | | find_lvar(self, *args) -> 'int' + | Find variable at the specified location. + | | find_lvar(self, location, width, defblk=-1) -> int + | @param location: variable location (C++: const vdloc_t &) + | @param width: variable size (C++: int) + | @param defblk: definition block of the lvar. -1 means any block (C++: + | int) + | @return: -1 if failed, otherwise the index into the variables vector. | | find_stkvar(self, *args) -> 'int' + | Find stack variable at the specified location. + | | find_stkvar(self, spoff, width) -> int + | @param spoff: offset from the minimal sp (C++: sval_t) + | @param width: variable size (C++: int) + | @return: -1 if failed, otherwise the index into the variables vector. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25154,9 +26760,11 @@ class lvars_t(qvector_lvar_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -25166,22 +26774,28 @@ class lvars_t(qvector_lvar_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< lvar_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: lvar_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | at = __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | i: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -25205,7 +26819,12 @@ class lvars_t(qvector_lvar_t) | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t + | it: qvector< lvar_t >::iterator + | + | | erase(self, first, last) -> lvar_t + | first: qvector< lvar_t >::iterator + | last: qvector< lvar_t >::iterator | | extract(self, *args) -> 'lvar_t *' | extract(self) -> lvar_t @@ -25215,38 +26834,51 @@ class lvars_t(qvector_lvar_t) | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) + | x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: lvar_t * + | len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t + | it: qvector< lvar_t >::iterator + | x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -25272,14 +26904,12 @@ make_num(*args) 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: object type. (C++: const tinfo_t &) - @return: "type*". for example, if 'char' is passed as the argument, + make_pointer(type) -> tinfo_t + @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: @@ -25288,16 +26918,14 @@ make_ref(e) 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: 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. + mark_cfunc_dirty(ea, close_views=False) -> bool + @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: @@ -25325,6 +26953,7 @@ class mba_range_iterator_t(builtins.object) | | set(self, *args) -> 'bool' | set(self, mbr) -> bool + | @param mbr (C++: const mba_ranges_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25353,7 +26982,11 @@ class mba_ranges_t(builtins.object) | | __init__(self, *args) | __init__(self, _pfn=None) -> mba_ranges_t + | _pfn: func_t * + | + | | __init__(self, r) -> mba_ranges_t + | r: rangevec_t const & | | __repr__ = _swig_repr(self) | @@ -25393,10 +27026,10 @@ class mba_ranges_t(builtins.object) | 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 +27038,74 @@ 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) + | vp: vd_printer_t & | | _register(self, *args) -> 'void' | _register(self) | + | alloc_fict_ea(self, *args) -> '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 LDManother 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. + | + | alloc_fict_ea(self, real_ea) -> ea_t + | @param real_ea (C++: ea_t) + | @return: a unique fictional address + | + | alloc_kreg(self, *args) -> 'mreg_t' + | Allocate a kernel register. + | + | alloc_kreg(self, size, check_size=True) -> mreg_t + | @param size: size of the register in bytes (C++: size_t) + | @param check_size: if true, only the sizes that correspond to a size + | of a basic type will be accepted. (C++: bool) + | @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 and determine calling conventions. + | | analyze_calls(self, acflags) -> int + | @param acflags: permitted actions that are necessary for successful + | detection of calling conventions. See Bits for + | analyze_calls() (C++: int) + | @return: number of calls. -1 means error. | | arg(self, *args) -> 'lvar_t const &' + | Get input argument of the decompiled function. + | | arg(self, n) -> lvar_t + | @param n: argument number (0..nargs-1) (C++: int) + | + | | arg(self, n) -> lvar_t + | @param n: argument number (0..nargs-1) (C++: int) | | argbase(self, *args) -> 'sval_t' | argbase(self) -> sval_t @@ -25440,7 +27120,10 @@ class mbl_array_t(builtins.object) | 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. | | calc_shins_flags(self, *args) -> 'int' | calc_shins_flags(self) -> int @@ -25456,18 +27139,30 @@ class mbl_array_t(builtins.object) | | clr_mba_flags(self, *args) -> 'void' | clr_mba_flags(self, f) + | @param f (C++: int) | | clr_mba_flags2(self, *args) -> 'void' | clr_mba_flags2(self, f) + | @param f (C++: int) | | combine_blocks(self, *args) -> 'bool' - | combine_blocks(self) -> bool + | Combine blocks. This function merges blocks constituting linear flow. + | It calls 'remove_empty_blocks()' as well. | | common_stkvars_stkargs(self, *args) -> 'bool' | common_stkvars_stkargs(self) -> bool | | copy_block(self, *args) -> '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. + | | copy_block(self, blk, new_serial, cpblk_flags=3) -> mblock_t + | @param blk: block to copy (C++: mblock_t *) + | @param new_serial: position of the copied block (C++: int) + | @param cpblk_flags: combination of Batch decompilation bits ... bits + | (C++: int) + | @return: pointer to the new copy | | deleted_pairs(self, *args) -> 'bool' | deleted_pairs(self) -> bool @@ -25479,22 +27174,60 @@ class mbl_array_t(builtins.object) | 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 (C++: bool) + | @param title (C++: const char *) | | find_mop(self, *args) -> '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. + | | find_mop(self, ctx, ea, is_dest, list) -> mop_t + | @param ctx: context information for the result (C++: op_parent_info_t + | *) + | @param ea: desired address of the operand (C++: ea_t) + | @param is_dest: search for destination operand? this argument may be + | ignored if the exact match could not be found (C++: + | bool) + | @param list: list of locations the correspond to the operand (C++: + | const mlist_t &) + | @return: pointer to the operand or NULL. | | for_all_insns(self, *args) -> 'int' + | Visit all instructions. This function visits all instruction and + | subinstructions. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' + | Visit all operands of all instructions. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_topinsns(self, *args) -> 'int' + | Visit all top level instructions. + | | for_all_topinsns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero + | + | free_kreg(self, *args) -> 'void' + | Free a kernel register. If wrong arguments are passed, this function + | will generate an internal error. + | + | free_kreg(self, reg, size) + | @param reg: a previously allocated kernel register (C++: mreg_t) + | @param size: size of the register in bytes (C++: size_t) | | generated_asserts(self, *args) -> 'bool' | generated_asserts(self) -> bool @@ -25506,10 +27239,12 @@ class mbl_array_t(builtins.object) | 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 (C++: const lvar_t &) | | get_lvars_region(self, *args) -> 'ivl_t const &' | get_lvars_region(self) -> ivl_t @@ -25521,8 +27256,14 @@ class mbl_array_t(builtins.object) | get_mba_flags2(self) -> int | | get_mblock(self, *args) -> 'mblock_t *' + | Get basic block by its serial number. + | | get_mblock(self, n) -> mblock_t + | @param n (C++: int) + | + | | get_mblock(self, n) -> mblock_t + | @param n (C++: int) | | get_shadow_region(self, *args) -> 'ivl_t const &' | get_shadow_region(self) -> ivl_t @@ -25531,7 +27272,11 @@ class mbl_array_t(builtins.object) | get_stack_region(self) -> ivl_t | | get_std_region(self, *args) -> 'ivl_t const &' + | Get information about various memory regions. We map the stack frame + | to the global memory, to some unused range. + | | get_std_region(self, idx) -> ivl_t + | @param idx (C++: memreg_index_t) | | graph_insns(self, *args) -> 'bool' | graph_insns(self) -> bool @@ -25547,9 +27292,19 @@ class mbl_array_t(builtins.object) | | idaloc2vd(self, *args) -> 'vdloc_t' | idaloc2vd(self, loc, width) -> vdloc_t + | @param loc (C++: const argloc_t &) + | @param width (C++: int) | | insert_block(self, *args) -> '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. + | | insert_block(self, bblk) -> mblock_t + | @param bblk: the new block will be inserted before BBLK (C++: int) + | @return: ptr to the new block | | is_cdtr(self, *args) -> 'bool' | is_cdtr(self) -> bool @@ -25568,6 +27323,7 @@ class mbl_array_t(builtins.object) | | is_stkarg(self, *args) -> 'bool' | is_stkarg(self, v) -> bool + | @param v (C++: const lvar_t &) | | is_thunk(self, *args) -> 'bool' | is_thunk(self) -> bool @@ -25584,17 +27340,37 @@ class mbl_array_t(builtins.object) | lvars_renamed(self, *args) -> 'bool' | lvars_renamed(self) -> bool | + | map_fict_ea(self, *args) -> 'ea_t' + | Resolve a fictional address. This function provides a reverse of the + | mapping made by 'alloc_fict_ea()' . + | + | map_fict_ea(self, fict_ea) -> ea_t + | @param fict_ea: fictional definition address (C++: ea_t) + | @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. | | optimize_local(self, *args) -> 'int' + | Optimize each basic block locally + | | optimize_local(self, locopt_bits) -> int + | @param locopt_bits: combination of Bits for optimize_local() bits + | (C++: int) + | @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 @@ -25612,10 +27388,15 @@ class mbl_array_t(builtins.object) | regargs_is_not_aligned(self) -> bool | | remove_block(self, *args) -> 'bool' + | Delete a block. + | | remove_block(self, blk) -> bool + | @param blk: block to delete (C++: mblock_t *) + | @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 + | Delete all empty blocks. | | returns_fpval(self, *args) -> 'bool' | returns_fpval(self) -> bool @@ -25623,17 +27404,25 @@ class mbl_array_t(builtins.object) | rtype_refined(self, *args) -> 'bool' | rtype_refined(self) -> bool | + | save_snapshot(self, *args) -> 'void' + | Create and save microcode snapshot. + | + | save_snapshot(self, description) + | @param description (C++: const char *) + | | saverest_done(self, *args) -> 'bool' | saverest_done(self) -> bool | | serialize(self, *args) -> 'void' - | serialize(self) + | Serialize mbl array into a sequence of bytes. | | set_mba_flags(self, *args) -> 'void' | set_mba_flags(self, f) + | @param f (C++: int) | | set_mba_flags2(self, *args) -> 'void' | set_mba_flags2(self, f) + | @param f (C++: int) | | short_display(self, *args) -> 'bool' | short_display(self) -> bool @@ -25646,9 +27435,11 @@ class mbl_array_t(builtins.object) | | stkoff_ida2vd(self, *args) -> 'sval_t' | stkoff_ida2vd(self, off) -> sval_t + | @param off (C++: sval_t) | | stkoff_vd2ida(self, *args) -> 'sval_t' | stkoff_vd2ida(self, off) -> sval_t + | @param off (C++: sval_t) | | term(self, *args) -> 'void' | term(self) @@ -25664,10 +27455,25 @@ class mbl_array_t(builtins.object) | | vd2idaloc(self, *args) -> 'argloc_t' | vd2idaloc(self, loc, width, spd) -> argloc_t + | @param loc (C++: const vdloc_t &) + | @param width (C++: int) + | spd: sval_t + | + | | vd2idaloc(self, loc, width) -> argloc_t + | @param loc (C++: const vdloc_t &) + | @param width (C++: int) | | verify(self, *args) -> 'void' + | Verify microcode consistency. + | | verify(self, always) + | @param always: 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. (C++: bool) | | write_to_const_detected(self, *args) -> 'bool' | write_to_const_detected(self) -> bool @@ -25675,8 +27481,9 @@ 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 + | bytes: uchar const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25688,153 +27495,154 @@ 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 + | mba_t_aliased_args_get(self) -> ivl_t | | aliased_memory - | mbl_array_t_aliased_memory_get(self) -> ivlset_t + | mba_t_aliased_memory_get(self) -> ivlset_t | | aliased_vars - | mbl_array_t_aliased_vars_get(self) -> ivl_t + | mba_t_aliased_vars_get(self) -> ivl_t | | argidx - | mbl_array_t_argidx_get(self) -> intvec_t + | mba_t_argidx_get(self) -> intvec_t | | blocks - | mbl_array_t_blocks_get(self) -> mblock_t + | mba_t_blocks_get(self) -> mblock_t | | cc - | mbl_array_t_cc_get(self) -> cm_t + | mba_t_cc_get(self) -> cm_t | | consumed_argregs - | mbl_array_t_consumed_argregs_get(self) -> rlist_t + | mba_t_consumed_argregs_get(self) -> rlist_t | | entry_ea - | mbl_array_t_entry_ea_get(self) -> ea_t + | mba_t_entry_ea_get(self) -> ea_t | | error_ea - | mbl_array_t_error_ea_get(self) -> ea_t + | mba_t_error_ea_get(self) -> ea_t | | error_strarg - | mbl_array_t_error_strarg_get(self) -> qstring * + | mba_t_error_strarg_get(self) -> qstring * | | final_type - | mbl_array_t_final_type_get(self) -> bool + | mba_t_final_type_get(self) -> bool | | first_epilog_ea - | mbl_array_t_first_epilog_ea_get(self) -> ea_t + | mba_t_first_epilog_ea_get(self) -> ea_t | | fpd - | mbl_array_t_fpd_get(self) -> sval_t + | mba_t_fpd_get(self) -> sval_t | | frregs - | mbl_array_t_frregs_get(self) -> sval_t + | mba_t_frregs_get(self) -> sval_t | | frsize - | mbl_array_t_frsize_get(self) -> sval_t + | mba_t_frsize_get(self) -> sval_t | | fti_flags - | mbl_array_t_fti_flags_get(self) -> int + | mba_t_fti_flags_get(self) -> int | | fullsize - | mbl_array_t_fullsize_get(self) -> sval_t + | mba_t_fullsize_get(self) -> sval_t | | gotoff_stkvars - | mbl_array_t_gotoff_stkvars_get(self) -> ivlset_t + | mba_t_gotoff_stkvars_get(self) -> ivlset_t | | idb_node - | mbl_array_t_idb_node_get(self) -> netnode + | mba_t_idb_node_get(self) -> netnode | | idb_spoiled - | mbl_array_t_idb_spoiled_get(self) -> reginfovec_t + | mba_t_idb_spoiled_get(self) -> reginfovec_t | | idb_type - | mbl_array_t_idb_type_get(self) -> tinfo_t + | mba_t_idb_type_get(self) -> tinfo_t | | inargoff - | mbl_array_t_inargoff_get(self) -> sval_t + | mba_t_inargoff_get(self) -> sval_t | | label - | mbl_array_t_label_get(self) -> qstring * + | mba_t_label_get(self) -> qstring * | | last_prolog_ea - | mbl_array_t_last_prolog_ea_get(self) -> ea_t + | mba_t_last_prolog_ea_get(self) -> ea_t | | maturity - | mbl_array_t_maturity_get(self) -> mba_maturity_t + | mba_t_maturity_get(self) -> mba_maturity_t | | mbr - | mbl_array_t_mbr_get(self) -> mba_ranges_t + | mba_t_mbr_get(self) -> mba_ranges_t | | minargref - | mbl_array_t_minargref_get(self) -> sval_t + | mba_t_minargref_get(self) -> sval_t | | minstkref - | mbl_array_t_minstkref_get(self) -> sval_t + | mba_t_minstkref_get(self) -> sval_t | | minstkref_ea - | mbl_array_t_minstkref_ea_get(self) -> ea_t + | mba_t_minstkref_ea_get(self) -> ea_t | | natural - | mbl_array_t_natural_get(self) -> mblock_t ** + | mba_t_natural_get(self) -> mblock_t ** | | nodel_memory - | mbl_array_t_nodel_memory_get(self) -> mlist_t + | mba_t_nodel_memory_get(self) -> mlist_t | | notes - | mbl_array_t_notes_get(self) -> hexwarns_t + | mba_t_notes_get(self) -> hexwarns_t | | npurged - | mbl_array_t_npurged_get(self) -> int + | mba_t_npurged_get(self) -> int | | occurred_warns - | mbl_array_t_occurred_warns_get(self) -> uchar [32] + | mba_t_occurred_warns_get(self) -> uchar [32] | | pfn_flags - | mbl_array_t_pfn_flags_get(self) -> int + | mba_t_pfn_flags_get(self) -> int | | qty - | mbl_array_t_qty_get(self) -> int + | mba_t_qty_get(self) -> int | | reqmat - | mbl_array_t_reqmat_get(self) -> mba_maturity_t + | mba_t_reqmat_get(self) -> mba_maturity_t | | restricted_memory - | mbl_array_t_restricted_memory_get(self) -> ivlset_t + | mba_t_restricted_memory_get(self) -> ivlset_t | | retsize - | mbl_array_t_retsize_get(self) -> int + | mba_t_retsize_get(self) -> int | | retvaridx - | mbl_array_t_retvaridx_get(self) -> int + | mba_t_retvaridx_get(self) -> int | | shadow_args - | mbl_array_t_shadow_args_get(self) -> int + | mba_t_shadow_args_get(self) -> int | | spd_adjust - | mbl_array_t_spd_adjust_get(self) -> sval_t + | mba_t_spd_adjust_get(self) -> sval_t | | spoiled_list - | mbl_array_t_spoiled_list_get(self) -> mlist_t + | mba_t_spoiled_list_get(self) -> mlist_t | | stacksize - | mbl_array_t_stacksize_get(self) -> sval_t + | mba_t_stacksize_get(self) -> sval_t | | std_ivls - | mbl_array_t_std_ivls_get(self) -> ivl_with_name_t + | mba_t_std_ivls_get(self) -> ivl_with_name_t | | thisown | The membership flag | | tmpstk_size - | mbl_array_t_tmpstk_size_get(self) -> sval_t + | mba_t_tmpstk_size_get(self) -> sval_t | | vars - | mbl_array_t_vars_get(self) -> lvars_t + | mba_t_vars_get(self) -> lvars_t -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 + bytes: uchar const * Help on class mbl_graph_t in module ida_hexrays: @@ -25857,25 +27665,54 @@ class mbl_graph_t(simple_graph_t) | get_chain_stamp(self) -> int | | get_du(self, *args) -> 'graph_chains_t *' + | Get def-use chains. + | | get_du(self, gctype) -> graph_chains_t + | @param gctype (C++: gctype_t) | | get_mblock(self, *args) -> 'mblock_t *' | get_mblock(self, n) -> mblock_t + | @param n (C++: int) | | get_ud(self, *args) -> 'graph_chains_t *' + | Get use-def chains. + | | get_ud(self, gctype) -> graph_chains_t + | @param gctype (C++: gctype_t) | | is_du_chain_dirty(self, *args) -> 'bool' + | Is the def-use chain of the specified kind dirty? + | | is_du_chain_dirty(self, gctype) -> bool + | @param gctype (C++: gctype_t) | | is_redefined_globally(self, *args) -> 'bool' + | Is LIST redefined in the graph? + | | is_redefined_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | @param list (C++: const mlist_t &) + | @param b1 (C++: int) + | @param b2 (C++: int) + | @param m1 (C++: const minsn_t *) + | @param m2 (C++: const minsn_t *) + | @param maymust (C++: maymust_t) | | is_ud_chain_dirty(self, *args) -> 'bool' + | Is the use-def chain of the specified kind dirty? + | | is_ud_chain_dirty(self, gctype) -> bool + | @param gctype (C++: gctype_t) | | is_used_globally(self, *args) -> 'bool' + | Is LIST used in the graph? + | | is_used_globally(self, list, b1, b2, m1, m2, maymust=MAY_ACCESS) -> bool + | @param list (C++: const mlist_t &) + | @param b1 (C++: int) + | @param b2 (C++: int) + | @param m1 (C++: const minsn_t *) + | @param m2 (C++: const minsn_t *) + | @param maymust (C++: maymust_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -25915,64 +27752,208 @@ class mblock_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, vp) + | vp: vd_printer_t & | | append_def_list(self, *args) -> 'void' + | 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. + | | append_def_list(self, list, op, maymust) + | @param list: ptr to the output buffer. we will append to it. (C++: + | mlist_t *) + | @param op: operand to calculate the def list of (C++: const mop_t &) + | @param maymust: should we calculate 'may-def' or 'must-def' list? see + | maymust_t for more details. (C++: maymust_t) | | append_use_list(self, *args) -> 'void' + | 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. + | | append_use_list(self, list, op, maymust, mask=bitrange_t(0, USHRT_MAX)) + | @param list: ptr to the output buffer. we will append to it. (C++: + | mlist_t *) + | @param op: operand to calculate the use list of (C++: const mop_t &) + | @param maymust: should we calculate 'may-use' or 'must-use' list? see + | maymust_t for more details. (C++: maymust_t) + | @param mask: 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. + | (C++: bitrange_t) | | build_def_list(self, *args) -> '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. + | | build_def_list(self, ins, maymust) -> mlist_t + | @param ins: instruction to calculate the def list of (C++: const + | minsn_t &) + | @param maymust: should we calculate 'may-def' or 'must-def' list? see + | maymust_t for more details. (C++: maymust_t) + | @return: the calculated def-list | | build_lists(self, *args) -> 'int' + | Build def-use lists and eliminate deads. + | | build_lists(self, kill_deads) -> int + | @param kill_deads: do delete dead instructions? (C++: bool) + | @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 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. + | | build_use_list(self, ins, maymust) -> mlist_t + | @param ins: instruction to calculate the use list of (C++: const + | minsn_t &) + | @param maymust: should we calculate 'may-use' or 'must-use' list? see + | maymust_t for more details. (C++: maymust_t) + | @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 (C++: const char *) | | empty(self, *args) -> 'bool' | empty(self) -> bool | | find_access(self, *args) -> 'minsn_t *' + | Find the instruction that accesses the specified operand. This + | function search inside one block. + | | find_access(self, op, parent, mend, fdflags) -> minsn_t + | @param op: operand to search for (C++: const mop_t &) + | @param parent (C++: minsn_t **) + | @param mend (C++: const minsn_t *) + | @param fdflags (C++: int) + | @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. NULL means 'not found'. | | find_def(self, *args) -> 'minsn_t *' | find_def(self, op, p_i1, i2, fdflags) -> minsn_t + | @param op (C++: const mop_t &) + | @param p_i1 (C++: minsn_t **) + | @param i2 (C++: const minsn_t *) + | @param fdflags (C++: int) | | find_first_use(self, *args) -> 'minsn_t *' + | Find the first insn that uses the specified list in the insn range. + | | find_first_use(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | @param list: list of locations. LIST may be modified by the function: + | redefined locations will be removed from it. (C++: + | mlist_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) + | @return: pointer to such instruction or NULL. Upon return LIST will + | contain only locations not redefined by insns [i1..result] | | find_redefinition(self, *args) -> 'minsn_t *' + | Find the first insn that redefines any part of the list in the insn + | range. + | | find_redefinition(self, list, i1, i2, maymust=MAY_ACCESS) -> minsn_t + | @param list: list of locations to check. (C++: const mlist_t &) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) + | @return: pointer to such instruction or NULL. | | find_use(self, *args) -> 'minsn_t *' | find_use(self, op, p_i1, i2, fdflags) -> minsn_t + | @param op (C++: const mop_t &) + | @param p_i1 (C++: minsn_t **) + | @param i2 (C++: const minsn_t *) + | @param fdflags (C++: int) | | for_all_insns(self, *args) -> 'int' + | Visit all instructions. This function visits subinstructions too. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: zero or the value returned by mv.visit_insn() See also + | mba_t::for_all_topinsns() | | for_all_ops(self, *args) -> 'int' + | Visit all operands. This function visit subinstruction operands too. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @return: zero or the value returned by mv.visit_mop() | | for_all_uses(self, *args) -> 'int' + | Visit all operands that use LIST. + | | for_all_uses(self, list, i1, i2, mmv) -> int + | @param list: ptr to the list of locations. it may be modified: parts + | that get redefined by the instructions in [i1,i2) will be + | deleted. (C++: mlist_t *) + | @param i1: starting instruction. must be a top level insn. (C++: + | minsn_t *) + | @param i2: ending instruction (excluded). must be a top level insn. + | (C++: minsn_t *) + | @param mmv: operand visitor (C++: mlist_mop_visitor_t &) + | @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 register instructions in the block. Assertions are + | skipped by this function. | | get_valranges(self, *args) -> 'bool' + | Find possible values for a block. + | | get_valranges(self, res, vivl, vrflags) -> bool + | @param res: set of value ranges (C++: valrng_t *) + | @param vivl: what to search for (C++: const vivl_t &) + | @param vrflags: combination of bits for get_valranges bits (C++: + | int) + | + | | get_valranges(self, res, vivl, m, vrflags) -> bool + | @param res: set of value ranges (C++: valrng_t *) + | @param vivl: what to search for (C++: const vivl_t &) + | m: minsn_t const * + | @param vrflags: combination of bits for get_valranges bits (C++: + | int) | | insert_into_block(self, *args) -> 'minsn_t *' + | Insert instruction into the doubly linked list + | | insert_into_block(self, nm, om) -> minsn_t + | @param nm: new instruction (C++: minsn_t *) + | @param om: existing instruction, part of the doubly linked list if + | NULL, then the instruction will be inserted at the + | beginning of the list NM will be inserted immediately after + | OM (C++: minsn_t *) + | @return: pointer to NM | | is_branch(self, *args) -> 'bool' | is_branch(self) -> bool @@ -25984,10 +27965,32 @@ class mblock_t(builtins.object) | is_nway(self) -> bool | | is_redefined(self, *args) -> 'bool' + | Is the list redefined by the specified instructions? + | | is_redefined(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | @param list: list of locations to check. (C++: const mlist_t &) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) | | is_rhs_redefined(self, *args) -> 'bool' + | Is the right hand side of the instruction redefined the insn range? + | "right hand side" corresponds to the source operands of the + | instruction. + | | is_rhs_redefined(self, ins, i1, i2) -> bool + | @param ins: instruction to consider (C++: const minsn_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) | | is_simple_goto_block(self, *args) -> 'bool' | is_simple_goto_block(self) -> bool @@ -25999,7 +28002,20 @@ class mblock_t(builtins.object) | is_unknown_call(self) -> bool | | is_used(self, *args) -> 'bool' + | Is the list used by the specified instruction range? + | | is_used(self, list, i1, i2, maymust=MAY_ACCESS) -> bool + | @param list: list of locations. LIST may be modified by the function: + | redefined locations will be removed from it. (C++: + | mlist_t *) + | @param i1: starting instruction of the range (must be a top level + | insn) (C++: const minsn_t *) + | @param i2: end instruction of the range (must be a top level insn) i2 + | is excluded from the range. it can be specified as NULL. i1 + | and i2 must belong to the same block. (C++: const minsn_t + | *) + | @param maymust: should we search in 'may-access' or 'must-access' + | mode? (C++: maymust_t) | | lists_dirty(self, *args) -> 'bool' | lists_dirty(self) -> bool @@ -26011,7 +28027,12 @@ class mblock_t(builtins.object) | make_lists_ready(self) -> int | | make_nop(self, *args) -> 'void' + | 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. + | | make_nop(self, m) + | @param m (C++: minsn_t *) | | mark_lists_dirty(self, *args) -> 'void' | mark_lists_dirty(self) @@ -26020,28 +28041,49 @@ class mblock_t(builtins.object) | 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. | | optimize_insn(self, *args) -> 'int' + | Optimize one instruction in the context of the block. + | | optimize_insn(self, m, optflags=0x0002|0x0004) -> int + | @param m: pointer to a top level instruction (C++: minsn_t *) + | @param optflags: combination of optimization flags bits (C++: int) + | @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). | | pred(self, *args) -> 'int' | pred(self, n) -> int + | @param n (C++: int) | | preds(self) | Iterates the list of predecessor blocks | | remove_from_block(self, *args) -> 'minsn_t *' + | Remove instruction from the doubly linked list + | | remove_from_block(self, m) -> minsn_t + | @param m: instruction to remove The removed instruction is not + | deleted, the caller gets its ownership (C++: minsn_t *) + | @return: pointer to the next instruction | | request_demote64(self, *args) -> 'void' | request_demote64(self) @@ -26051,6 +28093,7 @@ class mblock_t(builtins.object) | | succ(self, *args) -> 'int' | succ(self, n) -> int + | @param n (C++: int) | | succs(self) | Iterates the list of successor blocks @@ -26089,7 +28132,7 @@ class mblock_t(builtins.object) | mblock_t_maybuse_get(self) -> mlist_t | | mba - | mblock_t_mba_get(self) -> mbl_array_t + | mblock_t_mba_get(self) -> mba_t | | minbargref | mblock_t_minbargref_get(self) -> sval_t @@ -26144,7 +28187,7 @@ class mcallarg_t(mop_t) | | __init__(self, *args) | __init__(self) -> mcallarg_t - | __init__(self, rarg) -> mcallarg_t + | rarg: mop_t const & | | __repr__ = _swig_repr(self) | @@ -26153,23 +28196,43 @@ class mcallarg_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | copy_mop(self, *args) -> 'void' | copy_mop(self, op) + | @param op (C++: const mop_t &) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | make_int(self, *args) -> 'void' | make_int(self, val, val_ea, opno=0) + | @param val (C++: int) + | @param val_ea (C++: ea_t) + | @param opno (C++: int) | | make_uint(self, *args) -> 'void' | make_uint(self, val, val_ea, opno=0) + | @param val (C++: int) + | @param val_ea (C++: ea_t) + | @param opno (C++: int) | | set_regarg(self, *args) -> 'void' | set_regarg(self, mr, sz, tif) + | @param mr (C++: mreg_t) + | @param sz (C++: int) + | @param tif (C++: const tinfo_t &) + | + | | set_regarg(self, mr, tif) + | @param mr (C++: mreg_t) + | @param tif (C++: const tinfo_t &) + | + | | set_regarg(self, mr, dt, sign=type_unsigned) + | @param mr (C++: mreg_t) + | dt: char + | sign: type_sign_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26194,12 +28257,15 @@ class mcallarg_t(mop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -26261,35 +28327,90 @@ class mcallarg_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) -> 'void' + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) -> 'void' + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) -> 'void' + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) -> 'void' + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) -> 'void' + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) -> 'void' + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) -> 'void' + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) -> 'void' + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) -> 'void' + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -26311,90 +28432,172 @@ class mcallarg_t(mop_t) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) -> '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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) -> 'void' + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) -> 'bool' + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) -> '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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) -> 'void' + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | empty(self, *args) -> 'bool' | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) -> 'void' | erase(self) @@ -26403,65 +28606,122 @@ class mcallarg_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) -> '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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) -> 'minsn_t *' + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) -> 'bool' + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | 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_bit_reg(self) -> bool + | reg: mreg_t | | 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' + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @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 (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) -> 'bool' + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | 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 a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -26473,18 +28733,30 @@ class mcallarg_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) -> 'bool' - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) -> 'bool' - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -26496,53 +28768,136 @@ class mcallarg_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int + | @param rop (C++: const mop_t &) | | make_blkref(self, *args) -> 'void' + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) -> 'bool' + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) -> 'bool' + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) -> 'void' + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) -> 'void' + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) -> 'bool' + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) -> 'void' + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) -> 'void' + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) -> 'void' + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) -> 'void' + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) -> 'bool' + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | 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' + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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 +28907,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) | @@ -26559,19 +28917,32 @@ class mcallarg_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) -> '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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | value(self, *args) -> '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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -26646,13 +29017,15 @@ class mcallargs_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< mcallarg_t > const & | | __getitem__(self, *args) -> 'mcallarg_t const &' | __getitem__(self, i) -> mcallarg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> mcallargs_t - | __init__(self, x) -> mcallargs_t + | 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,23 +29035,29 @@ class mcallargs_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< mcallarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: mcallarg_t const & | | __swig_destroy__ = delete_mcallargs_t(...) | delete_mcallargs_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: mcallarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: mcallarg_t const & | | at(self, *args) -> 'mcallarg_t const &' | at(self, _idx) -> mcallarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -26702,52 +29081,74 @@ class mcallargs_t(builtins.object) | | erase(self, *args) -> 'qvector< mcallarg_t >::iterator' | erase(self, it) -> mcallarg_t + | it: qvector< mcallarg_t >::iterator + | + | | erase(self, first, last) -> mcallarg_t + | first: qvector< mcallarg_t >::iterator + | 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 + | x: mcallarg_t const & + | + | | find(self, x) -> mcallarg_t + | x: mcallarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mcallarg_t()) + | x: mcallarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: mcallarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: mcallarg_t * + | len: size_t | | insert(self, *args) -> 'qvector< mcallarg_t >::iterator' | insert(self, it, x) -> mcallarg_t + | it: qvector< mcallarg_t >::iterator + | x: mcallarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mcallarg_t &' | push_back(self, x) - | push_back(self) -> mcallarg_t + | x: mcallarg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: mcallarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< mcallarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -26778,6 +29179,8 @@ class mcallinfo_t(builtins.object) | | __init__(self, *args) | __init__(self, _callee=BADADDR, _sargs=0) -> mcallinfo_t + | _callee: ea_t + | _sargs: int | | __repr__ = _swig_repr(self) | @@ -26786,6 +29189,8 @@ class mcallinfo_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, size=-1, shins_flags=0x04|0x02) + | size: int + | shins_flags: int | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -26798,9 +29203,11 @@ class mcallinfo_t(builtins.object) | | lexcompare(self, *args) -> 'int' | lexcompare(self, f) -> int + | @param f (C++: const mcallinfo_t &) | | set_type(self, *args) -> 'bool' | set_type(self, type) -> bool + | @param type (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26874,24 +29281,30 @@ class mcases_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: mcases_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: mcases_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: mcases_t const & | | __init__(self, *args) | __init__(self) -> mcases_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: mcases_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: mcases_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: mcases_t const & | | __repr__ = _swig_repr(self) | @@ -26903,6 +29316,7 @@ class mcases_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: mcases_t const & | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -26912,12 +29326,14 @@ class mcases_t(builtins.object) | | resize(self, *args) -> 'void' | resize(self, s) + | @param s (C++: int) | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: mcases_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26946,6 +29362,7 @@ Help on function mcode_modifies_d in module ida_hexrays: mcode_modifies_d(*args) -> 'bool' mcode_modifies_d(mcode) -> bool + @param mcode (C++: mcode_t) Help on class microcode_filter_t in module ida_hexrays: @@ -26958,6 +29375,7 @@ class microcode_filter_t(builtins.object) | | __init__(self, *args) | __init__(self) -> microcode_filter_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -26965,10 +29383,20 @@ class microcode_filter_t(builtins.object) | delete_microcode_filter_t(self) | | apply(self, *args) -> 'merror_t' + | generate microcode for an instruction + | | apply(self, cdg) -> merror_t + | @param cdg (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to + | the next instruction MERR_INSN - not generated - the caller + | should try the standard way else - error | | match(self, *args) -> 'bool' + | check if the filter object is to be appied + | | match(self, cdg) -> bool + | @param cdg (C++: codegen_t &) + | @return: success | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -26991,10 +29419,15 @@ class minsn_t(builtins.object) | | __init__(self, *args) | __init__(self, _ea) -> minsn_t + | _ea: ea_t + | + | | __init__(self, m) -> minsn_t + | m: minsn_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, ri) -> bool + | ri: minsn_t const & | | __repr__ = _swig_repr(self) | @@ -27011,7 +29444,9 @@ class minsn_t(builtins.object) | _ensure_no_obj(self, o, attr, attr_is_acquired) | | _make_nop(self, *args) -> 'void' - | _make_nop(self) + | Convert instruction to nop. This function erases all info but the + | prev/next fields. In most cases it is better to use + | 'mblock_t::make_nop()' , which also marks the block lists as dirty. | | _maybe_disown_and_deregister(self) | @@ -27030,6 +29465,7 @@ class minsn_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) @@ -27062,47 +29498,97 @@ class minsn_t(builtins.object) | clr_tailcall(self) | | contains_call(self, *args) -> 'bool' + | Does the instruction contain a call? + | | contains_call(self, with_helpers=False) -> bool + | @param with_helpers (C++: bool) | | contains_opcode(self, *args) -> 'bool' + | Does the instruction have the specified opcode? This function searches + | subinstructions as well. + | | contains_opcode(self, mcode) -> bool + | @param mcode: opcode to search for. (C++: mcode_t) | | dstr(self, *args) -> 'char const *' - | dstr(self) -> char const * + | Get displayable text without tags in a static buffer. | | equal_insns(self, *args) -> 'bool' + | Compare instructions. This is the main comparison function for + | instructions. + | | equal_insns(self, m, eqflags) -> bool + | @param m: instruction to compare with (C++: const minsn_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | find_call(self, *args) -> 'minsn_t *' + | Find a call instruction. Check for the current instruction and its + | subinstructions. + | | find_call(self, with_helpers=False) -> minsn_t + | @param with_helpers: consider helper calls as well? (C++: bool) | | find_ins_op(self, *args) -> 'minsn_t *' + | Find an operand that is a subinsruction with the specified opcode. + | This function checks only the 'l' and 'r' operands of the current + | insn. + | | find_ins_op(self, op=m_nop) -> minsn_t + | @param op: opcode to search for (C++: mcode_t) + | @return: &l or &r or NULL | | find_num_op(self, *args) -> 'mop_t *' - | find_num_op(self) -> mop_t + | Find a numeric operand of the current instruction. This function + | checks only the 'l' and 'r' operands of the current insn. | | find_opcode(self, *args) -> 'minsn_t *' + | Find a (sub)insruction with the specified opcode. + | | find_opcode(self, mcode) -> minsn_t + | @param mcode: opcode to search for. (C++: mcode_t) + | + | | find_opcode(self, mcode) -> minsn_t + | @param mcode: opcode to search for. (C++: mcode_t) | | for_all_insns(self, *args) -> 'int' + | Visit all instructions. This function visits the instruction itself + | and all its subinstructions. + | | for_all_insns(self, mv) -> int + | @param mv: instruction visitor (C++: minsn_visitor_t &) + | @return: non-zero value returned by mv.visit_mop() or zero | | for_all_ops(self, *args) -> 'int' + | Visit all instruction operands. This function visits subinstruction + | operands as well. + | | for_all_ops(self, mv) -> int + | @param mv: operand visitor (C++: mop_visitor_t &) + | @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' + | Does the instruction have a side effect? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: 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. (C++: + | bool) | | is_after(self, *args) -> 'bool' + | Is the instruction after the specified one? + | | is_after(self, m) -> bool + | @param m: the instruction to compare against in the list (C++: const + | minsn_t *) | | is_alloca(self, *args) -> 'bool' | is_alloca(self) -> bool @@ -27111,7 +29597,15 @@ class minsn_t(builtins.object) | is_assert(self) -> bool | | is_between(self, *args) -> 'bool' + | Is the instruction in the specified range of instructions? + | | is_between(self, m1, m2) -> bool + | @param m1: beginning of the range in the doubly linked list (C++: + | const minsn_t *) + | @param m2: end of the range in the doubly linked list (excluded, may + | be NULL) This function assumes that m1 and m2 belong to the + | same basic block and they are top level instructions. (C++: + | const minsn_t *) | | is_bswap(self, *args) -> 'bool' | is_bswap(self) -> bool @@ -27135,7 +29629,13 @@ class minsn_t(builtins.object) | is_fpinsn(self) -> bool | | is_helper(self, *args) -> '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. + | | is_helper(self, name) -> bool + | @param name (C++: const char *) | | is_ignlowsrc(self, *args) -> 'bool' | is_ignlowsrc(self) -> bool @@ -27162,7 +29662,11 @@ class minsn_t(builtins.object) | is_multimov(self) -> bool | | is_noret_call(self, *args) -> 'bool' + | Is a non-returing call? + | | is_noret_call(self, ignore_noret_icall=False) -> bool + | @param ignore_noret_icall: if set, indirect calls to noret functions + | will return false (C++: bool) | | is_optional(self, *args) -> 'bool' | is_optional(self) -> bool @@ -27180,28 +29684,49 @@ class minsn_t(builtins.object) | 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 (C++: const minsn_t &) | | 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 + | 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 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. + | | optimize_solo(self, optflags=0) -> int + | @param optflags: combination of optimization flags bits (C++: int) + | @return: number of changes, 0-unchanged See also + | mblock_t::optimize_insn() | | optimize_subtree(self, *args) -> 'int' + | Optimize instruction in its context. Do not use this function, use + | mblock_t::optimize() + | | optimize_subtree(self, blk, top, parent, converted_call, optflags=0x0002) -> int + | @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) | @@ -27246,6 +29771,7 @@ class minsn_t(builtins.object) | | set_split_size(self, *args) -> 'void' | set_split_size(self, s) + | @param s (C++: int) | | set_tailcall(self, *args) -> 'void' | set_tailcall(self) @@ -27254,10 +29780,18 @@ class minsn_t(builtins.object) | set_wild_match(self) | | setaddr(self, *args) -> 'void' + | Change the instruction address. This function modifies subinstructions + | as well. + | | setaddr(self, new_ea) + | @param new_ea (C++: ea_t) | | swap(self, *args) -> 'void' + | Swap two instructions. The prev/next fields are not modified by this + | function because it would corrupt the doubly linked list. + | | swap(self, m) + | @param m (C++: minsn_t &) | | was_noret_icall(self, *args) -> 'bool' | was_noret_icall(self) -> bool @@ -27322,6 +29856,9 @@ class minsn_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> minsn_visitor_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -27353,7 +29890,7 @@ class minsn_visitor_t(op_parent_info_t) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | topins | op_parent_info_t_topins_get(self) -> minsn_t @@ -27369,6 +29906,7 @@ class mlist_mop_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> mlist_mop_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -27377,6 +29915,7 @@ class mlist_mop_visitor_t(builtins.object) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op) -> int + | @param op (C++: mop_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27411,26 +29950,36 @@ class mlist_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: mlist_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: mlist_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: mlist_t const & | | __init__(self, *args) | __init__(self) -> mlist_t - | __init__(self, ivl) -> mlist_t + | ivl: ivl_t const & + | + | | __init__(self, r, size) -> mlist_t + | r: mreg_t + | size: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: mlist_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: mlist_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: mlist_t const & | | __repr__ = _swig_repr(self) | @@ -27442,18 +29991,32 @@ class mlist_t(builtins.object) | | add(self, *args) -> 'bool' | add(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) + | + | | add(self, r) -> bool + | @param r (C++: mreg_t) + | + | | add(self, ivl) -> bool + | ivl: ivl_t const & + | + | | add(self, lst) -> bool + | lst: mlist_t const & | | addmem(self, *args) -> 'bool' | addmem(self, ea, size) -> bool + | @param ea (C++: ea_t) + | @param size (C++: asize_t) | | clear(self, *args) -> 'void' | clear(self) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: mlist_t const & | | count(self, *args) -> 'asize_t' | count(self) -> asize_t @@ -27466,35 +30029,53 @@ class mlist_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, r) -> bool + | @param r (C++: mreg_t) | | has_all(self, *args) -> 'bool' | has_all(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) | | has_any(self, *args) -> 'bool' | has_any(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) | | has_common(self, *args) -> 'bool' | has_common(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | has_memory(self, *args) -> 'bool' | has_memory(self) -> bool | | includes(self, *args) -> 'bool' | includes(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | intersect(self, *args) -> 'bool' | intersect(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, lst) -> bool + | @param lst (C++: const mlist_t &) | | sub(self, *args) -> 'bool' | sub(self, r, size) -> bool + | @param r (C++: mreg_t) + | @param size (C++: int) + | + | | sub(self, ivl) -> bool + | ivl: ivl_t const & + | + | | sub(self, lst) -> bool + | lst: mlist_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: mlist_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27533,24 +30114,33 @@ class mnumber_t(operand_locator_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: mnumber_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: mnumber_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: mnumber_t const & | | __init__(self, *args) | __init__(self, v, _ea=BADADDR, n=0) -> mnumber_t + | v: uint64 + | _ea: ea_t + | n: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: mnumber_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: mnumber_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: mnumber_t const & | | __repr__ = _swig_repr(self) | @@ -27559,9 +30149,11 @@ class mnumber_t(operand_locator_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: mnumber_t const & | | update_value(self, *args) -> 'void' | update_value(self, val64) + | @param val64 (C++: uint64) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27598,29 +30190,25 @@ class mnumber_t(operand_locator_t) Help on function modify_user_lvar_info in module ida_hexrays: modify_user_lvar_info(*args) -> 'bool' + Modify saved local variable settings of one variable. + 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 + @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) -> '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 &) - @return: true if modified variables + modify_user_lvars(entry_ea, mlv) -> bool + @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: @@ -27636,8 +30224,13 @@ class mop_addr_t(mop_t) | | __init__(self, *args) | __init__(self) -> mop_addr_t - | __init__(self, ra) -> mop_addr_t + | ra: mop_addr_t const & + | + | | __init__(self, ra, isz, osz) -> mop_addr_t + | ra: mop_t const & + | isz: int + | osz: int | | __repr__ = _swig_repr(self) | @@ -27646,6 +30239,7 @@ class mop_addr_t(mop_t) | | lexcompare(self, *args) -> 'int' | lexcompare(self, ra) -> int + | @param ra (C++: const mop_addr_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -27664,12 +30258,15 @@ class mop_addr_t(mop_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | rop: mop_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | rop: mop_t const & | | _acquire_ownership(self, v, acquire) | @@ -27731,35 +30328,90 @@ class mop_addr_t(mop_t) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) -> 'void' + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) -> 'void' + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) -> 'void' + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) -> 'void' + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) -> 'void' + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) -> 'void' + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) -> 'void' + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) -> 'void' + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) -> 'void' + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -27778,90 +30430,169 @@ class mop_addr_t(mop_t) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) -> '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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) -> 'void' + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) -> 'bool' + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) -> '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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) -> 'void' + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -27870,7 +30601,11 @@ class mop_addr_t(mop_t) | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) -> 'void' | erase(self) @@ -27879,65 +30614,122 @@ class mop_addr_t(mop_t) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) -> '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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) -> 'minsn_t *' + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) -> 'bool' + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | 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_bit_reg(self) -> bool + | reg: mreg_t | | 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' + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @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 (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) -> 'bool' + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | 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 a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -27949,18 +30741,30 @@ class mop_addr_t(mop_t) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) -> 'bool' - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) -> 'bool' - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -27972,50 +30776,132 @@ class mop_addr_t(mop_t) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | make_blkref(self, *args) -> 'void' + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) -> 'bool' + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) -> 'bool' + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) -> 'void' + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) -> 'void' + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) -> 'bool' + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) -> 'void' + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) -> 'void' + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) -> 'void' + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) -> 'void' + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) -> 'bool' + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | 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' + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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 +30911,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) | @@ -28032,19 +30921,32 @@ class mop_addr_t(mop_t) | set_undef_val(self) | | shift_mop(self, *args) -> '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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | value(self, *args) -> '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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -28152,17 +31054,24 @@ class mop_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, rop) -> bool + | rop: mop_t const & | | __init__(self, *args) | __init__(self) -> mop_t - | __init__(self, rop) -> mop_t + | rop: mop_t const & + | + | | __init__(self, _r, _s) -> mop_t + | _r: mreg_t + | _s: int | | __lt__(self, *args) -> 'bool' | __lt__(self, rop) -> bool + | rop: mop_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, rop) -> bool + | rop: mop_t const & | | __repr__ = _swig_repr(self) | @@ -28229,35 +31138,90 @@ class mop_t(builtins.object) | _get_t(self) -> mopt_t | | _make_blkref(self, *args) -> 'void' + | Create a block reference operand without erasing previous data. + | | _make_blkref(self, blknum) + | @param blknum: block number Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: int) | | _make_callinfo(self, *args) -> 'void' + | Create a call info operand without erasing previous data. + | | _make_callinfo(self, fi) + | @param fi: callinfo Note: this function does not erase the previous + | contents of the operand; call erase() if necessary (C++: + | mcallinfo_t *) | | _make_cases(self, *args) -> 'void' + | Create a 'switch cases' operand without erasing previous data. Note: + | this function does not erase the previous contents of the operand; + | call erase() if necessary + | | _make_cases(self, _cases) + | @param _cases (C++: mcases_t *) | | _make_gvar(self, *args) -> 'void' + | Create a global variable operand without erasing previous data. + | | _make_gvar(self, ea) + | @param ea: address of the variable Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: ea_t) | | _make_insn(self, *args) -> 'void' + | Create a nested instruction without erasing previous data. + | | _make_insn(self, ins) + | @param ins (C++: minsn_t *) | | _make_lvar(self, *args) -> 'void' + | Create a local variable operand. + | | _make_lvar(self, mba, idx, off=0) + | @param mba: pointer to microcode (C++: mba_t *) + | @param idx: index into mba->vars (C++: int) + | @param off: offset from the beginning of the variable Note: this + | function does not erase the previous contents of the + | operand; call erase() if necessary (C++: sval_t) | | _make_pair(self, *args) -> 'void' + | Create a pair operand without erasing previous data. Note: this + | function does not erase the previous contents of the operand; call + | erase() if necessary + | | _make_pair(self, _pair) + | @param _pair (C++: mop_pair_t *) | | _make_reg(self, *args) -> 'void' + | Create a register operand without erasing previous data. + | | _make_reg(self, reg) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | + | | _make_reg(self, reg, _size) + | @param reg: micro register number Note: this function does not erase + | the previous contents of the operand; call erase() if + | necessary (C++: mreg_t) + | _size: int | | _make_stkvar(self, *args) -> 'void' + | Create a stack variable operand. + | | _make_stkvar(self, mba, off) + | @param mba: pointer to microcode (C++: mba_t *) + | @param off: decompiler stkoff Note: this function does not erase the + | previous contents of the operand; call erase() if + | necessary (C++: sval_t) | | _make_strlit(self, *args) -> 'void' + | Create a constant string operand. + | | _make_strlit(self, str) + | @param str (C++: const char *) | | _maybe_disown_and_deregister(self) | @@ -28276,90 +31240,169 @@ class mop_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, shins_flags=0x04|0x02) + | shins_flags: int | | _register(self, *args) -> 'void' | _register(self) | | _set_a(self, *args) -> 'void' | _set_a(self, _v) + | _v: mop_addr_t * | | _set_b(self, *args) -> 'void' | _set_b(self, _v) + | _v: int | | _set_c(self, *args) -> 'void' | _set_c(self, _v) + | _v: mcases_t * | | _set_cstr(self, *args) -> 'void' | _set_cstr(self, _v) + | _v: char const * | | _set_d(self, *args) -> 'void' | _set_d(self, _v) + | _v: minsn_t * | | _set_f(self, *args) -> 'void' | _set_f(self, _v) + | _v: mcallinfo_t * | | _set_fpc(self, *args) -> 'void' | _set_fpc(self, _v) + | _v: fnumber_t * | | _set_g(self, *args) -> 'void' | _set_g(self, _v) + | _v: ea_t | | _set_helper(self, *args) -> 'void' | _set_helper(self, _v) + | _v: char const * | | _set_l(self, *args) -> 'void' | _set_l(self, _v) + | _v: lvar_ref_t * | | _set_nnn(self, *args) -> 'void' | _set_nnn(self, _v) + | _v: mnumber_t * | | _set_pair(self, *args) -> 'void' | _set_pair(self, _v) + | _v: mop_pair_t * | | _set_r(self, *args) -> 'void' | _set_r(self, _v) + | _v: mreg_t | | _set_s(self, *args) -> 'void' | _set_s(self, _v) + | _v: stkvar_ref_t * | | _set_scif(self, *args) -> 'void' | _set_scif(self, _v) + | _v: scif_t * | | _set_t(self, *args) -> 'void' | _set_t(self, v) + | v: mopt_t | | apply_ld_mcode(self, *args) -> 'void' + | Apply a unary opcode to the operand. + | | apply_ld_mcode(self, mcode, ea, newsize) + | @param mcode: opcode to apply. it must accept 'l' and 'd' operands but + | not 'r'. examples: m_low/m_high/m_xds/m_xdu (C++: + | mcode_t) + | @param ea: value of minsn_t::ea for the newly created insruction + | (C++: ea_t) + | @param newsize: new operand size Example: apply_ld_mcode(m_low) will + | convert op => low(op) (C++: int) | | apply_xds(self, *args) -> 'void' | apply_xds(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | apply_xdu(self, *args) -> 'void' | apply_xdu(self, ea, newsize) + | @param ea (C++: ea_t) + | @param newsize (C++: int) | | assign(self, *args) -> 'mop_t &' | assign(self, rop) -> mop_t + | @param rop (C++: const mop_t &) | | change_size(self, *args) -> '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 + | | change_size(self, nsize, sideff=WITH_SIDEFF) -> bool + | @param nsize: new operand size (C++: int) + | @param sideff: may modify the database because of the size change? + | (C++: side_effect_t) + | @return: success | | create_from_insn(self, *args) -> 'void' + | 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. + | | create_from_insn(self, m) + | @param m: instruction to embed into operand. may not be NULL. (C++: + | const minsn_t *) | | create_from_ivlset(self, *args) -> 'bool' + | Create operand from 'ivlset_t' . Example: if IVS contains + | [glbvar..glbvar+4), our operand will be (t=mop_v, g=&glbvar, size=4) + | | create_from_ivlset(self, mba, ivs, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param ivs: set of memory intervals (C++: const ivlset_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_mlist(self, *args) -> '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) + | | create_from_mlist(self, mba, lst, fullsize) -> bool + | @param mba: pointer to microcode (C++: mba_t *) + | @param lst: list of locations (C++: const mlist_t &) + | @param fullsize: mba->fullsize (C++: sval_t) + | @return: success | | create_from_scattered_vdloc(self, *args) -> 'void' + | 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}) + | | create_from_scattered_vdloc(self, mba, name, type, loc) + | @param mba: pointer to microcode (C++: mba_t *) + | @param name: name of the operand, if available (C++: const char *) + | @param type: type of the operand, must be present (C++: tinfo_t) + | @param loc: a scattered location (C++: const vdloc_t &) + | @return: success | | create_from_vdloc(self, *args) -> 'void' + | 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) + | | create_from_vdloc(self, mba, loc, _size) + | @param mba: pointer to microcode (C++: mba_t *) + | @param loc: location (C++: const vdloc_t &) + | @param _size (C++: int) + | @return: success | | double_size(self, *args) -> 'bool' | double_size(self, sideff=WITH_SIDEFF) -> bool + | @param sideff (C++: side_effect_t) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * @@ -28368,7 +31411,11 @@ class mop_t(builtins.object) | empty(self) -> bool | | equal_mops(self, *args) -> 'bool' + | Compare operands. This is the main comparison function for operands. + | | equal_mops(self, rop, eqflags) -> bool + | @param rop: operand to compare with (C++: const mop_t &) + | @param eqflags: combination of comparison bits bits (C++: int) | | erase(self, *args) -> 'void' | erase(self) @@ -28377,65 +31424,122 @@ class mop_t(builtins.object) | erase_but_keep_size(self) | | for_all_ops(self, *args) -> 'int' + | Visit the operand and all its sub-operands. This function visits the + | current operand as well. + | | for_all_ops(self, mv, type=None, is_target=False) -> int + | @param mv: visitor object (C++: mop_visitor_t &) + | @param type: operand type (C++: const tinfo_t *) + | @param is_target: is a destination operand? (C++: bool) | | for_all_scattered_submops(self, *args) -> '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. + | | for_all_scattered_submops(self, sv) -> int + | @param sv: visitor object (C++: scif_visitor_t &) | | get_insn(self, *args) -> 'minsn_t *' + | Get subinstruction of the operand. If the operand has a subinstruction + | with the specified opcode, return it. + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL + | + | | get_insn(self, code) -> minsn_t + | @param code: desired opcode (C++: mcode_t) + | @return: pointer to the instruction or NULL | | get_stkoff(self, *args) -> 'bool' + | Get the referenced stack offset. This function can also handle mop_sc + | if it is entirely mapped into a continuous stack region. + | | get_stkoff(self, p_off) -> bool + | @param p_off: the output buffer (C++: sval_t *) + | @return: success | | get_stkvar(self, *args) -> 'member_t *' + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | has_side_effects(self, *args) -> 'bool' + | Has any side effects? + | | has_side_effects(self, include_ldx_and_divs=False) -> bool + | @param include_ldx_and_divs: consider ldx/div/mod as having side + | effects? (C++: bool) | | 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_bit_reg(self) -> bool + | reg: mreg_t | | 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' + | Retrieve value of a constant integer operand. + | | is_constant(self, is_signed=True) -> bool + | @param is_signed: should treat the value as signed (C++: bool) + | @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 (C++: uint64) + | @param is_signed (C++: bool) | | is_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero or sign bytes? + | | is_extended_from(self, nbytes, is_signed) -> bool + | @param nbytes (C++: int) + | @param is_signed (C++: bool) | | is_glbaddr(self, *args) -> 'bool' + | Is address of a global memory cell? + | | is_glbaddr(self) -> bool - | is_glbaddr(self, ea) -> bool + | ea: ea_t | | is_impptr_done(self, *args) -> 'bool' | is_impptr_done(self) -> bool | | is_insn(self, *args) -> 'bool' + | Is a sub-instruction? + | | is_insn(self) -> bool - | is_insn(self, code) -> bool + | 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 a block reference to the specified block? + | | is_mob(self, serial) -> bool + | @param serial (C++: int) | | is_negative_constant(self, *args) -> 'bool' | is_negative_constant(self) -> bool @@ -28447,18 +31551,30 @@ class mop_t(builtins.object) | is_positive_constant(self) -> bool | | is_reg(self, *args) -> 'bool' + | Is a register operand? See also get_mreg_name() + | | is_reg(self) -> bool - | is_reg(self, _r) -> bool + | _r: mreg_t + | + | | is_reg(self, _r, _size) -> bool + | _r: mreg_t + | _size: int | | is_scattered(self, *args) -> 'bool' - | is_scattered(self) -> bool + | Is a scattered operand? | | is_sign_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of the sign bytes? + | | is_sign_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | is_stkaddr(self, *args) -> 'bool' - | is_stkaddr(self) -> bool + | Is address of a stack variable? | | is_udt(self, *args) -> 'bool' | is_udt(self) -> bool @@ -28470,53 +31586,136 @@ class mop_t(builtins.object) | is_zero(self) -> bool | | is_zero_extended_from(self, *args) -> 'bool' + | Does the high part of the operand consist of zero bytes? + | | is_zero_extended_from(self, nbytes) -> bool + | @param nbytes: 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 (C++: int) | | lexcompare(self, *args) -> 'int' | lexcompare(self, rop) -> int + | @param rop (C++: const mop_t &) | | make_blkref(self, *args) -> 'void' + | Create a global variable operand. + | | make_blkref(self, blknum) + | @param blknum (C++: int) | | make_first_half(self, *args) -> 'bool' + | Make the first part of the operand. This function does not care about + | the memory endianness + | | make_first_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_fpnum(self, *args) -> 'bool' + | Create a floating point constant operand. + | | make_fpnum(self, bytes, _size) -> bool + | @param bytes: pointer to the floating point value as used by the + | current processor (e.g. for x86 it must be in IEEE 754) + | (C++: const void *) + | @param _size: number of bytes occupied by the constant. (C++: size_t) + | @return: success | | make_gvar(self, *args) -> 'void' + | Create a global variable operand. + | | make_gvar(self, ea) + | @param ea (C++: ea_t) | | make_helper(self, *args) -> 'void' + | 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. + | | make_helper(self, name) + | @param name (C++: const char *) | | make_high_half(self, *args) -> 'bool' + | Make the high part of the operand. This function takes into account + | the memory endianness (byte sex) + | | make_high_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_insn(self, *args) -> 'void' + | Create a nested instruction. + | | make_insn(self, ins) + | @param ins (C++: minsn_t *) | | make_low_half(self, *args) -> 'bool' + | Make the low part of the operand. This function takes into account the + | memory endianness (byte sex) + | | make_low_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | make_number(self, *args) -> 'void' + | Create an integer constant operand. + | | make_number(self, _value, _size, _ea=BADADDR, opnum=0) + | @param _value: value to store in the operand (C++: uint64) + | @param _size: size of the value in bytes (1,2,4,8) (C++: int) + | @param _ea: address of the processor instruction that made the value + | (C++: ea_t) + | @param opnum: operand number of the processor instruction (C++: int) | | make_reg(self, *args) -> 'void' + | Create a register operand. + | | make_reg(self, reg) + | @param reg (C++: mreg_t) + | + | | make_reg(self, reg, _size) + | @param reg (C++: mreg_t) + | _size: int | | make_reg_pair(self, *args) -> 'void' + | Create pair of registers. + | | make_reg_pair(self, loreg, hireg, halfsize) + | @param loreg: register holding the low part of the value (C++: int) + | @param hireg: register holding the high part of the value (C++: int) + | @param halfsize: the size of each of loreg/hireg (C++: int) | | make_second_half(self, *args) -> 'bool' + | Make the second part of the operand. This function does not care about + | the memory endianness + | | make_second_half(self, width) -> bool + | @param width: the desired size of the operand part in bytes (C++: int) + | @return: success | | 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' + | 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. + | | preserve_side_effects(self, blk, top, moved_calls=None) -> bool + | @param blk: current block (C++: mblock_t *) + | @param top: top level instruction that contains our operand (C++: + | minsn_t *) + | @param moved_calls: pointer to the boolean that will track if all side + | effects get handled correctly. must be false + | initially. (C++: bool *) + | @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 +31725,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) | @@ -28533,19 +31735,32 @@ class mop_t(builtins.object) | set_undef_val(self) | | shift_mop(self, *args) -> '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 + | | shift_mop(self, offset) -> bool + | @param offset: shift count (the number of bytes to shift) (C++: int) + | @return: success | | signed_value(self, *args) -> 'int64' | signed_value(self) -> int64 | | swap(self, *args) -> 'void' | swap(self, rop) + | @param rop (C++: mop_t &) | | unsigned_value(self, *args) -> 'uint64' | unsigned_value(self) -> uint64 | | value(self, *args) -> '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. + | | value(self, is_signed) -> uint64 + | @param is_signed (C++: bool) | | zero(self, *args) -> 'void' | zero(self) @@ -28630,6 +31845,9 @@ class mop_visitor_t(op_parent_info_t) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> mop_visitor_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -28638,6 +31856,9 @@ class mop_visitor_t(op_parent_info_t) | | visit_mop(self, *args) -> 'int' | visit_mop(self, op, type, is_target) -> int + | @param op (C++: mop_t *) + | @param type (C++: const tinfo_t *) + | @param is_target (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -28664,7 +31885,7 @@ class mop_visitor_t(op_parent_info_t) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | topins | op_parent_info_t_topins_get(self) -> minsn_t @@ -28678,13 +31899,15 @@ class mopvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< mop_t > const & | | __getitem__(self, *args) -> 'mop_t const &' | __getitem__(self, i) -> mop_t + | i: size_t | | __init__(self, *args) | __init__(self) -> mopvec_t - | __init__(self, x) -> mopvec_t + | 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,23 +31917,29 @@ class mopvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< mop_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: mop_t const & | | __swig_destroy__ = delete_mopvec_t(...) | delete_mopvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: mop_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: mop_t const & | | at(self, *args) -> 'mop_t const &' | at(self, _idx) -> mop_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -28734,52 +31963,74 @@ class mopvec_t(builtins.object) | | erase(self, *args) -> 'qvector< mop_t >::iterator' | erase(self, it) -> mop_t + | it: qvector< mop_t >::iterator + | + | | erase(self, first, last) -> mop_t + | first: qvector< mop_t >::iterator + | 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 + | x: mop_t const & + | + | | find(self, x) -> mop_t + | x: mop_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=mop_t()) + | x: mop_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: mop_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: mop_t * + | len: size_t | | insert(self, *args) -> 'qvector< mop_t >::iterator' | insert(self, it, x) -> mop_t + | it: qvector< mop_t >::iterator + | x: mop_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'mop_t &' | push_back(self, x) - | push_back(self) -> mop_t + | x: mop_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: mop_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< mop_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -28804,48 +32055,41 @@ class mopvec_t(builtins.object) 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) - @return: processor register id or -1 + mreg2reg(reg, width) -> int + @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) -> '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: 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) + must_mcode_close_block(mcode, including_calls) -> bool + @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: unknown + calls (is_unknown_call) are considered as + closing opcodes. (C++: bool) Help on function negate_mcode_relation in module ida_hexrays: negate_mcode_relation(*args) -> 'mcode_t' negate_mcode_relation(code) -> mcode_t + @param code (C++: 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) + negated_relation(op) -> ctype_t + @param op (C++: ctype_t) Help on function new_block in module ida_hexrays: @@ -28860,6 +32104,7 @@ class number_format_t(builtins.object) | | __init__(self, *args) | __init__(self, _opnum=0) -> number_format_t + | _opnum: int | | __repr__ = _swig_repr(self) | @@ -28867,34 +32112,39 @@ class number_format_t(builtins.object) | delete_number_format_t(self) | | get_radix(self, *args) -> 'int' - | get_radix(self) -> int + | Get number radix + | + | 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: @@ -28935,6 +32185,9 @@ class op_parent_info_t(builtins.object) | | __init__(self, *args) | __init__(self, _mba=None, _blk=None, _topins=None) -> op_parent_info_t + | _mba: mba_t * + | _blk: mblock_t * + | _topins: minsn_t * | | __repr__ = _swig_repr(self) | @@ -28957,7 +32210,7 @@ class op_parent_info_t(builtins.object) | op_parent_info_t_curins_get(self) -> minsn_t | | mba - | op_parent_info_t_mba_get(self) -> mbl_array_t + | op_parent_info_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -28968,50 +32221,37 @@ class op_parent_info_t(builtins.object) 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) + op_uses_x(op) -> bool + @param op (C++: 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) + op_uses_y(op) -> bool + @param op (C++: 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) + op_uses_z(op) -> bool + @param op (C++: 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 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 + open_pseudocode(ea, flags) -> vdui_t + @param ea: function to decompile (C++: ea_t) + @param flags: a combination of OPF_ flags (C++: int) + @return: false if failed Help on class operand_locator_t in module ida_hexrays: @@ -29022,24 +32262,32 @@ class operand_locator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: operand_locator_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: operand_locator_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: operand_locator_t const & | | __init__(self, *args) | __init__(self, _ea, _opnum) -> operand_locator_t + | _ea: ea_t + | _opnum: int | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: operand_locator_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: operand_locator_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: operand_locator_t const & | | __repr__ = _swig_repr(self) | @@ -29048,6 +32296,7 @@ class operand_locator_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: operand_locator_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29125,6 +32374,7 @@ class optblock_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optblock_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -29132,7 +32382,16 @@ class optblock_t(builtins.object) | delete_optblock_t(self) | | func(self, *args) -> '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 ... ... + | | func(self, blk) -> int + | @param blk: Basic block to optimize as a whole. (C++: mblock_t *) + | @return: number of changes made to the block. See also + | mark_lists_dirty. | | install(self, *args) -> 'void' | install(self) @@ -29163,6 +32422,7 @@ class optinsn_t(builtins.object) | | __init__(self, *args) | __init__(self) -> optinsn_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -29170,7 +32430,26 @@ class optinsn_t(builtins.object) | delete_optinsn_t(self) | | func(self, *args) -> 'int' - | func(self, blk, ins) -> int + | Optimize an instruction. + | + | func(self, blk, ins, optflags) -> int + | @param blk: current basic block. maybe NULL, which means that the + | instruction must be optimized without context (C++: + | mblock_t *) + | @param ins: 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. (C++: minsn_t *) + | @param optflags: combination of optimization flags bits (C++: int) + | @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) @@ -29193,40 +32472,34 @@ class optinsn_t(builtins.object) 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) - @return: success + parse_user_call(udc, decl, silent) -> bool + @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) -> '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. + partial_type_num(type) -> int + @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) -> 'qstring *' - 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) + print_vdloc(loc, nbytes) + @param loc (C++: const vdloc_t &) + @param nbytes (C++: int) Help on function property_op_to_typename in module ida_hexrays: @@ -29241,13 +32514,15 @@ class qlist_cinsn_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, x) -> bool + | x: qlist< cinsn_t > const & | | __getitem__(self, *args) -> 'cinsn_t const &' | __getitem__(self, i) -> cinsn_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qlist_cinsn_t - | __init__(self, x) -> qlist_cinsn_t + | x: qlist< cinsn_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29257,11 +32532,14 @@ class qlist_cinsn_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, x) -> bool + | x: qlist< cinsn_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: cinsn_t const & | | __swig_destroy__ = delete_qlist_cinsn_t(...) | delete_qlist_cinsn_t(self) @@ -29285,8 +32563,16 @@ class qlist_cinsn_t(builtins.object) | | erase(self, *args) -> 'void' | erase(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | erase(self, p1, p2) + | p1: qlist< cinsn_t >::iterator + | p2: qlist< cinsn_t >::iterator + | + | | erase(self, p) + | p: qlist_cinsn_t_iterator | | find(self, item) | @@ -29297,9 +32583,22 @@ class qlist_cinsn_t(builtins.object) | | insert(self, *args) -> 'qlist_cinsn_t_iterator' | insert(self, p, x) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | x: cinsn_t const & + | + | | insert(self, p) -> qlist< cinsn_t >::iterator + | p: qlist< cinsn_t >::iterator + | + | | insert(self, i, v) + | i: size_t + | v: cinsn_t const & + | + | | insert(self, p, x) -> qlist_cinsn_t_iterator + | p: qlist_cinsn_t_iterator + | x: cinsn_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) @@ -29309,10 +32608,11 @@ class qlist_cinsn_t(builtins.object) | | push_back(self, *args) -> 'cinsn_t &' | push_back(self, x) - | push_back(self) -> cinsn_t + | x: cinsn_t const & | | push_front(self, *args) -> 'void' | push_front(self, x) + | x: cinsn_t const & | | rbegin(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rbegin(self) -> qlist< cinsn_t >::reverse_iterator @@ -29320,6 +32620,7 @@ class qlist_cinsn_t(builtins.object) | | remove(self, *args) -> 'bool' | remove(self, v) -> bool + | v: cinsn_t const & | | rend(self, *args) -> 'qlist< cinsn_t >::const_reverse_iterator' | rend(self) -> qlist< cinsn_t >::reverse_iterator @@ -29330,6 +32631,7 @@ class qlist_cinsn_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, x) + | x: qlist< cinsn_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -29357,12 +32659,14 @@ class qlist_cinsn_t_iterator(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, x) -> bool + | x: qlist_cinsn_t_iterator const * | | __init__(self, *args) | __init__(self) -> qlist_cinsn_t_iterator | | __ne__(self, *args) -> 'bool' | __ne__(self, x) -> bool + | x: qlist_cinsn_t_iterator const * | | __next__(self, *args) -> 'void' | __next__(self) @@ -29409,11 +32713,15 @@ class qstring_printer_t(vc_printer_t) | | __init__(self, *args) | __init__(self, f, tags) -> qstring_printer_t + | f: cfunc_t const * + | tags: bool | | __repr__ = _swig_repr(self) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | indent: int + | format: char const * | | get_s(self, *args) -> 'qstring' | get_s(self) -> qstring @@ -29438,7 +32746,7 @@ class qstring_printer_t(vc_printer_t) | delete_vc_printer_t(self) | | oneliner(self, *args) -> 'bool' - | oneliner(self) -> bool + | Are we generating one-line text representation? | | ---------------------------------------------------------------------- | Data descriptors inherited from vc_printer_t: @@ -29468,6 +32776,8 @@ Help on function qswap in module ida_hexrays: qswap(*args) -> 'void' qswap(a, b) + a: cinsn_t & + b: cinsn_t & Help on class qvector_carg_t in module ida_hexrays: @@ -29478,13 +32788,15 @@ class qvector_carg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< carg_t > const & | | __getitem__(self, *args) -> 'carg_t const &' | __getitem__(self, i) -> carg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_carg_t - | __init__(self, x) -> qvector_carg_t + | x: qvector< carg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29493,20 +32805,25 @@ class qvector_carg_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< carg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: carg_t const & | | __swig_destroy__ = delete_qvector_carg_t(...) | delete_qvector_carg_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: carg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: carg_t const & | | append = push_back(self, *args) -> 'carg_t &' | @@ -29534,52 +32851,74 @@ class qvector_carg_t(builtins.object) | | erase(self, *args) -> 'qvector< carg_t >::iterator' | erase(self, it) -> carg_t + | it: qvector< carg_t >::iterator + | + | | erase(self, first, last) -> carg_t + | first: qvector< carg_t >::iterator + | 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 + | x: carg_t const & + | + | | find(self, x) -> carg_t + | x: carg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=carg_t()) + | x: carg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: carg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: carg_t * + | len: size_t | | insert(self, *args) -> 'qvector< carg_t >::iterator' | insert(self, it, x) -> carg_t + | it: qvector< carg_t >::iterator + | x: carg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'carg_t &' | push_back(self, x) - | push_back(self) -> carg_t + | x: carg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: carg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< carg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29610,13 +32949,15 @@ class qvector_ccase_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< ccase_t > const & | | __getitem__(self, *args) -> 'ccase_t const &' | __getitem__(self, i) -> ccase_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_ccase_t - | __init__(self, x) -> qvector_ccase_t + | x: qvector< ccase_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29625,20 +32966,25 @@ class qvector_ccase_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< ccase_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: ccase_t const & | | __swig_destroy__ = delete_qvector_ccase_t(...) | delete_qvector_ccase_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: ccase_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: ccase_t const & | | append = push_back(self, *args) -> 'ccase_t &' | @@ -29666,52 +33012,74 @@ class qvector_ccase_t(builtins.object) | | erase(self, *args) -> 'qvector< ccase_t >::iterator' | erase(self, it) -> ccase_t + | it: qvector< ccase_t >::iterator + | + | | erase(self, first, last) -> ccase_t + | first: qvector< ccase_t >::iterator + | 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 + | x: ccase_t const & + | + | | find(self, x) -> ccase_t + | x: ccase_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ccase_t()) + | x: ccase_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: ccase_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: ccase_t * + | len: size_t | | insert(self, *args) -> 'qvector< ccase_t >::iterator' | insert(self, it, x) -> ccase_t + | it: qvector< ccase_t >::iterator + | x: ccase_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ccase_t &' | push_back(self, x) - | push_back(self) -> ccase_t + | x: ccase_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: ccase_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< ccase_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29742,13 +33110,15 @@ class qvector_history_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< history_item_t > const & | | __getitem__(self, *args) -> 'history_item_t const &' | __getitem__(self, i) -> history_item_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_history_t - | __init__(self, x) -> qvector_history_t + | 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. @@ -29758,23 +33128,29 @@ class qvector_history_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< history_item_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: history_item_t const & | | __swig_destroy__ = delete_qvector_history_t(...) | delete_qvector_history_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: history_item_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: history_item_t const & | | at(self, *args) -> 'history_item_t const &' | at(self, _idx) -> history_item_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -29798,52 +33174,74 @@ class qvector_history_t(builtins.object) | | erase(self, *args) -> 'qvector< history_item_t >::iterator' | erase(self, it) -> history_item_t + | it: qvector< history_item_t >::iterator + | + | | erase(self, first, last) -> history_item_t + | first: qvector< history_item_t >::iterator + | 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 + | x: history_item_t const & + | + | | find(self, x) -> history_item_t + | x: history_item_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=history_item_t()) + | x: history_item_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: history_item_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: history_item_t * + | len: size_t | | insert(self, *args) -> 'qvector< history_item_t >::iterator' | insert(self, it, x) -> history_item_t + | it: qvector< history_item_t >::iterator + | x: history_item_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'history_item_t &' | push_back(self, x) - | push_back(self) -> history_item_t + | x: history_item_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: history_item_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< history_item_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -29874,13 +33272,15 @@ class qvector_lvar_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< lvar_t > const & | | __getitem__(self, *args) -> 'lvar_t const &' | __getitem__(self, i) -> lvar_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_lvar_t - | __init__(self, x) -> qvector_lvar_t + | x: qvector< lvar_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -29889,20 +33289,25 @@ class qvector_lvar_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< lvar_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: lvar_t const & | | __swig_destroy__ = delete_qvector_lvar_t(...) | delete_qvector_lvar_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: lvar_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: lvar_t const & | | append = push_back(self, *args) -> 'lvar_t &' | @@ -29930,52 +33335,74 @@ class qvector_lvar_t(builtins.object) | | erase(self, *args) -> 'qvector< lvar_t >::iterator' | erase(self, it) -> lvar_t + | it: qvector< lvar_t >::iterator + | + | | erase(self, first, last) -> lvar_t + | first: qvector< lvar_t >::iterator + | 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 + | x: lvar_t const & + | + | | find(self, x) -> lvar_t + | x: lvar_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=lvar_t()) + | x: lvar_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: lvar_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: lvar_t * + | len: size_t | | insert(self, *args) -> 'qvector< lvar_t >::iterator' | insert(self, it, x) -> lvar_t + | it: qvector< lvar_t >::iterator + | x: lvar_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'lvar_t &' | push_back(self, x) - | push_back(self) -> lvar_t + | x: lvar_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: lvar_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< lvar_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -30000,18 +33427,17 @@ class qvector_lvar_t(builtins.object) 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) - @return: microregister register id or mr_none + reg2mreg(reg) -> mreg_t + @param reg: processor register number (C++: int) + @return: microregister register id or mr_none Help on function remitem in module ida_hexrays: remitem(*args) -> 'void' remitem(e) + @param e (C++: const citem_t *) Help on function remove_hexrays_callback in module ida_hexrays: @@ -30021,87 +33447,81 @@ remove_hexrays_callback(callback) 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() + restore_user_cmts(func_ea) -> user_cmts_t + @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) -> '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) - @return: success + restore_user_defined_calls(udcalls, func_ea) -> bool + @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) -> '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() + restore_user_iflags(func_ea) -> user_iflags_t + @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) -> '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() + restore_user_labels(func_ea) -> user_labels_t + @param func_ea: the entry address of the function, ignored if FUNC != + NULL (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_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 (C++: ea_t) + @param func (C++: const cfunc_t *) 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) - @return: success + restore_user_lvar_settings(lvinf, func_ea) -> bool + @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) -> '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() + restore_user_numforms(func_ea) -> user_numforms_t + @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) -> '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() + restore_user_unions(func_ea) -> user_unions_t + @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: @@ -30117,8 +33537,12 @@ class rlist_t(bitset_t) | | __init__(self, *args) | __init__(self) -> rlist_t - | __init__(self, m) -> rlist_t + | m: rlist_t const & + | + | | __init__(self, reg, width) -> rlist_t + | reg: mreg_t + | width: int | | __repr__ = _swig_repr(self) | @@ -30139,110 +33563,151 @@ class rlist_t(bitset_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: bitset_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: bitset_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: bitset_t const & | | __iter__(self) | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: bitset_t const & | | __len__ = count(self, *args) -> 'int' | count(self) -> int - | count(self, bit) -> int + | bit: int | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: bitset_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: bitset_t const & | | add(self, *args) -> 'bool' | add(self, bit) -> bool + | @param bit (C++: int) + | + | | add(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | add(self, ml) -> bool + | 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 + | r: bitset_t const & | | copy(self, *args) -> 'bitset_t &' | copy(self, m) -> bitset_t + | @param m (C++: const bitset_t &) | | count(self, *args) -> 'int' | count(self) -> int - | count(self, bit) -> int + | bit: int | | cut_at(self, *args) -> 'bool' | cut_at(self, maxbit) -> bool + | @param maxbit (C++: 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 (C++: int) | | front(self, *args) -> 'int' | front(self) -> int | | has(self, *args) -> 'bool' | has(self, bit) -> bool + | @param bit (C++: int) | | has_all(self, *args) -> 'bool' | has_all(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_any(self, *args) -> 'bool' | has_any(self, bit, width) -> bool + | @param bit (C++: int) + | @param width (C++: int) | | has_common(self, *args) -> 'bool' | has_common(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | inc(self, *args) -> 'void' | inc(self, p, n=1) + | @param p (C++: iterator &) + | @param n (C++: int) | | includes(self, *args) -> 'bool' | includes(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | intersect(self, *args) -> 'bool' | intersect(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | is_subset_of(self, *args) -> 'bool' | is_subset_of(self, ml) -> bool + | @param ml (C++: const bitset_t &) | | itat(self, *args) -> 'bitset_t::iterator' - | itat(self, n) -> bitset_t::iterator + | itat(self, n) -> iterator + | @param n (C++: int) | | itv(self, *args) -> 'int' | itv(self, it) -> int + | it: bitset_t::const_iterator | | last(self, *args) -> 'int' | last(self) -> int | | shift_down(self, *args) -> 'void' | shift_down(self, shift) + | @param shift (C++: int) | | sub(self, *args) -> 'bool' | sub(self, bit) -> bool + | @param bit (C++: int) + | + | | sub(self, bit, width) -> bool + | @param bit (C++: int) + | width: int + | + | | sub(self, ml) -> bool + | ml: bitset_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: bitset_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from bitset_t: @@ -30261,86 +33726,81 @@ class rlist_t(bitset_t) 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 *) + save_user_cmts(func_ea, user_cmts) + @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) -> '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 &) + save_user_defined_calls(func_ea, udcalls) + @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) -> '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 *) + save_user_iflags(func_ea, iflags) + @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) -> '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 *) + save_user_labels(func_ea, user_labels) + @param func_ea: the entry address of the function, ignored if FUNC != + NULL (C++: ea_t) + @param user_labels: collection of user defined labels (C++: const + user_labels_t *) + +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 (C++: ea_t) + @param user_labels (C++: const user_labels_t *) + @param func (C++: const cfunc_t *) 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 &) + save_user_lvar_settings(func_ea, lvinf) + @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) -> '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 *) + save_user_numforms(func_ea, numforms) + @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) -> '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 *) + save_user_unions(func_ea, unions) + @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: @@ -30357,6 +33817,9 @@ class scif_t(vdloc_t) | | __init__(self, *args) | __init__(self, _mba, n, tif) -> scif_t + | _mba: mba_t * + | n: qstring * + | tif: tinfo_t * | | __repr__ = _swig_repr(self) | @@ -30367,7 +33830,7 @@ class scif_t(vdloc_t) | Data descriptors defined here: | | mba - | scif_t_mba_get(self) -> mbl_array_t + | scif_t_mba_get(self) -> mba_t | | name | scif_t_name_get(self) -> qstring * @@ -30383,36 +33846,47 @@ class scif_t(vdloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: vdloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: vdloc_t const & | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) + | @param r1 (C++: int) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool + | @param mb (C++: const mba_t *) + | @param size (C++: int) | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) + | @param r1 (C++: int) | | ---------------------------------------------------------------------- | Data and other attributes inherited from vdloc_t: @@ -30423,132 +33897,188 @@ class scif_t(vdloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) -> 'bool' + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) -> 'bool' + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) -> 'void' - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) -> 'void' + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) -> 'void' + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) -> 'void' + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg2(self, *args) -> 'void' + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) -> 'void' + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) -> 'bool' + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | 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' + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | 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. | | 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' . | | justify_reg_high(self, *args) -> 'void' + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) -> 'void' + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | 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 static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg2(self, *args) -> 'void' + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) -> 'void' + | Set stack offset location. + | | set_stkoff(self, off) + | @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' + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -30570,6 +34100,7 @@ class scif_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> scif_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -30578,6 +34109,8 @@ class scif_visitor_t(builtins.object) | | visit_scif_mop(self, *args) -> 'int' | visit_scif_mop(self, r, off) -> int + | @param r (C++: const mop_t &) + | @param off (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30594,53 +34127,48 @@ class scif_visitor_t(builtins.object) 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 &) + select_udt_by_offset(udts, ops, applicator) -> int + @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) -> '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: 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) + send_database(err, silent) + @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) -> 'mcode_t' set2jcnd(code) -> mcode_t + @param code (C++: 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) - @return: success + set_type(id, tif, source, force=False) -> bool + @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: @@ -30681,24 +34209,32 @@ class stkvar_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: stkvar_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: stkvar_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: stkvar_ref_t const & | | __init__(self, *args) | __init__(self, m, o) -> stkvar_ref_t + | m: mba_t * + | o: sval_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: stkvar_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: stkvar_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: stkvar_ref_t const & | | __repr__ = _swig_repr(self) | @@ -30707,12 +34243,19 @@ class stkvar_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: stkvar_ref_t const & | | get_stkvar(self, *args) -> 'member_t *' + | Retrieve the referenced stack variable. + | | get_stkvar(self, p_off=None) -> member_t * + | @param p_off: if specified, will hold IDA stkoff after the call. (C++: + | uval_t *) + | @return: pointer to the stack variable | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: stkvar_ref_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30724,7 +34267,7 @@ 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 + | stkvar_ref_t_mba_get(self) -> mba_t | | off | stkvar_ref_t_off_get(self) -> sval_t @@ -30741,24 +34284,19 @@ Help on function swap_mcode_relation in module ida_hexrays: swap_mcode_relation(*args) -> 'mcode_t' swap_mcode_relation(code) -> mcode_t + @param code (C++: 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) + swapped_relation(op) -> ctype_t + @param op (C++: 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: @@ -30770,12 +34308,14 @@ class treeloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: treeloc_t const & | | __init__(self, *args) | __init__(self) -> treeloc_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: treeloc_t const & | | __repr__ = _swig_repr(self) | @@ -30821,6 +34361,7 @@ class udc_filter_t(microcode_filter_t) | | __init__(self, *args) | __init__(self) -> udc_filter_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -30828,13 +34369,29 @@ class udc_filter_t(microcode_filter_t) | delete_udc_filter_t(self) | | apply(self, *args) -> 'merror_t' + | generate microcode for an instruction + | | apply(self, cdg) -> merror_t + | @param cdg (C++: codegen_t &) + | @return: MERR_... code: MERR_OK - user-defined call generated, go to + | the next instruction MERR_INSN - not generated - the caller + | should try the standard way else - error | | init(self, *args) -> 'bool' | init(self, decl) -> bool + | @param decl (C++: const char *) + | + | install(self, *args) -> 'void' + | install(self) | | match(self, *args) -> 'bool' + | return true if the filter object should be appied to given instruction + | | match(self, cdg) -> bool + | @param cdg (C++: codegen_t &) + | + | remove(self, *args) -> 'bool' + | remove(self) -> bool | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -30854,94 +34411,70 @@ class udc_filter_t(microcode_filter_t) 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_begin(map) -> udcall_map_iterator_t + @param map (C++: const udcall_map_t *) 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 *) + udcall_map_clear(map) + @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_end(map) -> udcall_map_iterator_t + @param map (C++: const udcall_map_t *) 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) + udcall_map_erase(map, p) + @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 &) + udcall_map_find(map, key) -> udcall_map_iterator_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) -> 'ea_t const &' - udcall_map_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: udcall_map_iterator_t) + udcall_map_first(p) -> ea_t const & + @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 *) + udcall_map_free(map) + @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 &) - @param val (C++: const udcall_t &) + udcall_map_insert(map, key, val) -> udcall_map_iterator_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: @@ -30952,12 +34485,14 @@ class udcall_map_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: udcall_map_iterator_t const & | | __init__(self, *args) | __init__(self) -> udcall_map_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: udcall_map_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -30987,54 +34522,39 @@ class udcall_map_iterator_t(builtins.object) 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) + udcall_map_next(p) -> 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) + udcall_map_prev(p) -> 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) + udcall_map_second(p) -> udcall_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 *) + udcall_map_size(map) -> size_t + @param map (C++: udcall_map_t *) Help on class udcall_t in module ida_hexrays: @@ -31045,24 +34565,30 @@ class udcall_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: udcall_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: udcall_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: udcall_t const & | | __init__(self, *args) | __init__(self) -> udcall_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: udcall_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: udcall_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: udcall_t const & | | __repr__ = _swig_repr(self) | @@ -31071,6 +34597,7 @@ class udcall_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: udcall_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31106,6 +34633,7 @@ class ui_stroff_applicator_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ui_stroff_applicator_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -31114,6 +34642,12 @@ class ui_stroff_applicator_t(builtins.object) | | apply(self, *args) -> 'bool' | apply(self, opnum, path, top_tif, spath) -> bool + | @param opnum: operand ordinal number, see below (C++: size_t) + | @param path: path describing the union selection, maybe empty (C++: + | const intvec_t &) + | @param top_tif: tinfo_t of the selected toplevel UDT (C++: const + | tinfo_t &) + | @param spath: selected path (C++: const char *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -31136,12 +34670,14 @@ class ui_stroff_op_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: ui_stroff_op_t const & | | __init__(self, *args) | __init__(self) -> ui_stroff_op_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ui_stroff_op_t const & | | __repr__ = _swig_repr(self) | @@ -31180,13 +34716,15 @@ class ui_stroff_ops_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< ui_stroff_op_t > const & | | __getitem__(self, *args) -> 'ui_stroff_op_t const &' | __getitem__(self, i) -> ui_stroff_op_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ui_stroff_ops_t - | __init__(self, x) -> ui_stroff_ops_t + | 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. @@ -31195,20 +34733,25 @@ class ui_stroff_ops_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< ui_stroff_op_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: ui_stroff_op_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: ui_stroff_op_t const & | | append = push_back(self, *args) -> 'ui_stroff_op_t &' | @@ -31236,52 +34779,74 @@ class ui_stroff_ops_t(builtins.object) | | erase(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | erase(self, it) -> ui_stroff_op_t + | it: qvector< ui_stroff_op_t >::iterator + | + | | erase(self, first, last) -> ui_stroff_op_t + | first: qvector< ui_stroff_op_t >::iterator + | 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 + | x: ui_stroff_op_t const & + | + | | find(self, x) -> ui_stroff_op_t + | x: ui_stroff_op_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=ui_stroff_op_t()) + | x: ui_stroff_op_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: ui_stroff_op_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: ui_stroff_op_t * + | len: size_t | | insert(self, *args) -> 'qvector< ui_stroff_op_t >::iterator' | insert(self, it, x) -> ui_stroff_op_t + | it: qvector< ui_stroff_op_t >::iterator + | 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) - | push_back(self) -> ui_stroff_op_t + | x: ui_stroff_op_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: ui_stroff_op_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< ui_stroff_op_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -31306,94 +34871,70 @@ class ui_stroff_ops_t(builtins.object) 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_begin(map) -> user_cmts_iterator_t + @param map (C++: const user_cmts_t *) 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 *) + user_cmts_clear(map) + @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_end(map) -> user_cmts_iterator_t + @param map (C++: const user_cmts_t *) 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) + user_cmts_erase(map, p) + @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 &) + user_cmts_find(map, key) -> user_cmts_iterator_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) -> 'treeloc_t const &' - user_cmts_first(p) -> treeloc_t - - Get reference to the current map key. - - @param p (C++: user_cmts_iterator_t) + user_cmts_first(p) -> treeloc_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 *) + user_cmts_free(map) + @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 &) - @param val (C++: const citem_cmt_t &) + user_cmts_insert(map, key, val) -> user_cmts_iterator_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: @@ -31404,12 +34945,14 @@ class user_cmts_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: user_cmts_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_cmts_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: user_cmts_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31439,54 +34982,39 @@ class user_cmts_iterator_t(builtins.object) 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) + user_cmts_next(p) -> 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) + user_cmts_prev(p) -> 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) + user_cmts_second(p) -> citem_cmt_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 *) + user_cmts_size(map) -> size_t + @param map (C++: user_cmts_t *) Help on class user_cmts_t in module ida_hexrays: @@ -31497,9 +35025,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 . @@ -31509,15 +35045,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. @@ -31527,6 +35081,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. @@ -31536,23 +35096,36 @@ 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 + | _Keyval: treeloc_t const & | | begin lambda self, *args | @@ -31625,94 +35198,70 @@ class user_cmts_t(builtins.object) 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_begin(map) -> user_iflags_iterator_t + @param map (C++: const user_iflags_t *) 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 *) + user_iflags_clear(map) + @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_end(map) -> user_iflags_iterator_t + @param map (C++: const user_iflags_t *) 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) + user_iflags_erase(map, p) + @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 &) + user_iflags_find(map, key) -> user_iflags_iterator_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) -> '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) + user_iflags_first(p) -> citem_locator_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 *) + user_iflags_free(map) + @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 &) - @param val (C++: const int32 &) + user_iflags_insert(map, key, val) -> user_iflags_iterator_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: @@ -31723,12 +35272,14 @@ class user_iflags_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: user_iflags_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_iflags_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: user_iflags_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -31758,54 +35309,39 @@ class user_iflags_iterator_t(builtins.object) 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) + user_iflags_next(p) -> 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) + user_iflags_prev(p) -> 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) + user_iflags_second(p) -> int32 const & + @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 *) + user_iflags_size(map) -> size_t + @param map (C++: user_iflags_t *) Help on class user_iflags_t in module ida_hexrays: @@ -31816,9 +35352,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 . @@ -31828,15 +35372,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. @@ -31846,6 +35408,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. @@ -31855,23 +35423,36 @@ 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 & + | _Keyval: citem_locator_t const & | | begin lambda self, *args | @@ -31957,94 +35538,70 @@ class user_iflags_t(builtins.object) 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_begin(map) -> user_labels_iterator_t + @param map (C++: const user_labels_t *) 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 *) + user_labels_clear(map) + @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_end(map) -> user_labels_iterator_t + @param map (C++: const user_labels_t *) 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) + user_labels_erase(map, p) + @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 &) + user_labels_find(map, key) -> user_labels_iterator_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) -> 'int const &' - user_labels_first(p) -> int const & - - Get reference to the current map key. - - @param p (C++: user_labels_iterator_t) + user_labels_first(p) -> int const & + @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 *) + user_labels_free(map) + @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 &) + user_labels_insert(map, key, val) -> user_labels_iterator_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: @@ -32055,12 +35612,14 @@ class user_labels_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: user_labels_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_labels_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: user_labels_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32090,54 +35649,39 @@ class user_labels_iterator_t(builtins.object) 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) + user_labels_next(p) -> 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) + user_labels_prev(p) -> 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) + user_labels_second(p) -> qstring & + @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 *) + user_labels_size(map) -> size_t + @param map (C++: user_labels_t *) Help on class user_labels_t in module ida_hexrays: @@ -32156,6 +35700,7 @@ class user_labels_t(builtins.object) | | at(self, *args) -> '_qstring< char > &' | at(self, _Keyval) -> _qstring< char > & + | _Keyval: int const & | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -32183,6 +35728,7 @@ class user_lvar_modifier_t(builtins.object) | | __init__(self, *args) | __init__(self) -> user_lvar_modifier_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -32190,7 +35736,10 @@ class user_lvar_modifier_t(builtins.object) | delete_user_lvar_modifier_t(self) | | modify_lvars(self, *args) -> 'bool' + | Modify lvar settings. Returns: true-modified + | | modify_lvars(self, lvinf) -> bool + | @param lvinf (C++: lvar_uservec_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32207,95 +35756,71 @@ class user_lvar_modifier_t(builtins.object) 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_begin(map) -> user_numforms_iterator_t + @param map (C++: const user_numforms_t *) 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 *) + user_numforms_clear(map) + @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_end(map) -> user_numforms_iterator_t + @param map (C++: const user_numforms_t *) 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) + user_numforms_erase(map, p) + @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 &) + user_numforms_find(map, key) -> user_numforms_iterator_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) -> '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) + user_numforms_first(p) -> operand_locator_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 *) + user_numforms_free(map) + @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 &) - @param val (C++: const number_format_t &) + user_numforms_insert(map, key, val) -> user_numforms_iterator_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: @@ -32306,12 +35831,14 @@ class user_numforms_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: user_numforms_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_numforms_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: user_numforms_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32341,54 +35868,39 @@ class user_numforms_iterator_t(builtins.object) 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) + user_numforms_next(p) -> 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) + user_numforms_prev(p) -> 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) + user_numforms_second(p) -> number_format_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 *) + user_numforms_size(map) -> size_t + @param map (C++: user_numforms_t *) Help on class user_numforms_t in module ida_hexrays: @@ -32399,9 +35911,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 . @@ -32411,15 +35931,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. @@ -32429,6 +35967,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. @@ -32438,23 +35982,36 @@ 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 + | _Keyval: operand_locator_t const & | | begin lambda self, *args | @@ -32527,94 +36084,70 @@ class user_numforms_t(builtins.object) 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_begin(map) -> user_unions_iterator_t + @param map (C++: const user_unions_t *) 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 *) + user_unions_clear(map) + @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_end(map) -> user_unions_iterator_t + @param map (C++: const user_unions_t *) 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) + user_unions_erase(map, p) + @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 &) + user_unions_find(map, key) -> user_unions_iterator_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) -> 'ea_t const &' - user_unions_first(p) -> ea_t const & - - Get reference to the current map key. - - @param p (C++: user_unions_iterator_t) + user_unions_first(p) -> ea_t const & + @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 *) + user_unions_free(map) + @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 &) + user_unions_insert(map, key, val) -> user_unions_iterator_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: @@ -32625,12 +36158,14 @@ class user_unions_iterator_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, p) -> bool + | p: user_unions_iterator_t const & | | __init__(self, *args) | __init__(self) -> user_unions_iterator_t | | __ne__(self, *args) -> 'bool' | __ne__(self, p) -> bool + | p: user_unions_iterator_t const & | | __repr__ = _swig_repr(self) | @@ -32660,54 +36195,39 @@ class user_unions_iterator_t(builtins.object) 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) + user_unions_next(p) -> 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) + user_unions_prev(p) -> 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) + user_unions_second(p) -> intvec_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 *) + user_unions_size(map) -> size_t + @param map (C++: user_unions_t *) Help on class user_unions_t in module ida_hexrays: @@ -32718,9 +36238,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 . @@ -32730,15 +36258,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. @@ -32748,6 +36294,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. @@ -32757,23 +36309,36 @@ 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 + | _Keyval: unsigned-ea-like-numeric-type const &↗ | | begin lambda self, *args | @@ -32851,13 +36416,15 @@ class uval_ivl_ivlset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, v) -> bool + | v: ivl_t const & | | __init__(self, *args) | __init__(self) -> uval_ivl_ivlset_t - | __init__(self, ivl) -> uval_ivl_ivlset_t + | ivl: ivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, v) -> bool + | v: ivl_t const & | | __repr__ = _swig_repr(self) | @@ -32883,6 +36450,7 @@ class uval_ivl_ivlset_t(builtins.object) | | getivl(self, *args) -> 'ivl_t const &' | getivl(self, idx) -> ivl_t + | idx: int | | lastivl(self, *args) -> 'ivl_t const &' | lastivl(self) -> ivl_t @@ -32897,10 +36465,12 @@ class uval_ivl_ivlset_t(builtins.object) | set_all_values(self) | | single_value(self, *args) -> 'bool' - | single_value(self, v) -> bool + | single_value(self) -> bool + | v: unsigned-ea-like-numeric-type↗ | | swap(self, *args) -> 'void' | swap(self, r) + | r: ivlset_tpl< ivl_t,uval_t > & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -32928,6 +36498,8 @@ class uval_ivl_t(builtins.object) | | __init__(self, *args) | __init__(self, _off, _size) -> uval_ivl_t + | _off: unsigned-ea-like-numeric-type↗ + | _size: unsigned-ea-like-numeric-type↗ | | __repr__ = _swig_repr(self) | @@ -32970,25 +36542,35 @@ class valrng_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: valrng_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: valrng_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: valrng_t const & | | __init__(self, *args) | __init__(self, size_=MAX_VLR_SIZE) -> valrng_t + | size_: int + | + | | __init__(self, r) -> valrng_t + | r: valrng_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: valrng_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: valrng_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: valrng_t const & | | __repr__ = _swig_repr(self) | @@ -33009,9 +36591,11 @@ class valrng_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: valrng_t const & | | cvt_to_cmp(self, *args) -> 'bool' | cvt_to_cmp(self, strict) -> bool + | @param strict (C++: bool) | | cvt_to_single_value(self, *args) -> 'bool' | cvt_to_single_value(self) -> bool @@ -33027,9 +36611,11 @@ class valrng_t(builtins.object) | | has(self, *args) -> 'bool' | has(self, v) -> bool + | @param v (C++: uvlr_t) | | intersect_with(self, *args) -> 'bool' | intersect_with(self, r) -> bool + | @param r (C++: const valrng_t &) | | inverse(self, *args) -> 'void' | inverse(self) @@ -33039,27 +36625,31 @@ class valrng_t(builtins.object) | | max_svalue(self, *args) -> 'uvlr_t' | max_svalue(self, size_) -> uvlr_t - | max_svalue(self) -> uvlr_t + | size_: int | | max_value(self, *args) -> 'uvlr_t' | max_value(self, size_) -> uvlr_t - | max_value(self) -> uvlr_t + | size_: int | | min_svalue(self, *args) -> 'uvlr_t' | min_svalue(self, size_) -> uvlr_t - | min_svalue(self) -> uvlr_t + | size_: int | | reduce_size(self, *args) -> 'bool' | reduce_size(self, new_size) -> bool + | @param new_size (C++: int) | | set_all(self, *args) -> 'void' | set_all(self) | | set_cmp(self, *args) -> 'void' | set_cmp(self, cmp, _value) + | @param cmp (C++: cmpop_t) + | @param _value (C++: uvlr_t) | | set_eq(self, *args) -> 'void' | set_eq(self, v) + | @param v (C++: uvlr_t) | | set_none(self, *args) -> 'void' | set_none(self) @@ -33069,9 +36659,11 @@ class valrng_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: valrng_t &) | | unite_with(self, *args) -> 'bool' | unite_with(self, r) -> bool + | @param r (C++: const valrng_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33099,24 +36691,30 @@ class var_ref_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: var_ref_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: var_ref_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: var_ref_t const & | | __init__(self, *args) | __init__(self) -> var_ref_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: var_ref_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: var_ref_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: var_ref_t const & | | __repr__ = _swig_repr(self) | @@ -33125,6 +36723,7 @@ class var_ref_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: var_ref_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33139,7 +36738,7 @@ class var_ref_t(builtins.object) | var_ref_t_idx_get(self) -> int | | mba - | var_ref_t_mba_get(self) -> mbl_array_t + | var_ref_t_mba_get(self) -> mba_t | | thisown | The membership flag @@ -33165,6 +36764,7 @@ class vc_printer_t(vd_printer_t) | | __init__(self, *args) | __init__(self, f) -> vc_printer_t + | f: cfunc_t const * | | __repr__ = _swig_repr(self) | @@ -33172,7 +36772,7 @@ class vc_printer_t(vd_printer_t) | delete_vc_printer_t(self) | | oneliner(self, *args) -> 'bool' - | oneliner(self) -> bool + | Are we generating one-line text representation? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33191,6 +36791,8 @@ class vc_printer_t(vd_printer_t) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors inherited from vd_printer_t: @@ -33216,9 +36818,19 @@ class vd_failure_t(builtins.object) | | __init__(self, *args) | __init__(self) -> vd_failure_t - | __init__(self, code, ea, buf=None) -> vd_failure_t + | code: enum merror_t + | ea: ea_t + | buf: char const * + | + | | __init__(self, code, ea, buf) -> vd_failure_t + | code: enum merror_t + | ea: ea_t + | buf: qstring const & + | + | | __init__(self, _hf) -> vd_failure_t + | _hf: hexrays_failure_t const & | | __repr__ = _swig_repr(self) | @@ -33257,6 +36869,8 @@ class vd_interr_t(vd_failure_t) | | __init__(self, *args) | __init__(self, ea, buf) -> vd_interr_t + | ea: ea_t + | buf: char const * | | __repr__ = _swig_repr(self) | @@ -33298,6 +36912,7 @@ class vd_printer_t(builtins.object) | | __init__(self, *args) | __init__(self) -> vd_printer_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -33306,6 +36921,8 @@ class vd_printer_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, indent, format) -> int + | indent: int + | format: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33339,24 +36956,30 @@ class vdloc_t(ida_typeinf.argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: vdloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: vdloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: vdloc_t const & | | __init__(self, *args) | __init__(self) -> vdloc_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: vdloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: vdloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: vdloc_t const & | | __repr__ = _swig_repr(self) | @@ -33365,18 +36988,23 @@ class vdloc_t(ida_typeinf.argloc_t) | | _set_reg1(self, *args) -> 'void' | _set_reg1(self, r1) + | @param r1 (C++: int) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: vdloc_t const & | | is_aliasable(self, *args) -> 'bool' | is_aliasable(self, mb, size) -> bool + | @param mb (C++: const mba_t *) + | @param size (C++: int) | | reg1(self, *args) -> 'int' | reg1(self) -> int | | set_reg1(self, *args) -> 'void' | set_reg1(self, r1) + | @param r1 (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33393,132 +37021,188 @@ class vdloc_t(ida_typeinf.argloc_t) | Methods inherited from ida_typeinf.argloc_t: | | _consume_rrel(self, *args) -> 'bool' + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) -> 'bool' + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) -> 'void' - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) -> 'void' + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) -> 'void' + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) -> 'void' + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg2(self, *args) -> 'void' + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) -> 'void' + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) -> 'bool' + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | 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' + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | 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. | | 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' . | | justify_reg_high(self, *args) -> 'void' + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) -> 'void' + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | 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 static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg2(self, *args) -> 'void' + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) -> 'void' + | Set stack offset location. + | | set_stkoff(self, off) + | @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' + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_typeinf.argloc_t: @@ -33545,139 +37229,321 @@ class vdui_t(builtins.object) | delete_vdui_t(self) | | calc_cmt_type(self, *args) -> 'cmt_type_t' + | Check if the specified line can have a comment. Due to the coordinate + | system for comments (http://www.hexblog.com/?p=60) some function lines + | cannot have comments. This function checks if a comment can be + | attached to the specified line. + | | calc_cmt_type(self, lnnum, cmttype) -> cmt_type_t + | @param lnnum: line number (0 based) (C++: size_t) + | @param cmttype: comment types to check (C++: cmt_type_t) + | @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/uncollapse item. This function collapses the current item. + | | collapse_item(self, hide) -> bool + | @param hide (C++: bool) + | @return: false if failed. | | collapse_lvars(self, *args) -> 'bool' + | Collapse/uncollapse local variable declarations. + | | collapse_lvars(self, hide) -> bool + | @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. | | del_orphan_cmts(self, *args) -> 'bool' - | del_orphan_cmts(self) -> bool + | Delete all orphan comments. Delete all orphan comments and refresh the + | screen. | | edit_cmt(self, *args) -> 'bool' + | Edit an indented comment. This function displays a dialog box and + | allows the user to edit the comment for the specified ctree location. + | | edit_cmt(self, loc) -> bool + | @param loc: comment location (C++: const treeloc_t &) + | @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. | | get_current_item(self, *args) -> 'bool' + | Get current item. This function refreshes the 'cpos' , 'item' , 'tail' + | fields. 'cfunc_t::get_line_item()' + | | get_current_item(self, idv) -> bool + | @param idv: keyboard or mouse (C++: input_device_t) + | @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. | | 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. | | in_ctree(self, *args) -> 'bool' - | in_ctree(self) -> bool + | Is the current item a statement? | | invert_bits(self, *args) -> 'bool' - | invert_bits(self) -> bool + | Bitwise negate a number. This function inverts all bits of the current + | number. | | invert_sign(self, *args) -> 'bool' - | invert_sign(self) -> bool + | Negate a number. This function negates the current number. | | jump_enter(self, *args) -> '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. + | | jump_enter(self, idv, omflags) -> bool + | @param idv: what cursor must be used, the keyboard or the mouse (C++: + | input_device_t) + | @param omflags: OM_NEWWIN: new pseudocode window will open, 0: reuse + | the existing window (C++: int) + | @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. | | map_lvar(self, *args) -> '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 + | | map_lvar(self, frm, to) -> bool + | @param frm: the variable being mapped (C++: lvar_t *) + | @param to: the variable to map to. if NULL, unmaps the variable (C++: + | lvar_t *) + | @return: false if failed | | refresh_cpos(self, *args) -> 'bool' + | Refresh the current position. This function refreshes the 'cpos' + | field. + | | refresh_cpos(self, idv) -> bool + | @param idv: keyboard or mouse (C++: input_device_t) + | @return: false if failed | | refresh_ctext(self, *args) -> 'void' + | 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. 'refresh_view()' , refresh_func_ctext() + | | refresh_ctext(self, activate=True) + | @param activate (C++: bool) | | refresh_view(self, *args) -> 'void' + | 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. + | 'refresh_ctext()' + | | refresh_view(self, redo_mba) + | @param redo_mba: true means to redecompile the current function + | false means to rebuild ctree without regenerating + | microcode (C++: bool) | | rename_global(self, *args) -> 'bool' + | Rename global item. This function displays a dialog box and allows the + | user to rename a global item (data or function). + | | rename_global(self, ea) -> bool + | @param ea: address of the global item (C++: ea_t) + | @return: false if failed or cancelled | | rename_label(self, *args) -> 'bool' + | Rename a label. This function displays a dialog box and allows the + | user to rename a statement label. + | | rename_label(self, label) -> bool + | @param label: label number (C++: int) + | @return: false if failed or cancelled | | rename_lvar(self, *args) -> 'bool' + | Rename local variable. This function permanently renames a local + | variable. + | | rename_lvar(self, v, name, is_user_name) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param name: new variable name (C++: const char *) + | @param is_user_name: use true to save the new name into the database + | (C++: bool) + | @return: false if failed | | rename_strmem(self, *args) -> 'bool' + | Rename structure field. This function displays a dialog box and allows + | the user to rename a structure field. + | | rename_strmem(self, sptr, mptr) -> bool + | @param sptr: pointer to structure (C++: struc_t *) + | @param mptr: pointer to structure member (C++: member_t *) + | @return: false if failed or cancelled | | set_global_type(self, *args) -> '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). + | | set_global_type(self, ea) -> bool + | @param ea: address of the global item (C++: ea_t) + | @return: false if failed or cancelled | | set_locked(self, *args) -> 'bool' | set_locked(self, v) -> bool + | @param v (C++: bool) | | set_lvar_cmt(self, *args) -> 'bool' + | Set local variable comment. This function permanently sets a variable + | comment. + | | set_lvar_cmt(self, v, cmt) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param cmt: new comment (C++: const char *) + | @return: false if failed | | set_lvar_type(self, *args) -> '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' + | | set_lvar_type(self, v, type) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @param type: new variable type (C++: const tinfo_t &) + | @return: false if failed | | set_noptr_lvar(self, *args) -> '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' + | | set_noptr_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @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. | | set_num_radix(self, *args) -> 'bool' + | Change number base. This function changes the current number + | representation. + | | set_num_radix(self, base) -> bool + | @param base: number radix (10 or 16) 0 means a character constant + | (C++: int) + | @return: false if failed | | set_num_stroff(self, *args) -> 'bool' - | set_num_stroff(self) -> bool + | Convert number to structure field offset. Currently not implemented. | | set_strmem_type(self, *args) -> 'bool' + | Set structure field type. This function displays a dialog box and + | allows the user to change the type of a structure field. + | | set_strmem_type(self, sptr, mptr) -> bool + | @param sptr: pointer to structure (C++: struc_t *) + | @param mptr: pointer to structure member (C++: member_t *) + | @return: false if failed or cancelled | | set_valid(self, *args) -> 'void' | set_valid(self, v) + | @param v (C++: bool) | | set_visible(self, *args) -> 'void' | set_visible(self, v) + | @param v (C++: bool) | | split_item(self, *args) -> 'bool' + | Split/unsplit item. This function splits the current assignment + | expression. + | | split_item(self, split) -> bool + | @param split (C++: bool) + | @return: false if failed. | | switch_to(self, *args) -> 'void' + | Display the specified pseudocode. This function replaces the + | pseudocode window contents with the specified 'cfunc_t' . + | | switch_to(self, f, activate) + | @param f: pointer to the function to display. (C++: cfuncptr_t) + | @param activate: should the pseudocode window get focus? (C++: bool) | | ui_edit_lvar_cmt(self, *args) -> 'bool' + | Set local variable comment. This function displays a dialog box and + | allows the user to edit the comment of a local variable. + | | ui_edit_lvar_cmt(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_map_lvar(self, *args) -> 'bool' + | Map a local variable to another. This function displays a variable + | list and allows the user to select mapping. + | | ui_map_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_rename_lvar(self, *args) -> 'bool' + | Rename local variable. This function displays a dialog box and allows + | the user to rename a local variable. + | | ui_rename_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_set_call_type(self, *args) -> '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 + | | ui_set_call_type(self, e) -> bool + | @param e: pointer to call expression (C++: const cexpr_t *) + | @return: false if failed or cancelled | | ui_set_lvar_type(self, *args) -> 'bool' + | Set local variable type. This function displays a dialog box and + | allows the user to change the type of a local variable. + | | ui_set_lvar_type(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @return: false if failed or cancelled | | ui_unmap_lvar(self, *args) -> '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. + | | ui_unmap_lvar(self, v) -> bool + | @param v: pointer to local variable (C++: lvar_t *) + | @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: @@ -33710,7 +37576,7 @@ class vdui_t(builtins.object) | vdui_t_last_code_get(self) -> merror_t | | mba - | vdui_t_mba_get(self) -> mbl_array_t + | vdui_t_mba_get(self) -> mba_t | | tail | vdui_t_tail_get(self) -> ctree_item_t @@ -33738,27 +37604,45 @@ class vivl_t(voff_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: vivl_t const & + | + | | __eq__(self, mop) -> bool + | mop: mop_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: vivl_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: vivl_t const & | | __init__(self, *args) | __init__(self, _type=mop_z, _off=-1, _size=0) -> vivl_t + | _type: mopt_t + | _off: sval_t + | _size: int + | + | | __init__(self, ch) -> vivl_t + | ch: chain_t const & + | + | | __init__(self, op) -> vivl_t + | op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: vivl_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: vivl_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: vivl_t const & | | __repr__ = _swig_repr(self) | @@ -33770,34 +37654,63 @@ class vivl_t(voff_t) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: vivl_t const & | | contains(self, *args) -> 'bool' + | Does our value interval contain the specified value offset? + | | contains(self, voff2) -> bool + | @param voff2 (C++: const voff_t &) | | dstr(self, *args) -> 'char const *' | dstr(self) -> char const * | | extend_to_cover(self, *args) -> 'bool' + | Extend a value interval using another value interval of the same type + | | extend_to_cover(self, r) -> bool + | @param r (C++: const vivl_t &) + | @return: success | | includes(self, *args) -> 'bool' + | Does our value interval include another? + | | includes(self, r) -> bool + | @param r (C++: const vivl_t &) | | intersect(self, *args) -> 'uval_t' + | Intersect value intervals the same type + | | intersect(self, r) -> uval_t + | @param r (C++: const vivl_t &) + | @return: size of the resulting intersection | | overlap(self, *args) -> 'bool' + | Do two value intervals overlap? + | | overlap(self, r) -> bool + | @param r (C++: const vivl_t &) | | set(self, *args) -> 'void' | set(self, _type, _off, _size=0) + | @param _type (C++: mopt_t) + | @param _off (C++: sval_t) + | @param _size (C++: int) + | + | | set(self, voff, _size) + | voff: voff_t const & + | @param _size (C++: int) | | set_reg(self, *args) -> 'void' | set_reg(self, mreg, sz=0) + | @param mreg (C++: mreg_t) + | @param sz (C++: int) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff, sz=0) + | @param stkoff (C++: sval_t) + | @param sz (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -33818,12 +37731,14 @@ class vivl_t(voff_t) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t + | @param width (C++: int) | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t + | @param r (C++: const voff_t &) | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -33833,6 +37748,7 @@ class vivl_t(voff_t) | | inc(self, *args) -> 'void' | inc(self, delta) + | @param delta (C++: sval_t) | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -33867,26 +37783,36 @@ class voff_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: voff_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: voff_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: voff_t const & | | __init__(self, *args) | __init__(self) -> voff_t - | __init__(self, _type, _off) -> voff_t + | _type: mopt_t + | _off: sval_t + | + | | __init__(self, op) -> voff_t + | op: mop_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: voff_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: voff_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: voff_t const & | | __repr__ = _swig_repr(self) | @@ -33895,15 +37821,18 @@ class voff_t(builtins.object) | | add(self, *args) -> 'voff_t' | add(self, width) -> voff_t + | @param width (C++: int) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: voff_t const & | | defined(self, *args) -> 'bool' | defined(self) -> bool | | diff(self, *args) -> 'sval_t' | diff(self, r) -> sval_t + | @param r (C++: const voff_t &) | | get_reg(self, *args) -> 'mreg_t' | get_reg(self) -> mreg_t @@ -33913,6 +37842,7 @@ class voff_t(builtins.object) | | inc(self, *args) -> 'void' | inc(self, delta) + | @param delta (C++: sval_t) | | is_reg(self, *args) -> 'bool' | is_reg(self) -> bool @@ -33922,12 +37852,16 @@ class voff_t(builtins.object) | | set(self, *args) -> 'void' | set(self, _type, _off) + | @param _type (C++: mopt_t) + | @param _off (C++: sval_t) | | set_reg(self, *args) -> 'void' | set_reg(self, mreg) + | @param mreg (C++: mreg_t) | | set_stkoff(self, *args) -> 'void' | set_stkoff(self, stkoff) + | @param stkoff (C++: sval_t) | | undef(self, *args) -> 'void' | undef(self) @@ -34011,11 +37945,21 @@ ida_hexrays.CFL_HELPER created from a decompiler helper function """ +ida_hexrays.CFL_NORET +""" +call does not return +""" + ida_hexrays.CFS_BOUNDS """ 'eamap' and 'boundaries' are ready """ +ida_hexrays.CFS_LOCKED +""" +cfunc is temporarily locked +""" + ida_hexrays.CFS_LVARS_HIDDEN """ local variable definitions are collapsed @@ -34126,11 +38070,21 @@ ida_hexrays.DECOMP_NO_FRAME do not use function frame info (only snippet mode) """ +ida_hexrays.DECOMP_NO_HIDE +""" +do not hide display waitbox. see close_hexrays_waitboxes() +""" + ida_hexrays.DECOMP_NO_WAIT """ do not display waitbox """ +ida_hexrays.DECOMP_NO_XREFS +""" +do not update global xrefs cache +""" + ida_hexrays.DECOMP_WARNINGS """ display warnings in the output window @@ -34148,7 +38102,7 @@ ignore instruction opcodes ida_hexrays.EQ_IGNSIZE """ -ignore operand sizes +ignore source operand sizes """ ida_hexrays.EQ_OPTINSN @@ -34795,9 +38749,32 @@ ida_hexrays.NF_NEGDONE temporary internal bit: negation has been performed """ -ida_hexrays.NF_STROFF +ida_hexrays.NF_VALID """ -internal bit: used as stroff, valid iff 'is_stroff()' +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 +""" + +ida_hexrays.OPF_NEW_WINDOW +""" +open new window +""" + +ida_hexrays.OPF_NO_WAIT +""" +do not display waitbox if decompilation happens +""" + +ida_hexrays.OPF_REUSE +""" +reuse existing window +""" + +ida_hexrays.OPF_REUSE_ACTIVE +""" +currently active widget is a pseudocode view + +reuse existing window, only if the """ ida_hexrays.OPROP_CCFLAGS @@ -34815,6 +38792,11 @@ ida_hexrays.OPROP_IMPDONE imported operand (a pointer) has been dereferenced """ +ida_hexrays.OPROP_LOWADDR +""" +a low address offset +""" + ida_hexrays.OPROP_UDEFVAL """ uses undefined value @@ -34842,7 +38824,8 @@ may update minstkref ida_hexrays.OPTI_NO_LDXOPT """ -do not optimize low/high(ldx) +the function is called after the propagation attempt, we do not +optimize low/high(ldx) in this case """ ida_hexrays.SHINS_LDXEA @@ -34915,11 +38898,6 @@ ida_hexrays.VDRUN_STATS Print statistics into vd_stats.txt. """ -ida_hexrays.VDUI_LOCKED -""" -is locked? -""" - ida_hexrays.VDUI_VALID """ is valid? @@ -34963,12 +38941,13 @@ Help on function __make_idainfo_getter in module ida_ida: __make_idainfo_getter(name) +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: @@ -35118,9 +39097,11 @@ class idainfo(builtins.object) | | set_maxEA(self, *args) -> 'void' | set_maxEA(self, ea) + | ea: ea_t | | set_minEA(self, *args) -> 'void' | set_minEA(self, ea) + | ea: ea_t | | set_pack_mode = __func(self, *args) | @@ -35361,9 +39342,6 @@ inf_gen_tryblks(*args) -> '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: @@ -35465,61 +39443,73 @@ Help on function inf_set_64bit in module ida_ida: inf_set_64bit(*args) -> 'bool' inf_set_64bit(_v=True) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_be in module ida_ida: inf_set_be(*args) -> 'bool' inf_set_be(_v=True) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function in module ida_ida: @@ -35529,6 +39519,7 @@ 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 (C++: bool) Help on function inf_show_auto in module ida_ida: @@ -35708,9 +39699,6 @@ inf_get_af2(*args) -> '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: @@ -35721,9 +39709,6 @@ inf_get_af_high(*args) -> '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_appcall_options in module ida_ida: @@ -35755,6 +39740,7 @@ Help on function inf_get_cc in module ida_ida: inf_get_cc(*args) -> 'bool' inf_get_cc(out) -> bool + @param out (C++: compiler_info_t *) Help on function inf_get_cc_cm in module ida_ida: @@ -35950,7 +39936,7 @@ Help on function inf_get_privrange in module ida_ida: inf_get_privrange(*args) -> 'range_t' inf_get_privrange(out) -> bool - inf_get_privrange() -> range_t + @param out (C++: range_t *) Help on function inf_get_privrange_end_ea in module ida_ida: @@ -36091,6 +40077,7 @@ 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 (C++: int) Help on function inf_is_limiter_empty in module ida_ida: @@ -36146,6 +40133,7 @@ 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 (C++: uval_t) Help on function inf_prefix_show_funcoff in module ida_ida: @@ -36191,796 +40179,951 @@ Help on function inf_set_32bit in module ida_ida: inf_set_32bit(*args) -> 'bool' inf_set_32bit(_v=True) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_abibits in module ida_ida: inf_set_abibits(*args) -> 'bool' inf_set_abibits(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_af in module ida_ida: inf_set_af(*args) -> 'bool' inf_set_af(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_af2 in module ida_ida: inf_set_af2(*args) -> 'bool' inf_set_af2(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) 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 (C++: 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 (C++: bool) Help on function inf_set_apptype in module ida_ida: inf_set_apptype(*args) -> 'bool' inf_set_apptype(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_asmtype in module ida_ida: inf_set_asmtype(*args) -> 'bool' inf_set_asmtype(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_baseaddr in module ida_ida: inf_set_baseaddr(*args) -> 'bool' inf_set_baseaddr(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: short) Help on function inf_set_cc in module ida_ida: inf_set_cc(*args) -> 'bool' inf_set_cc(_v) -> bool + @param _v (C++: const compiler_info_t &) 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_cmtflg in module ida_ida: inf_set_cmtflg(*args) -> 'bool' inf_set_cmtflg(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_comment in module ida_ida: inf_set_comment(*args) -> 'bool' inf_set_comment(_v) -> bool + @param _v (C++: uchar) 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: uint32) Help on function inf_set_datatypes in module ida_ida: inf_set_datatypes(*args) -> 'bool' inf_set_datatypes(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_demnames in module ida_ida: inf_set_demnames(*args) -> 'bool' inf_set_demnames(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_dll in module ida_ida: inf_set_dll(*args) -> 'bool' inf_set_dll(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_filetype in module ida_ida: inf_set_filetype(*args) -> 'bool' inf_set_filetype(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_genflags in module ida_ida: inf_set_genflags(*args) -> 'bool' inf_set_genflags(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_highoff in module ida_ida: inf_set_highoff(*args) -> 'bool' inf_set_highoff(_v) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_indent in module ida_ida: inf_set_indent(*args) -> 'bool' inf_set_indent(_v) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_lenxref in module ida_ida: inf_set_lenxref(*args) -> 'bool' inf_set_lenxref(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_lflags in module ida_ida: inf_set_lflags(*args) -> 'bool' inf_set_lflags(_v) -> bool + @param _v (C++: uint32) Help on function inf_set_limiter in module ida_ida: inf_set_limiter(*args) -> 'bool' inf_set_limiter(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_listnames in module ida_ida: inf_set_listnames(*args) -> 'bool' inf_set_listnames(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: uint32) Help on function inf_set_lowoff in module ida_ida: inf_set_lowoff(*args) -> 'bool' inf_set_lowoff(_v) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_main in module ida_ida: inf_set_main(*args) -> 'bool' inf_set_main(_v) -> bool + @param _v (C++: 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 (C++: bool) Help on function inf_set_margin in module ida_ida: inf_set_margin(*args) -> 'bool' inf_set_margin(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: ea_t) Help on function inf_set_maxref in module ida_ida: inf_set_maxref(*args) -> 'bool' inf_set_maxref(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: ea_t) Help on function inf_set_nametype in module ida_ida: inf_set_nametype(*args) -> 'bool' inf_set_nametype(_v) -> bool + @param _v (C++: char) Help on function inf_set_netdelta in module ida_ida: inf_set_netdelta(*args) -> 'bool' inf_set_netdelta(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_ostype in module ida_ida: inf_set_ostype(*args) -> 'bool' inf_set_ostype(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_outflags in module ida_ida: inf_set_outflags(*args) -> 'bool' inf_set_outflags(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_prefflag in module ida_ida: inf_set_prefflag(*args) -> 'bool' inf_set_prefflag(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_privrange in module ida_ida: inf_set_privrange(*args) -> 'bool' inf_set_privrange(_v) -> bool + @param _v (C++: const range_t &) 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 (C++: 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 (C++: 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 (C++: const char *) + @param len (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_refcmtnum in module ida_ida: inf_set_refcmtnum(*args) -> 'bool' inf_set_refcmtnum(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_snapshot in module ida_ida: inf_set_snapshot(*args) -> 'bool' inf_set_snapshot(_v=True) -> bool + @param _v (C++: bool) Help on function inf_set_specsegs in module ida_ida: inf_set_specsegs(*args) -> 'bool' inf_set_specsegs(_v) -> bool + @param _v (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: const char *) + @param len (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: 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 (C++: bool) Help on function inf_set_version in module ida_ida: inf_set_version(*args) -> 'bool' inf_set_version(_v) -> bool + @param _v (C++: ushort) Help on function inf_set_xrefflag in module ida_ida: inf_set_xrefflag(*args) -> 'bool' inf_set_xrefflag(_v) -> bool + @param _v (C++: uchar) Help on function inf_set_xrefnum in module ida_ida: inf_set_xrefnum(*args) -> 'bool' inf_set_xrefnum(_v) -> bool + @param _v (C++: uchar) Help on function inf_should_create_stkvars in module ida_ida: @@ -37095,13 +41238,10 @@ inf_use_flirt(*args) -> 'bool' 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) + is_filetype_like_binary(ft) -> bool + @param ft (C++: filetype_t) Help on function in module ida_ida: @@ -37110,14 +41250,11 @@ Help on function in module ida_ida: 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) + to_ea(reg_cs, reg_ip) -> ea_t + @param reg_cs (C++: sel_t) + @param reg_ip (C++: uval_t) === ida_ida EPYDOC INJECTIONS === ida_ida.ABI_8ALIGN4 @@ -37805,6 +41942,7 @@ class CustomIDAMemo(View_Hooks) | | __init__(self) | __init__(self, _flags=0) -> View_Hooks + | _flags: uint32 | | _get_cb(self, view, cb_name) | @@ -37813,37 +41951,81 @@ class CustomIDAMemo(View_Hooks) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, view, ve) + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, view, *args) + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, view, *args) + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, view, ve) + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, view) + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, view, key, state) + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, view, now, was) + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, view, ve) + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, view, rt) + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -37867,7 +42049,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -37920,9 +42105,6 @@ 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: @@ -38257,8 +42439,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 @@ -38268,8 +42448,6 @@ 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 @@ -38278,18 +42456,18 @@ Help on function enable_python_cli in module ida_idaapi: enable_python_cli(*args) -> 'void' enable_python_cli(enable) + enable: bool Help on function format_basestring in module ida_idaapi: format_basestring(*args) -> 'PyObject *' format_basestring(_in) -> PyObject * + _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: @@ -38305,8 +42483,6 @@ class loader_input_t(builtins.object) | | __init__(self, *args) | __init__(self, pycapsule=None) -> loader_input_t - | - | | Closes the file | | __repr__ = _swig_repr(self) @@ -38319,8 +42495,6 @@ class loader_input_t(builtins.object) | | 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) @@ -38336,8 +42510,6 @@ 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 *' @@ -38345,14 +42517,10 @@ class loader_input_t(builtins.object) | | gets(self, *args) -> 'PyObject *' | gets(self, len) -> PyObject * - | - | | Reads a line from the input file. Returns the read line or None | | 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 @@ -38360,15 +42528,11 @@ class loader_input_t(builtins.object) | | open(self, *args) -> 'bool' | open(self, filename, remote=False) -> bool - | - | | Opens a file (or a remote file) | @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 @@ -38377,33 +42541,23 @@ class loader_input_t(builtins.object) | | opened(self, *args) -> 'bool' | opened(self) -> bool - | - | | Checks if the file is opened or not | | read(self, *args) -> 'PyObject *' | read(self, size) -> PyObject * - | - | | Reads from the file. Returns the buffer or None | | readbytes(self, *args) -> 'PyObject *' | readbytes(self, size, big_endian) -> PyObject * - | - | | Similar to read() but it respect the endianness | | seek(self, *args) -> 'int64' | seek(self, pos, whence=SEEK_SET) -> int64 - | - | | Set input source position | @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 | | size(self, *args) -> 'int64' @@ -38411,8 +42565,6 @@ class loader_input_t(builtins.object) | | tell(self, *args) -> 'int64' | tell(self) -> int64 - | - | | Returns the current position | | ---------------------------------------------------------------------- @@ -38420,15 +42572,15 @@ class loader_input_t(builtins.object) | | from_capsule(*args) -> 'loader_input_t *' | from_capsule(pycapsule) -> loader_input_t + | pycapsule: PyObject * | | from_fp(*args) -> 'loader_input_t *' | from_fp(fp) -> loader_input_t - | - | | A static method to construct an instance from a FILE* | | from_linput(*args) -> 'loader_input_t *' | from_linput(linput) -> loader_input_t + | linput: linput_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -38449,16 +42601,19 @@ 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 + 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 + 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 + linput: linput_t * Help on function notify_when in module ida_idaapi: @@ -38498,6 +42653,7 @@ Help on function parse_command_line3 in module ida_idaapi: parse_command_line3(*args) -> 'PyObject *' parse_command_line3(cmdline) -> PyObject * + cmdline: char const * Help on class plugin_t in module ida_idaapi: @@ -38522,6 +42678,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) @@ -38589,31 +42768,43 @@ Help on function pycim_get_widget in module ida_idaapi: pycim_get_widget(*args) -> 'TWidget *' pycim_get_widget(_self) -> TWidget * + self: PyObject * Help on function pycim_view_close in module ida_idaapi: pycim_view_close(*args) -> 'void' pycim_view_close(_self) + self: PyObject * Help on function pygc_create_groups in module ida_idaapi: pygc_create_groups(*args) -> 'PyObject *' pygc_create_groups(_self, groups_infos) -> PyObject * + self: PyObject * + 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 * + self: PyObject * + groups: PyObject * + new_current: PyObject * Help on function pygc_refresh in module ida_idaapi: pygc_refresh(*args) -> 'void' pygc_refresh(_self) + 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 * + self: PyObject * + groups: PyObject * + expand: PyObject * + new_current: PyObject * Help on class pyidc_cvt_helper__ in module ida_idaapi: @@ -38691,8 +42882,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}. @@ -38711,16 +42900,24 @@ Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * + slot: int32 Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t + slot: int32 Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) + ea: ea_t + lnnum: int + x: short + y: short + slot: int32 + comment: char const * Help on Appcall__ in module ida_idd object: @@ -39079,6 +43276,11 @@ Help on function appcall in module ida_idd: appcall(*args) -> 'PyObject *' appcall(func_ea, tid, _type_or_none, _fields, arg_list) -> PyObject * + func_ea: ea_t + tid: thid_t + _type_or_none: bytevec_t const & + _fields: bytevec_t const & + arg_list: PyObject * Help on class bptaddr_t in module ida_idd: @@ -39122,12 +43324,14 @@ class call_stack_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: call_stack_info_t const & | | __init__(self, *args) | __init__(self) -> call_stack_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: call_stack_info_t const & | | __repr__ = _swig_repr(self) | @@ -39172,13 +43376,15 @@ class call_stack_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< call_stack_info_t > const & | | __getitem__(self, *args) -> 'call_stack_info_t const &' | __getitem__(self, i) -> call_stack_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> call_stack_t - | __init__(self, x) -> call_stack_t + | 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. @@ -39188,23 +43394,29 @@ class call_stack_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< call_stack_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: call_stack_info_t const & | | __swig_destroy__ = delete_call_stack_t(...) | delete_call_stack_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: call_stack_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: call_stack_info_t const & | | at(self, *args) -> 'call_stack_info_t const &' | at(self, _idx) -> call_stack_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39228,52 +43440,74 @@ class call_stack_t(builtins.object) | | erase(self, *args) -> 'qvector< call_stack_info_t >::iterator' | erase(self, it) -> call_stack_info_t + | it: qvector< call_stack_info_t >::iterator + | + | | erase(self, first, last) -> call_stack_info_t + | first: qvector< call_stack_info_t >::iterator + | 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 + | x: call_stack_info_t const & + | + | | find(self, x) -> call_stack_info_t + | x: call_stack_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=call_stack_info_t()) + | x: call_stack_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: call_stack_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: call_stack_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< call_stack_info_t >::iterator' | insert(self, it, x) -> call_stack_info_t + | it: qvector< call_stack_info_t >::iterator + | 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) - | push_back(self) -> call_stack_info_t + | x: call_stack_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: call_stack_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< call_stack_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39299,38 +43533,35 @@ Help on function can_exc_continue in module ida_idd: can_exc_continue(*args) -> 'bool' can_exc_continue(ev) -> bool + 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 + cleanup_appcall(tid) -> error_t + @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) -> '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 + dbg_appcall(retval, func_ea, tid, ptif, argv, argnum) -> error_t + @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: @@ -39341,8 +43572,6 @@ 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 @@ -39352,8 +43581,6 @@ 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 @@ -39361,8 +43588,6 @@ 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: @@ -39374,8 +43599,6 @@ 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 @@ -39387,8 +43610,6 @@ 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) @@ -39398,8 +43619,6 @@ Help on function dbg_write_memory in module ida_idd: dbg_write_memory(*args) -> 'PyObject *' dbg_write_memory(ea, buf) -> PyObject * - - Writes a buffer to the debugee's memory @return: Boolean @@ -39451,7 +43670,7 @@ class debug_event_t(builtins.object) | | __init__(self, *args) | __init__(self) -> debug_event_t - | __init__(self, r) -> debug_event_t + | r: debug_event_t const & | | __repr__ = _swig_repr(self) | @@ -39459,56 +43678,70 @@ class debug_event_t(builtins.object) | delete_debug_event_t(self) | | bpt(self, *args) -> 'bptaddr_t const &' - | bpt(self) -> bptaddr_t - | bpt(self) -> bptaddr_t + | 'EXCEPTION' | | 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 (C++: const debug_event_t &) | | 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 & + | 'THREAD_STARTED' (thread name) 'LIB_UNLOADED' (unloaded library name) + | 'INFORMATION' (will be displayed in the output window if not empty) | | info(self, *args) -> 'qstring const &' - | info(self) -> qstring - | info(self) -> qstring const & + | 'BREAKPOINT' | | modinfo(self, *args) -> 'modinfo_t const &' - | modinfo(self) -> modinfo_t - | modinfo(self) -> modinfo_t + | Information that depends on the event code: + | + | < 'PROCESS_STARTED' , 'PROCESS_ATTACHED' , 'LIB_LOADED' + | 'PROCESS_EXITED' , 'THREAD_EXITED' | | set_bpt(self, *args) -> 'bptaddr_t &' | set_bpt(self) -> bptaddr_t | | set_eid(self, *args) -> 'void' + | 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. + | | set_eid(self, id) + | @param id (C++: 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 (C++: event_id_t) + | @param code (C++: int) | | set_info(self, *args) -> 'qstring &' | set_info(self, id) -> qstring & + | @param id (C++: event_id_t) | | set_modinfo(self, *args) -> 'modinfo_t &' | set_modinfo(self, id) -> modinfo_t + | @param id (C++: event_id_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -39543,7 +43776,10 @@ class exception_info_t(builtins.object) | | __init__(self, *args) | __init__(self) -> exception_info_t - | __init__(self, _code, _flags, _name, _desc) -> exception_info_t + | _code: uint + | _flags: uint32 + | _name: char const * + | _desc: char const * | | __repr__ = _swig_repr(self) | @@ -39551,10 +43787,10 @@ class exception_info_t(builtins.object) | 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: @@ -39628,10 +43864,11 @@ class excvec_t(builtins.object) | | __getitem__(self, *args) -> 'exception_info_t const &' | __getitem__(self, i) -> exception_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> excvec_t - | __init__(self, x) -> excvec_t + | 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. @@ -39643,12 +43880,15 @@ class excvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39672,7 +43912,12 @@ class excvec_t(builtins.object) | | erase(self, *args) -> 'qvector< exception_info_t >::iterator' | erase(self, it) -> exception_info_t + | it: qvector< exception_info_t >::iterator + | + | | erase(self, first, last) -> exception_info_t + | first: qvector< exception_info_t >::iterator + | last: qvector< exception_info_t >::iterator | | extract(self, *args) -> 'exception_info_t *' | extract(self) -> exception_info_t @@ -39682,35 +43927,47 @@ class excvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=exception_info_t()) + | x: exception_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: exception_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< exception_info_t >::iterator' | insert(self, it, x) -> exception_info_t + | it: qvector< exception_info_t >::iterator + | x: exception_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'exception_info_t &' | push_back(self, x) - | push_back(self) -> exception_info_t + | x: exception_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: exception_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< exception_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39731,41 +43988,49 @@ 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 + 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 + 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 + 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 + 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 + 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 + 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 + 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 + ev: debug_event_t const * Help on class meminfo_vec_t in module ida_idd: @@ -39776,13 +44041,15 @@ class meminfo_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< memory_info_t > const & | | __getitem__(self, *args) -> 'memory_info_t const &' | __getitem__(self, i) -> memory_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> meminfo_vec_t - | __init__(self, x) -> meminfo_vec_t + | 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. @@ -39792,23 +44059,29 @@ class meminfo_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< memory_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: memory_info_t const & | | __swig_destroy__ = delete_meminfo_vec_t(...) | delete_meminfo_vec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: memory_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: memory_info_t const & | | at(self, *args) -> 'memory_info_t const &' | at(self, _idx) -> memory_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -39832,52 +44105,74 @@ class meminfo_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< memory_info_t >::iterator' | erase(self, it) -> memory_info_t + | it: qvector< memory_info_t >::iterator + | + | | erase(self, first, last) -> memory_info_t + | first: qvector< memory_info_t >::iterator + | 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 + | x: memory_info_t const & + | + | | find(self, x) -> memory_info_t + | x: memory_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=memory_info_t()) + | x: memory_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: memory_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: memory_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< memory_info_t >::iterator' | insert(self, it, x) -> memory_info_t + | it: qvector< memory_info_t >::iterator + | x: memory_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'memory_info_t &' | push_back(self, x) - | push_back(self) -> memory_info_t + | x: memory_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: memory_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< memory_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -39913,12 +44208,14 @@ class memory_info_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: memory_info_t const & | | __init__(self, *args) | __init__(self) -> memory_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: memory_info_t const & | | __repr__ = _swig_repr(self) | @@ -39956,37 +44253,58 @@ class memory_info_t(ida_range.range_t) | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -40088,10 +44406,11 @@ class procinfo_vec_t(builtins.object) | | __getitem__(self, *args) -> 'process_info_t const &' | __getitem__(self, i) -> process_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> procinfo_vec_t - | __init__(self, x) -> procinfo_vec_t + | 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. @@ -40103,12 +44422,15 @@ class procinfo_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -40132,7 +44454,12 @@ class procinfo_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< process_info_t >::iterator' | erase(self, it) -> process_info_t + | it: qvector< process_info_t >::iterator + | + | | erase(self, first, last) -> process_info_t + | first: qvector< process_info_t >::iterator + | last: qvector< process_info_t >::iterator | | extract(self, *args) -> 'process_info_t *' | extract(self) -> process_info_t @@ -40142,35 +44469,47 @@ class procinfo_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=process_info_t()) + | x: process_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: process_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< process_info_t >::iterator' | insert(self, it, x) -> process_info_t + | it: qvector< process_info_t >::iterator + | x: process_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'process_info_t &' | push_back(self, x) - | push_back(self) -> process_info_t + | x: process_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: process_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< process_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -40241,13 +44580,15 @@ class regval_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: regval_t const & | | __init__(self, *args) | __init__(self) -> regval_t - | __init__(self, r) -> regval_t + | r: regval_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: regval_t const & | | __repr__ = _swig_repr(self) | @@ -40259,7 +44600,7 @@ class regval_t(builtins.object) | bytes(self) -> bytevec_t const & | | clear(self, *args) -> 'void' - | clear(self) + | Clear register value. | | get_data(self, *args) -> 'void const *' | get_data(self) @@ -40270,20 +44611,29 @@ class regval_t(builtins.object) | | set_bytes(self, *args) -> 'bytevec_t &' | set_bytes(self, data, size) + | data: uchar const * + | size: size_t + | + | | set_bytes(self, v) - | set_bytes(self) -> bytevec_t & + | v: bytevec_t const & | | set_float(self, *args) -> 'void' | set_float(self, x) + | x: ushort const * | | set_int(self, *args) -> 'void' | set_int(self, x) + | x: uint64 | | set_unavailable(self, *args) -> 'void' | set_unavailable(self) | | swap(self, *args) -> 'void' + | Set this = r and r = this. + | | swap(self, r) + | @param r (C++: regval_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40345,43 +44695,66 @@ class scattered_segm_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -40411,6 +44784,8 @@ 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 (C++: debug_event_t *) + @param id (C++: event_id_t) Help on class thread_name_t in module ida_idd: @@ -40554,8 +44929,6 @@ Help on function AssembleLine in module ida_idp: AssembleLine(*args) -> 'PyObject *' 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 @@ -40578,299 +44951,729 @@ class IDB_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDB_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | | __swig_destroy__ = delete_IDB_Hooks(...) | delete_IDB_Hooks(self) | + | adding_segm(self, *args) -> 'void' + | A segment is being created. + | + | adding_segm(self, s) + | @param s (C++: segment_t *) + | | allsegs_moved(self, *args) -> 'void' + | Program rebasing is complete. This event is generated after series of + | segm_moved events + | | allsegs_moved(self, info) + | @param info (C++: segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' - | auto_empty(self) + | Info: all analysis queues are empty. This callback is called once when + | the initial analysis is finished. If the queue is not empty upon the + | return from this callback, it will be called later again. | | auto_empty_finally(self, *args) -> 'void' - | auto_empty_finally(self) + | Info: all analysis queues are empty definitively. This callback is + | called only once. | | bookmark_changed(self, *args) -> 'void' + | Boomarked position changed. + | | bookmark_changed(self, index, pos, desc) + | @param index (C++: uint32) + | @param pos (C++: const lochist_entry_t *) + | @param desc: if desc==NULL, then the bookmark was deleted. (C++: + | const char *) | | byte_patched(self, *args) -> 'void' + | A byte has been patched. + | | byte_patched(self, ea, old_value) + | @param ea (C++: ea_t) + | @param old_value (C++: uint32) | | callee_addr_changed(self, *args) -> 'void' + | Callee address has been updated by the user. + | | callee_addr_changed(self, ea, callee) + | @param ea (C++: ea_t) + | @param callee (C++: ea_t) | | changing_cmt(self, *args) -> 'void' + | An item comment is to be changed. + | | changing_cmt(self, ea, repeatable_cmt, newcmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) + | @param newcmt (C++: const char *) | | changing_enum_bf(self, *args) -> 'void' + | An enum type 'bitfield' attribute is to be changed. + | | changing_enum_bf(self, id, new_bf) + | @param id (C++: enum_t) + | @param new_bf (C++: bool) | | changing_enum_cmt(self, *args) -> 'void' + | An enum or member type comment is to be changed. + | | changing_enum_cmt(self, id, repeatable, newcmt) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_op_ti(self, *args) -> 'void' + | An operand typestring (c/c++ prototype) is to be changed. + | | changing_op_ti(self, ea, n, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | changing_op_type(self, *args) -> 'void' + | An operand type (offset, hex, etc...) is to be changed. + | | changing_op_type(self, ea, n, opinfo) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param opinfo: additional operand info (C++: const opinfo_t *) | | changing_range_cmt(self, *args) -> 'void' + | Range comment is to be changed. + | | changing_range_cmt(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | changing_segm_class(self, *args) -> 'void' + | Segment class is being changed. + | | changing_segm_class(self, s) + | @param s (C++: segment_t *) | | changing_segm_end(self, *args) -> 'void' + | Segment end address is to be changed. + | | changing_segm_end(self, s, new_end, segmod_flags) + | @param s (C++: segment_t *) + | @param new_end (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_segm_name(self, *args) -> 'void' + | Segment name is being changed. + | | changing_segm_name(self, s, oldname) + | @param s (C++: segment_t *) + | @param oldname (C++: const char *) | | changing_segm_start(self, *args) -> 'void' + | Segment start address is to be changed. + | | changing_segm_start(self, s, new_start, segmod_flags) + | @param s (C++: segment_t *) + | @param new_start (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_struc_align(self, *args) -> 'void' + | A structure type is being changed (the struct alignment). + | | changing_struc_align(self, sptr) + | @param sptr (C++: struc_t *) | | changing_struc_cmt(self, *args) -> 'void' + | A structure type comment is to be changed. + | | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | @param struc_id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_struc_member(self, *args) -> 'void' + | A structure member is to be changed. + | | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param flag (C++: flags_t) + | @param ti (C++: const opinfo_t *) + | @param nbytes (C++: asize_t) | | changing_ti(self, *args) -> 'void' + | An item typestring (c/c++ prototype) is to be changed. + | | changing_ti(self, ea, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | closebase(self, *args) -> 'void' - | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) -> 'void' + | An item comment has been changed. + | | cmt_changed(self, ea, repeatable_cmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) | | compiler_changed(self, *args) -> 'void' - | compiler_changed(self) + | The kernel has changed the compiler information. (\inf{cc} structure; + | 'get_abi_name' ) | | deleting_enum(self, *args) -> 'void' + | An enum type is to be deleted. + | | deleting_enum(self, id) + | @param id (C++: enum_t) | | deleting_enum_member(self, *args) -> 'void' + | An enum member is to be deleted. + | | deleting_enum_member(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | deleting_func(self, *args) -> 'void' + | The kernel is about to delete a function. + | | deleting_func(self, pfn) + | @param pfn (C++: func_t *) | | deleting_func_tail(self, *args) -> 'void' + | A function tail chunk is to be removed. + | | deleting_func_tail(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: const range_t *) | | deleting_segm(self, *args) -> 'void' + | A segment is to be deleted. + | | deleting_segm(self, start_ea) + | @param start_ea (C++: ea_t) | | deleting_struc(self, *args) -> 'void' + | A structure type is to be deleted. + | | deleting_struc(self, sptr) + | @param sptr (C++: struc_t *) | | deleting_struc_member(self, *args) -> 'void' + | A structure member is to be deleted. + | | deleting_struc_member(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | deleting_tryblks(self, *args) -> 'void' + | About to delete tryblk information in given range + | | deleting_tryblks(self, range) + | @param range (C++: const range_t *) | | destroyed_items(self, *args) -> 'void' + | Instructions/data have been destroyed in [ea1,ea2). + | | destroyed_items(self, ea1, ea2, will_disable_range) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) + | @param will_disable_range (C++: bool) | | determined_main(self, *args) -> 'void' + | The main() function has been determined. + | | determined_main(self, main) + | @param main: address of the main() function (C++: ea_t) + | + | dirtree_link(self, *args) -> 'void' + | Dirtree: an item has been linked/unlinked. + | + | dirtree_link(self, dt, path, link) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param link (C++: bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | Dirtree: a directory has been created. + | + | dirtree_mkdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_move(self, *args) -> 'void' + | Dirtree: a directory or item has been moved. + | + | dirtree_move(self, dt, _from, to) + | @param dt (C++: dirtree_t *) + | @param _from (C++: const char *) + | @param to (C++: const char *) + | + | dirtree_rank(self, *args) -> 'void' + | Dirtree: a directory or item rank has been changed. + | + | dirtree_rank(self, dt, path, rank) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param rank (C++: size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | Dirtree: a directory has been deleted. + | + | dirtree_rmdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | Dirtree: an inode became unavailable. + | + | dirtree_rminode(self, dt, inode) + | @param dt (C++: dirtree_t *) + | @param inode (C++: inode_t) | | enum_bf_changed(self, *args) -> 'void' + | An enum type 'bitfield' attribute has been changed. + | | enum_bf_changed(self, id) + | @param id (C++: enum_t) | | enum_cmt_changed(self, *args) -> 'void' + | An enum or member type comment has been changed. + | | enum_cmt_changed(self, id, repeatable) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) | | enum_created(self, *args) -> 'void' + | An enum type has been created. + | | enum_created(self, id) + | @param id (C++: enum_t) | | enum_deleted(self, *args) -> 'void' + | An enum type has been deleted. + | | enum_deleted(self, id) + | @param id (C++: enum_t) | | enum_member_created(self, *args) -> 'void' + | An enum member has been created. + | | enum_member_created(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_member_deleted(self, *args) -> 'void' + | An enum member has been deleted. + | | enum_member_deleted(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_renamed(self, *args) -> 'void' + | An enum or member has been renamed. + | | enum_renamed(self, id) + | @param id (C++: tid_t) | | expanding_struc(self, *args) -> 'void' + | A structure type is to be expanded/shrunk. + | | expanding_struc(self, sptr, offset, delta) + | @param sptr (C++: struc_t *) + | @param offset (C++: ea_t) + | @param delta (C++: adiff_t) | | extlang_changed(self, *args) -> 'void' + | The list of extlangs or the default extlang was changed. + | | extlang_changed(self, kind, el, idx) + | @param kind: 0: extlang installed 1: extlang removed 2: default + | extlang changed (C++: int) + | @param el: pointer to the extlang affected (C++: extlang_t *) + | @param idx: extlang index (C++: int) | | extra_cmt_changed(self, *args) -> 'void' + | An extra comment has been changed. + | | extra_cmt_changed(self, ea, line_idx, cmt) + | @param ea (C++: ea_t) + | @param line_idx (C++: int) + | @param cmt (C++: const char *) | | flow_chart_created(self, *args) -> 'void' + | Gui has retrieved a function flow chart. Plugins may modify the flow + | chart in this callback. + | | flow_chart_created(self, fc) + | @param fc (C++: qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' + | The kernel has deleted a function frame. + | | frame_deleted(self, pfn) + | @param pfn (C++: func_t *) | | func_added(self, *args) -> 'void' + | The kernel has added a function. + | | func_added(self, pfn) + | @param pfn (C++: func_t *) + | + | func_deleted(self, *args) -> 'void' + | A function has been deleted. + | + | func_deleted(self, func_ea) + | @param func_ea (C++: ea_t) | | func_noret_changed(self, *args) -> 'void' + | 'FUNC_NORET' bit has been changed. + | | func_noret_changed(self, pfn) + | @param pfn (C++: func_t *) | | func_tail_appended(self, *args) -> 'void' + | A function tail chunk has been appended. + | | func_tail_appended(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: func_t *) | | func_tail_deleted(self, *args) -> 'void' + | A function tail chunk has been removed. + | | func_tail_deleted(self, pfn, tail_ea) + | @param pfn (C++: func_t *) + | @param tail_ea (C++: ea_t) | | func_updated(self, *args) -> 'void' + | The kernel has updated a function. + | | func_updated(self, pfn) + | @param pfn (C++: func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' + | FLIRT signature has been loaded for normal processing (not for + | recognition of startup sequences). + | | idasgn_loaded(self, short_sig_name) + | @param short_sig_name (C++: const char *) | | item_color_changed(self, *args) -> 'void' + | An item color has been changed. + | | item_color_changed(self, ea, color) + | @param ea (C++: ea_t) + | @param color: if color==DEFCOLOR, the the color is deleted. (C++: + | bgcolor_t) | | kernel_config_loaded(self, *args) -> 'void' - | kernel_config_loaded(self) + | This event is issued when ida.cfg is parsed. + | + | kernel_config_loaded(self, pass_number) + | @param pass_number (C++: int) | | loader_finished(self, *args) -> 'void' + | External file loader finished its work. Use this event to augment the + | existing loader functionality. + | | loader_finished(self, li, neflags, filetypename) + | @param li (C++: linput_t *) + | @param neflags: Load file flags (C++: uint16) + | @param filetypename (C++: const char *) | | local_types_changed(self, *args) -> 'void' - | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) -> 'void' + | An instruction is being created. + | | make_code(self, insn) + | @param insn (C++: const insn_t*) | | make_data(self, *args) -> 'void' + | A data item is being created. + | | make_data(self, ea, flags, tid, len) + | @param ea (C++: ea_t) + | @param flags (C++: flags_t) + | @param tid (C++: tid_t) + | @param len (C++: asize_t) | | op_ti_changed(self, *args) -> 'void' + | An operand typestring (c/c++ prototype) has been changed. + | | op_ti_changed(self, ea, n, type, fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | op_type_changed(self, *args) -> 'void' + | An operand type (offset, hex, etc...) has been set or deleted. + | | op_type_changed(self, ea, n) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) | | range_cmt_changed(self, *args) -> 'void' + | Range comment has been changed. + | | range_cmt_changed(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | renamed(self, *args) -> 'void' + | The kernel has renamed a byte. See also the \idpcode{rename} event + | | renamed(self, ea, new_name, local_name) + | @param ea (C++: ea_t) + | @param new_name (C++: const char *) + | @param local_name (C++: bool) | | renaming_enum(self, *args) -> 'void' + | An enum or enum member is to be renamed. + | | renaming_enum(self, id, is_enum, newname) + | @param id (C++: tid_t) + | @param is_enum (C++: bool) + | @param newname (C++: const char *) | | renaming_struc(self, *args) -> 'void' + | A structure type is to be renamed. + | | renaming_struc(self, id, oldname, newname) + | @param id (C++: tid_t) + | @param oldname (C++: const char *) + | @param newname (C++: const char *) | | renaming_struc_member(self, *args) -> 'void' + | A structure member is to be renamed. + | | renaming_struc_member(self, sptr, mptr, newname) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param newname (C++: const char *) | | savebase(self, *args) -> 'void' - | savebase(self) + | The database is being saved. | | segm_added(self, *args) -> 'void' + | A new segment has been created. + | | segm_added(self, s) + | @param s: See also adding_segm (C++: segment_t *) | | segm_attrs_updated(self, *args) -> 'void' + | Segment attributes has been changed. + | | segm_attrs_updated(self, s) + | @param s: This event is generated for secondary segment attributes + | (examples: color, permissions, etc) (C++: segment_t *) | | segm_class_changed(self, *args) -> 'void' + | Segment class has been changed. + | | segm_class_changed(self, s, sclass) + | @param s (C++: segment_t *) + | @param sclass (C++: const char *) | | segm_deleted(self, *args) -> 'void' + | A segment has been deleted. + | | segm_deleted(self, start_ea, end_ea) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) | | segm_end_changed(self, *args) -> 'void' + | Segment end address has been changed. + | | segm_end_changed(self, s, oldend) + | @param s (C++: segment_t *) + | @param oldend (C++: ea_t) | | segm_moved(self, *args) -> 'void' + | Segment has been moved. + | | segm_moved(self, _from, to, size, changed_netmap) + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param size (C++: asize_t) + | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) | | segm_name_changed(self, *args) -> 'void' + | Segment name has been changed. + | | segm_name_changed(self, s, name) + | @param s (C++: segment_t *) + | @param name (C++: const char *) | | segm_start_changed(self, *args) -> 'void' + | Segment start address has been changed. + | | segm_start_changed(self, s, oldstart) + | @param s (C++: segment_t *) + | @param oldstart (C++: ea_t) | | set_func_end(self, *args) -> 'void' + | Function chunk end address will be changed. + | | set_func_end(self, pfn, new_end) + | @param pfn (C++: func_t *) + | @param new_end (C++: ea_t) | | set_func_start(self, *args) -> 'void' + | Function chunk start address will be changed. + | | set_func_start(self, pfn, new_start) + | @param pfn (C++: func_t *) + | @param new_start (C++: ea_t) | | sgr_changed(self, *args) -> 'void' + | The kernel has changed a segment register value. + | | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) + | @param value (C++: sel_t) + | @param old_value (C++: sel_t) + | @param tag: Segment register range tags (C++: uchar) | | sgr_deleted(self, *args) -> 'void' + | The kernel has deleted a segment register value. + | | sgr_deleted(self, start_ea, end_ea, regnum) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) | | stkpnts_changed(self, *args) -> 'void' + | Stack change points have been modified. + | | stkpnts_changed(self, pfn) + | @param pfn (C++: func_t *) | | struc_align_changed(self, *args) -> 'void' + | A structure type has been changed (the struct alignment). + | | struc_align_changed(self, sptr) + | @param sptr (C++: struc_t *) | | struc_cmt_changed(self, *args) -> 'void' + | A structure type comment has been changed. + | | struc_cmt_changed(self, struc_id, repeatable_cmt) + | @param struc_id (C++: tid_t) + | @param repeatable_cmt (C++: bool) | | struc_created(self, *args) -> 'void' + | A new structure type has been created. + | | struc_created(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_deleted(self, *args) -> 'void' + | A structure type has been deleted. + | | struc_deleted(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_expanded(self, *args) -> 'void' + | A structure type has been expanded/shrank. + | | struc_expanded(self, sptr) + | @param sptr (C++: struc_t *) | | struc_member_changed(self, *args) -> 'void' + | A structure member has been changed. + | | struc_member_changed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_created(self, *args) -> 'void' + | A structure member has been created. + | | struc_member_created(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_deleted(self, *args) -> 'void' + | A structure member has been deleted. + | | struc_member_deleted(self, sptr, member_id, offset) + | @param sptr (C++: struc_t *) + | @param member_id (C++: tid_t) + | @param offset (C++: ea_t) | | struc_member_renamed(self, *args) -> 'void' + | A structure member has been renamed. + | | struc_member_renamed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_renamed(self, *args) -> 'void' + | A structure type has been renamed. + | | struc_renamed(self, sptr) + | @param sptr (C++: struc_t *) | | tail_owner_changed(self, *args) -> 'void' + | A tail chunk owner has been changed. + | | tail_owner_changed(self, tail, owner_func, old_owner) + | @param tail (C++: func_t *) + | @param owner_func (C++: ea_t) + | @param old_owner (C++: ea_t) | | thunk_func_created(self, *args) -> 'void' + | A thunk bit has been set for a function. + | | thunk_func_created(self, pfn) + | @param pfn (C++: func_t *) | | ti_changed(self, *args) -> 'void' + | An item typestring (c/c++ prototype) has been changed. + | | ti_changed(self, ea, type, fnames) + | @param ea (C++: ea_t) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | tryblks_updated(self, *args) -> 'void' + | Updated tryblk information + | | tryblks_updated(self, tbv) + | @param tbv (C++: const tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' + | About to update tryblk information + | | updating_tryblks(self, tbv) + | @param tbv (C++: const tryblks_t *) | | upgraded(self, *args) -> 'void' + | The database has been upgraded and the receiver can upgrade its info + | as well + | | upgraded(self, _from) + | @param _from: - old IDB version (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -40895,6 +45698,7 @@ class IDP_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> IDP_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -40902,473 +45706,1244 @@ class IDP_Hooks(builtins.object) | delete_IDP_Hooks(self) | | ev_add_cref(self, *args) -> 'int' + | A code reference is being created. + | | ev_add_cref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: cref_t) + | @retval: <0 - cancel cref creation + | @retval: 0 - not implemented or continue | | ev_add_dref(self, *args) -> 'int' + | A data reference is being created. + | | ev_add_dref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: dref_t) + | @retval: <0 - cancel dref creation + | @retval: 0 - not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' + | Adjust argloc according to its type/size and platform endianess + | | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | @param argloc: , inout (C++: argloc_t *) + | optional_type: tinfo_t const * + | @param size: 'size' makes no sense if type != NULL (type->get_size() + | should be used instead) (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_adjust_libfunc_ea(self, *args) -> '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.'ea' initially contains the ea_t of + | the start of the pattern match + | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | @param sig (C++: const idasgn_t *) + | @param libfun (C++: const libfunc_t *) + | @param ea (C++: ea_t *) + | @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' + | 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) + | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | @param ri (C++: refinfo_t *) + | @param ea: instruction address (C++: ea_t) + | @param n: operand number (C++: int) + | @param fd (C++: const fixup_data_t *) + | @retval: <0 - do not create an offset + | @retval: 0 - not implemented or refinfo adjusted | | ev_ana_insn(self, *args) -> '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. + | | 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. + | @param out (C++: insn_t *) + | @retval: 0 - if instruction can't be decoded. | | ev_analyze_prolog(self, *args) -> 'int' + | Analyzes function prolog, epilog, and updates purge, and function + | attributes + | | ev_analyze_prolog(self, ea) -> int + | @param ea: start of function (C++: ea_t) + | @retval: 1 - ok + | @retval: 0 - not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | The loader is done parsing arch-related information, which the + | processor module might want to use to finish its initialization. | | ev_arg_addrs_ready(self, *args) -> 'int' + | Argument address info is ready. + | | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | @param caller (C++: ea_t) + | @param n: number of formal arguments (C++: int) + | @param tif: call prototype (C++: tinfo_t *) + | @param addrs: argument intilization addresses (C++: ea_t *) + | @retval: <0 - do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | After setting a new assembler + | + | ev_asm_installed(self, asmnum) -> int + | @param asmnum: See also ev_newasm (C++: int) | | ev_assemble(self, *args) -> 'PyObject *' + | Assemble an instruction. (display a warning if an error is found). + | | 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 + | @param ea: linear address of instruction (C++: ea_t) + | @param cs: cs of instruction (C++: ea_t) + | @param ip: ip of instruction (C++: ea_t) + | @param use32: is 32bit segment? (C++: bool) + | @param line: line to assemble (C++: const char *) | - | ev_auto_queue_empty(self, *args) -> 'void' - | ev_auto_queue_empty(self, type) + | ev_auto_queue_empty(self, *args) -> 'int' + | One analysis queue is empty. + | + | ev_auto_queue_empty(self, type) -> int + | @param type (C++: atype_t) + | @retval: void - see also idb_event::auto_empty_finally | | ev_calc_arglocs(self, *args) -> 'int' + | Calculate function argument locations. This callback should fill + | retloc, all arglocs, and stkargs. This callback is never called for + | 'CM_CC_SPECIAL' functions. + | | ev_calc_arglocs(self, fti) -> int + | @param fti: points to the func type info (C++: func_type_data_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | Calculate number of purged bytes after call. + | | ev_calc_cdecl_purged_bytes(self, ea) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' + | Calculate list of addresses the instruction in 'insn' may pass control + | to. This callback is required for source level debugging. + | | ev_calc_next_eas(self, res, insn, over) -> int + | @param res: , out: array for the results. (C++: eavec_t *) + | @param insn: the instruction (C++: const insn_t*) + | @param over: calculate for step over (ignore call targets) (C++: + | bool) + | @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' + | Calculate number of purged bytes by the given function type. + | | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | @param p_purged_bytes: ptr to output (C++: int *) + | @param fti: func type details (C++: const func_type_data_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_calc_retloc(self, *args) -> 'int' + | Calculate return value location. + | | ev_calc_retloc(self, retloc, rettype, cc) -> int + | @param retloc (C++: argloc_t *) + | @param rettype (C++: const tinfo_t *) + | @param cc (C++: cm_t) + | @retval: 0 - not implemented + | @retval: 1 - ok, + | @retval: -1 - error | | ev_calc_spdelta(self, *args) -> 'int' + | Calculate amount of change to sp for the given insn. This event is + | required to decompile code snippets. + | | ev_calc_spdelta(self, spdelta, insn) -> int + | @param spdelta (C++: sval_t *) + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_calc_step_over(self, *args) -> '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' . + | | ev_calc_step_over(self, target, ip) -> int + | @param target: pointer to the answer (C++: ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_calc_switch_cases(self, *args) -> 'int' + | Calculate case values and targets for a custom jump table. + | | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | @param casevec: vector of case values (may be NULL) (C++: casevec_t + | *) + | @param targets: corresponding target addresses (my be NULL) (C++: + | eavec_t *) + | @param insn_ea: address of the 'indirect jump' instruction (C++: + | ea_t) + | @param si: switch information (C++: switch_info_t *) + | @retval: 1 - ok + | @retval: <=0 - failed | | ev_calc_varglocs(self, *args) -> 'int' + | Calculate locations of the arguments that correspond to '...'. + | | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | @param ftd: , inout: info about all arguments (including varargs) + | (C++: func_type_data_t *) + | @param aux_regs: buffer for hidden register arguments, may be NULL + | (C++: regobjs_t *) + | @param aux_stkargs: buffer for hidden stack arguments, may be NULL + | (C++: relobj_t *) + | @param nfixed: number of fixed arguments (C++: int) + | @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' + | 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) + | | ev_can_have_type(self, op) -> int + | @param op (C++: const op_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_clean_tbit(self, *args) -> 'int' + | Clear the TF bit after an insn like pushf stored it in memory. + | | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | @param ea: instruction address (C++: ea_t) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 1 - ok + | @retval: 0 - failed | | ev_cmp_operands(self, *args) -> 'int' + | Compare instruction operands + | | ev_cmp_operands(self, op1, op2) -> int + | @param op1 (C++: const op_t*) + | @param op2 (C++: const op_t*) + | @retval: 1 - equal + | @retval: -1 - not equal + | @retval: 0 - not implemented | | ev_coagulate(self, *args) -> '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. + | | ev_coagulate(self, start_ea) -> int + | @param start_ea (C++: ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, *args) -> 'int' + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. + | for thumb mode refs, we clear the last bit) + | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param may_define (C++: bool) + | @param code_ea (C++: ea_t *) + | @retval: <0 - cancel dref analysis + | @retval: 0 - not implemented or continue | | ev_create_flat_group(self, *args) -> 'int' + | Create special segment representing the flat group. + | | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | @param image_base (C++: ea_t) + | @param bitness (C++: int) + | @param dataseg_sel: return value is ignored (C++: sel_t) | | ev_create_func_frame(self, *args) -> 'int' + | Create a function frame for a newly created function Set up frame + | size, its attributes etc + | | ev_create_func_frame(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_create_switch_xrefs(self, *args) -> 'int' + | Create xrefs for a custom jump table. + | | ev_create_switch_xrefs(self, jumpea, si) -> int + | @param jumpea: address of the jump insn (C++: ea_t) + | @param si: switch information (C++: const switch_info_t *) + | @return: must return 1 Must be implemented if module uses custom jump + | tables, | | ev_creating_segm(self, *args) -> 'int' + | A new segment is about to be created. + | | ev_creating_segm(self, seg) -> int + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: <0 - segment should not be created | | ev_decorate_name(self, *args) -> 'PyObject *' + | Decorate/undecorate a C symbol name. + | | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | @param name: name of symbol (C++: const char *) + | @param mangle: true-mangle, false-unmangle (C++: bool) + | @param cc: calling convention (C++: cm_t) + | optional_type: tinfo_t const * + | @retval: 1 - if success + | @retval: 0 - not implemented or failed | | ev_del_cref(self, *args) -> 'int' + | A code reference is being deleted. + | | ev_del_cref(self, _from, to, expand) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param expand (C++: bool) + | @retval: <0 - cancel cref deletion + | @retval: 0 - not implemented or continue | | ev_del_dref(self, *args) -> 'int' + | A data reference is being deleted. + | | ev_del_dref(self, _from, to) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @retval: <0 - cancel dref deletion + | @retval: 0 - not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' + | Get delay slot instructionInput EA may point to the instruction with a + | delay slot or to the delay slot instruction itself. + | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | @param ea: 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) (C++: ea_t *) + | @param bexec: execute slot if jumping, initially set to 'true' (C++: + | bool *) + | @param fexec: execute slot if not jumping, initally set to 'true' + | (C++: bool *) + | @retval: 1 - positive answer + | @retval: <=0 - ordinary insn | | ev_demangle_name(self, *args) -> 'PyObject *' + | Demangle a C++ (or another language) name into a user-readable string. + | This event is called by 'demangle_name()' if you call + | 'demangle_name()' from the handler, protect against recursion! + | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | @param name: mangled name (C++: const char *) + | @param disable_mask: flags to inhibit parts of output or compiler + | info/other (see MNG_) (C++: uint32) + | @param demreq: operation to perform (C++: demreq_type_t) + | @retval: 1 - if success + | @retval: 0 - not implemented | | 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. + | 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_emu_insn(self, insn) -> bool + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: -1 - the kernel will delete the instruction | | ev_endbinary(self, *args) -> 'int' + | IDA has loaded a binary file. + | | ev_endbinary(self, ok) -> int + | @param ok: file loaded successfully? (C++: bool) | | ev_ending_undo(self, *args) -> 'int' + | Ended undoing/redoing an action + | | ev_ending_undo(self, action_name, is_undo) -> int + | @param action_name: action that we finished undoing/redoing. is not + | NULL. (C++: const char *) + | @param is_undo: true if performing undo, false if performing redo + | (C++: bool) | | ev_equal_reglocs(self, *args) -> 'int' + | Are 2 register arglocs the same?. We need this callback for the pc + | module. + | | ev_equal_reglocs(self, a1, a2) -> int + | @param a1 (C++: argloc_t *) + | @param a2 (C++: argloc_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented | | ev_extract_address(self, *args) -> 'int' + | Extract address from a string. + | | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | @param out_ea: , out (C++: ea_t *) + | @param screen_ea (C++: ea_t) + | @param string (C++: const char *) + | @param position (C++: size_t) + | @retval: 1 - ok + | @retval: 0 - kernel should use the standard algorithm + | @retval: -1 - error | | ev_find_op_value(self, *args) -> 'PyObject *' + | Find operand value via a register tracker. The returned value in 'out' + | is valid before executing the instruction. + | | ev_find_op_value(self, pinsn, opn) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param opn: operand index (C++: int) + | @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 *' + | Find register value via a register tracker. The returned value in + | 'out' is valid before executing the instruction. + | | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param reg: register index (C++: int) + | @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' + | 'find_func_bounds()' finished its work. The module may fine tune the + | function bounds + | + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | @param possible_return_code: , in/out (C++: int *) + | @param pfn (C++: func_t *) + | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) + | @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' + | Callback: generating asm or lst file. The kernel calls this callback + | twice, at the beginning and at the end of listing generation. The + | processor module can intercept this event and adjust its output + | + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | @param starting: beginning listing generation (C++: bool) + | @param fp: output file (C++: FILE *) + | @param is_asm: true:assembler, false:listing (C++: bool) + | @param flags: flags passed to gen_file() (C++: int) + | @param outline: 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 (C++: html_line_cb_t + | **) + | @retval: void - | | ev_gen_map_file(self, *args) -> 'int' + | Generate map file. If not implemented the kernel itself will create + | the map file. + | | ev_gen_map_file(self, nlines, fp) -> int + | @param nlines: number of lines in map file (-1 means write error) + | (C++: int *) + | @param fp: output file (C++: FILE *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - write error | | ev_gen_regvar_def(self, *args) -> 'int' + | Generate register variable definition line. + | | ev_gen_regvar_def(self, outctx, v) -> int + | @param outctx (C++: outctx_t *) + | @param v (C++: regvar_t *) + | @retval: >0 - ok, generated the definition text + | @retval: 0 - not implemented | | ev_gen_src_file_lnnum(self, *args) -> 'int' + | Callback: generate analog of: + | + | < #line "file.c" 123 + | < + | + | directive. + | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | @param outctx: output context (C++: outctx_t *) + | @param file: source file (may be NULL) (C++: const char *) + | @param lnnum: line number (C++: size_t) + | @retval: 1 - directive has been generated + | @retval: 0 - not implemented | | ev_gen_stkvar_def(self, *args) -> 'int' + | Generate stack variable definition line Default line is varname = type + | ptr value, where 'type' is one of byte,word,dword,qword,tbyte + | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | @param outctx (C++: outctx_t *) + | @param mptr (C++: const member_t *) + | @param v (C++: sval_t) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_get_abi_info(self, *args) -> 'int' + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and + | underscore + | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | @param abi_names: - all possible ABis each in form abiname- + | opt1-opt2-... (C++: qstrvec_t *) + | @param abi_opts: - array of all possible options in form + | "opt:description" or opt:hint-line#description (C++: + | qstrvec_t *) + | @param comp: - compiler ID (C++: comp_t) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_get_autocmt(self, *args) -> 'PyObject *' + | Callback: get dynamic auto comment. Will be called if the autocomments + | are enabled and the comment retrieved from ida.int starts with '$!'. + | 'insn' contains valid info. + | | ev_get_autocmt(self, insn) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @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' + | Get item background color. Plugins can hook this callback to color + | disassembly lines dynamically + | | ev_get_bg_color(self, ea) -> int or None + | @param color: , out (C++: bgcolor_t *) + | @param ea (C++: ea_t) + | @retval: 0 - not implemented + | @retval: 1 - color set | | ev_get_cc_regs(self, *args) -> 'int' + | Get register allocation convention for given calling convention + | | ev_get_cc_regs(self, regs, cc) -> int + | @param regs: , out (C++: callregs_t *) + | @param cc (C++: cm_t) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_get_code16_mode(self, *args) -> 'int' + | Get ISA 16-bit mode + | | ev_get_code16_mode(self, ea) -> int + | @param ea: address to get the ISA mode (C++: ea_t) + | @retval: 1 - 16-bit mode + | @retval: 0 - not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' + | Get the number of the operand to be displayed in the debugger + | reference view (text mode). + | | ev_get_dbr_opnum(self, opnum, insn) -> int + | @param opnum: operand number (out, -1 means no such operand) (C++: + | int *) + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | ev_get_default_enum_size(self, cm) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is + | used instead | | ev_get_frame_retsize(self, *args) -> 'int' + | Get size of function return address in bytes If this event is not + | implemented, the kernel will assume8 bytes for 64-bit function4 bytes + | for 32-bit function2 bytes otherwise + | | ev_get_frame_retsize(self, frsize, pfn) -> int + | @param frsize: frame size (out) (C++: int *) + | @param pfn: , can't be NULL (C++: const func_t *) | | ev_get_macro_insn_head(self, *args) -> 'int' + | Calculate the start of a macro instruction. This notification is + | called if IP points to the middle of an instruction + | | ev_get_macro_insn_head(self, head, ip) -> int + | @param head: , out: answer, BADADDR means normal instruction (C++: + | ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_operand_string(self, *args) -> 'PyObject *' + | Request text string for operand (cli, java, ...). + | | ev_get_operand_string(self, insn, opnum) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @param opnum: operand number, -1 means any string operand (C++: int) + | @retval: 0 - no string (or empty string) + | @retval: >0 - original string length without terminating zero + | + | ev_get_procmod(self, *args) -> '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' + | Get info about the registers that are used/changed by an instruction. + | + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | @param accvec: out: info about accessed registers (C++: + | reg_accesses_t*) + | @param insn: instruction in question (C++: const insn_t *) + | @param flags: reserved, must be 0 (C++: int) + | @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' + | 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 + | \ph{reg_names} and they all have the same size + | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | @param main_regname: , out (C++: const char **) + | @param bitrange: , out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | (C++: bitrange_t *) + | @param regname (C++: const char *) + | @retval: 1 - ok + | @retval: -1 - failed (not found) + | @retval: 0 - unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' + | Generate text representation of a register. Most processor modules do + | not need to implement this callback. It is useful only if + | \ph{reg_names}[reg] does not provide the correct register name. + | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | @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 not -1 then this function will return the register + | pair (C++: int) + | @retval: -1 - if error + | @retval: strlen(buf) - if success | | ev_get_simd_types(self, *args) -> 'int' + | Get SIMD-related types according to given attributes ant/or argument + | location + | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | @param out (C++: simd_info_vec_t *) + | @param simd_attrs: , may be NULL (C++: const simd_info_t *) + | @param argloc: , may be NULL (C++: const argloc_t *) + | @param create_tifs: return valid tinfo_t objects, create if neccessary + | (C++: bool) + | @retval: number - of found types + | @retval: -1 - error If name==NULL, initialize all SIMD types | | ev_get_stkarg_offset(self, *args) -> 'int' - | ev_get_stkarg_offset(self) -> int + | Get offset from SP to the first stack argument. For example: pc: 0, + | hppa: -0x34, ppc: 0x38 | | 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 + | 'PR_SCALE_STKVARS' should be set to use this callback | | ev_getreg(self, *args) -> 'int' + | IBM PC only internal request, should never be used for other purpose + | Get register value by internal index + | | ev_getreg(self, regval, regnum) -> int + | @param regval: , out (C++: uval_t *) + | @param regnum (C++: int) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' + | The IDP module is just loaded. + | | ev_init(self, idp_modname) -> int + | @param idp_modname: processor module name (C++: const char *) + | @retval: <0 - on failure | | ev_insn_reads_tbit(self, *args) -> 'int' + | Check if insn will read the TF bit. + | | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @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' + | Is the instruction created only for alignment purposes?. Do not + | directly call this function, use 'is_align_insn()' + | | ev_is_align_insn(self, ea) -> int + | @param ea: - instruction address (C++: ea_t) + | @retval: number - of bytes in the instruction | | ev_is_alloca_probe(self, *args) -> 'int' + | Does the function at 'ea' behave as __alloca_probe? + | | ev_is_alloca_probe(self, ea) -> int + | @param ea (C++: ea_t) + | @retval: 1 - yes + | @retval: 0 - no | | ev_is_basic_block_end(self, *args) -> 'int' + | Is the current instruction end of a basic block?. This function should + | be defined for processors with delayed jump slots. + | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param call_insn_stops_block (C++: 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 + | ev_is_call_insn(self, insn) -> int + | @param insn: instruction (C++: const insn_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_cond_insn(self, *args) -> 'int' + | Is conditional instruction? + | | ev_is_cond_insn(self, insn) -> int + | @param insn: instruction address (C++: const insn_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented or not instruction | | ev_is_far_jump(self, *args) -> 'int' + | is indirect far jump or call instruction? meaningful only if the + | processor has 'near' and 'far' reference types + | | ev_is_far_jump(self, icode) -> int + | @param icode (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - yes + | @retval: -1 - no | | ev_is_indirect_jump(self, *args) -> 'int' + | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot + | describe all jump types jumps, please define this callback. + | | ev_is_indirect_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - use CF_JUMP + | @retval: 1 - no + | @retval: 2 - yes | | ev_is_insn_table_jump(self, *args) -> 'int' + | Determine if instruction is a table jump or call. If 'CF_JUMP' bit + | cannot describe all kinds of table jumps, please define this callback. + | It will be called for insns with 'CF_JUMP' bit set. + | | ev_is_insn_table_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - yes + | @retval: <0 - no | | ev_is_jump_func(self, *args) -> 'int' + | Is the function a trivial "jump" function?. + | | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | @param pfn (C++: func_t *) + | @param jump_target (C++: ea_t *) + | @param func_pointer (C++: 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 + | ev_is_ret_insn(self, insn, strict) -> int + | @param insn: instruction (C++: const insn_t *) + | @param strict: 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog (C++: + | bool) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_sane_insn(self, *args) -> 'int' + | Is the instruction sane for the current file type?. + | | 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 + | @param insn: the instruction (C++: const insn_t*) + | @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. + | (C++: int) + | @retval: >=0 - ok + | @retval: <0 - no, the instruction isn't likely to appear in the + | program | | ev_is_sp_based(self, *args) -> '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. + | | ev_is_sp_based(self, mode, insn, op) -> int + | @param mode: out, combination of SP/FP operand flags (C++: int *) + | @param insn (C++: const insn_t *) + | @param op (C++: const op_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_is_switch(self, *args) -> 'int' + | Find 'switch' idiom. It will be called for instructions marked with + | 'CF_JUMP' . + | | ev_is_switch(self, si, insn) -> int + | @param si: , out (C++: switch_info_t *) + | @param insn: instruction possibly belonging to a switch (C++: const + | insn_t *) + | @retval: 1 - switch is found, 'si' is filled + | @retval: 0 - no switch found or 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' + | 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. + | | ev_lower_func_type(self, argnums, fti) -> int + | @param argnums: , out - numbers of arguments to be converted to + | pointers in acsending order (C++: intvec_t *) + | @param fti: , inout func type details (special values -1/-2 for return + | value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) (C++: func_type_data_t *) + | @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. | | 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) + | ev_may_be_func(self, insn, state) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param state: autoanalysis phase 0: creating functions 1: creating + | chunks (C++: int) + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) -> 'int' + | The kernel wants to display the segment registers in the messages + | window. + | | ev_may_show_sreg(self, current_ea) -> int + | @param current_ea (C++: 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' + | May the kernel move the segment? + | | ev_moving_segm(self, seg, to, flags) -> int + | @param seg: segment to move (C++: segment_t *) + | @param to: new segment start address (C++: ea_t) + | @param flags: combination of Move segment flags (C++: int) + | @retval: 0 - yes + | @retval: <0 - the kernel should stop | | ev_newasm(self, *args) -> 'int' + | Before setting a new assembler. + | | ev_newasm(self, asmnum) -> int + | @param asmnum: See also ev_asm_installed (C++: int) | | ev_newbinary(self, *args) -> 'int' + | IDA is about to load a binary file. + | | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | @param filename: binary file name (C++: char *) + | @param fileoff: offset in the file (C++: qoff64_t) + | @param basepara: base loading paragraph (C++: ea_t) + | @param binoff: loader offset (C++: ea_t) + | @param nbytes: number of bytes to load (C++: uint64) | | ev_newfile(self, *args) -> 'int' + | A new file has been loaded. + | | ev_newfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_newprc(self, *args) -> 'int' + | Before changing processor type. + | | ev_newprc(self, pnum, keep_cfg) -> int + | @param pnum: processor number in the array of processor names (C++: + | int) + | @param keep_cfg: true: do not modify kernel configuration (C++: bool) + | @retval: 1 - ok + | @retval: <0 - prohibit | | ev_next_exec_insn(self, *args) -> '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. + | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | @param target: , out: pointer to the answer (C++: ea_t *) + | @param ea: instruction address (C++: ea_t) + | @param tid: current therad id (C++: int) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_oldfile(self, *args) -> 'int' + | An old file has been loaded. + | | ev_oldfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_out_assumes(self, *args) -> 'int' + | Function to produce assume directives when segment register value + | changes. + | | ev_out_assumes(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_data(self, *args) -> 'int' + | Generate text representation of data items This function may change + | the database and create cross-references if analyze_only is set + | | ev_out_data(self, outctx, analyze_only) -> int + | @param outctx (C++: outctx_t *) + | @param analyze_only (C++: 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' + | Function to produce end of disassembled text + | + | ev_out_footer(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | - | ev_out_header(self, *args) -> 'void' - | ev_out_header(self, outctx) + | ev_out_header(self, *args) -> 'int' + | Function to produce start of disassembled text + | + | ev_out_header(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_insn(self, *args) -> '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. + | | ev_out_insn(self, outctx) -> bool - | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_label(self, *args) -> 'int' + | The kernel is going to generate an instruction label line or a + | function header. + | | ev_out_label(self, outctx, colored_name) -> int + | @param outctx (C++: outctx_t *) + | @param colored_name (C++: const char *) + | @retval: <0 - if the kernel should not generate the label + | @retval: 0 - not implemented or continue | | ev_out_mnem(self, *args) -> 'int' + | Generate instruction mnemonics. This callback should append the + | colored mnemonics to ctx.outbuf Optional notification, if absent, + | out_mnem will be called. + | | ev_out_mnem(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - if appended the mnemonics + | @retval: 0 - not implemented | | ev_out_operand(self, *args) -> '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. + | | 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) + | @param outctx (C++: outctx_t *) + | @param op (C++: const op_t *) + | @retval: 1 - ok + | @retval: -1 - operand is hidden | | ev_out_segend(self, *args) -> 'int' + | Function to produce end of segment + | | ev_out_segend(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_segstart(self, *args) -> 'int' + | Function to produce start of segment + | | ev_out_segstart(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_special_item(self, *args) -> 'int' + | Generate text representation of an item in a special segment i.e. + | absolute symbols, externs, communal definitions etc + | | ev_out_special_item(self, outctx, segtype) -> int + | @param outctx (C++: outctx_t *) + | @param segtype (C++: uchar) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - overflow | | ev_realcvt(self, *args) -> 'int' + | Floating point -> IEEE conversion + | | ev_realcvt(self, m, e, swt) -> int + | @param m: pointer to data (C++: void *) + | @param e: internal IEEE format data (C++: uint16 *) + | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) + | @retval: 0 - not implemented + | @retval: 1 - ok | | 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 + | ev_rename(self, ea, new_name) -> int + | @param ea (C++: ea_t) + | @param new_name (C++: 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 + | \idpcode{renamed} the return value is ignored when kernel + | is going to delete name | | ev_replaying_undo(self, *args) -> 'int' + | Replaying an undo/redo buffer + | | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | @param action_name: action that we perform undo/redo for. may be NULL + | for intermediary buffers. (C++: const char *) + | @param vec (C++: const undo_records_t *) + | @param is_undo: true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | (C++: bool) | | ev_set_code16_mode(self, *args) -> 'int' + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, + | MIPS16 Set ISA 16-bit mode + | | ev_set_code16_mode(self, ea, code16) -> int + | @param ea: address to set new ISA mode (C++: ea_t) + | @param code16: true for 16-bit mode, false for 32-bit mode (C++: + | bool) | | ev_set_idp_options(self, *args) -> 'int' + | Set IDP-specific configuration option Also see set_options_t in + | 'config.hpp' + | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | @param keyword (C++: const char *) + | @param value_type (C++: int) + | @param value (C++: const void *) + | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been + | generated (C++: bool) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - error (and message in errbuf) | | ev_set_proc_options(self, *args) -> '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(). + | | ev_set_proc_options(self, options, confidence) -> int + | @param options (C++: const char *) + | @param confidence: 0: loader's suggestion 1: user's decision (C++: + | int) + | @retval: <0 - if bad option string | - | ev_setup_til(self, *args) -> 'void' - | ev_setup_til(self) + | ev_setup_til(self, *args) -> '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. | | ev_shadow_args_size(self, *args) -> 'int' + | Get size of shadow args in bytes. + | | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | @param shadow_args_size (C++: int *) + | @param pfn: (may be NULL) (C++: func_t *) + | @retval: 1 - if filled *shadow_args_size + | @retval: 0 - not implemented | | ev_str2reg(self, *args) -> 'int' + | Convert a register name to a register number. The register number is + | the register index in the \ph{reg_names} array Most processor modules + | do not need to implement this callback It is useful only if + | \ph{reg_names}[reg] does not provide the correct register names + | | ev_str2reg(self, regname) -> int + | @param regname (C++: 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' + | An item hinders creation of another item. + | | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | @param hindering_item_ea (C++: ea_t) + | @param new_item_flags: (0 for code) (C++: flags_t) + | @param new_item_ea (C++: ea_t) + | @param new_item_length (C++: asize_t) + | @retval: 0 - no reaction + | @retval: !=0 - the kernel may delete the hindering item | | ev_undefine(self, *args) -> 'int' + | An item in the database (insn or data) is being deleted. + | | 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 + | @param ea (C++: ea_t) + | @retval: 1 - do not delete srranges at the item end + | @retval: 0 - srranges can be deleted | | ev_use_arg_types(self, *args) -> 'int' + | Use information about callee arguments. + | | ev_use_arg_types(self, ea, fti, rargs) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @param fti: info about function type (C++: func_type_data_t *) + | @param rargs: array of register arguments (C++: funcargvec_t *) + | @retval: 1 - (and removes handled arguments from fti and rargs) + | @retval: 0 - not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' + | Use information about register argument. + | | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | @param ea: address of the instruction (C++: ea_t) + | @param rargs: vector of register arguments (including regs extracted + | from scattered arguments) (C++: const funcargvec_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_use_stkarg_type(self, *args) -> 'int' + | Use information about a stack argument. + | | ev_use_stkarg_type(self, ea, arg) -> int + | @param ea: address of the push instruction which pushes the function + | argument into the stack (C++: ea_t) + | @param arg: argument info (C++: const funcarg_t *) + | @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' + | 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. + | | ev_validate_flirt_func(self, start_ea, funcname) -> int + | @param start_ea (C++: ea_t) + | @param funcname (C++: const char *) + | @retval: -1 - do not create a function, + | @retval: 0 - function is validated | | ev_verify_noreturn(self, *args) -> 'int' + | The kernel wants to set 'noreturn' flags for a function. + | | ev_verify_noreturn(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 0 - ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, *args) -> 'int' + | All function instructions have been analyzed. Now the processor module + | can analyze the stack pointer for the whole function + | | ev_verify_sp(self, pfn) -> int + | @param pfn (C++: 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: @@ -41427,6 +47002,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) @@ -41475,6 +47063,7 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | | __init__(self, proc) | __init__(self, _flags=0) -> IDB_Hooks + | _flags: uint32 | | _processor_t_Trampoline_IDB_Hooks__dummy = __dummy(self, *args) | @@ -41490,293 +47079,722 @@ class _processor_t_Trampoline_IDB_Hooks(IDB_Hooks) | __swig_destroy__ = delete_IDB_Hooks(...) | delete_IDB_Hooks(self) | + | adding_segm(self, *args) -> 'void' + | A segment is being created. + | + | adding_segm(self, s) + | @param s (C++: segment_t *) + | | allsegs_moved(self, *args) -> 'void' + | Program rebasing is complete. This event is generated after series of + | segm_moved events + | | allsegs_moved(self, info) + | @param info (C++: segm_move_infos_t *) | | auto_empty(self, *args) -> 'void' - | auto_empty(self) + | Info: all analysis queues are empty. This callback is called once when + | the initial analysis is finished. If the queue is not empty upon the + | return from this callback, it will be called later again. | | auto_empty_finally(self, *args) -> 'void' - | auto_empty_finally(self) + | Info: all analysis queues are empty definitively. This callback is + | called only once. | | bookmark_changed(self, *args) -> 'void' + | Boomarked position changed. + | | bookmark_changed(self, index, pos, desc) + | @param index (C++: uint32) + | @param pos (C++: const lochist_entry_t *) + | @param desc: if desc==NULL, then the bookmark was deleted. (C++: + | const char *) | | byte_patched(self, *args) -> 'void' + | A byte has been patched. + | | byte_patched(self, ea, old_value) + | @param ea (C++: ea_t) + | @param old_value (C++: uint32) | | callee_addr_changed(self, *args) -> 'void' + | Callee address has been updated by the user. + | | callee_addr_changed(self, ea, callee) + | @param ea (C++: ea_t) + | @param callee (C++: ea_t) | | changing_cmt(self, *args) -> 'void' + | An item comment is to be changed. + | | changing_cmt(self, ea, repeatable_cmt, newcmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) + | @param newcmt (C++: const char *) | | changing_enum_bf(self, *args) -> 'void' + | An enum type 'bitfield' attribute is to be changed. + | | changing_enum_bf(self, id, new_bf) + | @param id (C++: enum_t) + | @param new_bf (C++: bool) | | changing_enum_cmt(self, *args) -> 'void' + | An enum or member type comment is to be changed. + | | changing_enum_cmt(self, id, repeatable, newcmt) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_op_ti(self, *args) -> 'void' + | An operand typestring (c/c++ prototype) is to be changed. + | | changing_op_ti(self, ea, n, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | changing_op_type(self, *args) -> 'void' + | An operand type (offset, hex, etc...) is to be changed. + | | changing_op_type(self, ea, n, opinfo) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) + | @param opinfo: additional operand info (C++: const opinfo_t *) | | changing_range_cmt(self, *args) -> 'void' + | Range comment is to be changed. + | | changing_range_cmt(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | changing_segm_class(self, *args) -> 'void' + | Segment class is being changed. + | | changing_segm_class(self, s) + | @param s (C++: segment_t *) | | changing_segm_end(self, *args) -> 'void' + | Segment end address is to be changed. + | | changing_segm_end(self, s, new_end, segmod_flags) + | @param s (C++: segment_t *) + | @param new_end (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_segm_name(self, *args) -> 'void' + | Segment name is being changed. + | | changing_segm_name(self, s, oldname) + | @param s (C++: segment_t *) + | @param oldname (C++: const char *) | | changing_segm_start(self, *args) -> 'void' + | Segment start address is to be changed. + | | changing_segm_start(self, s, new_start, segmod_flags) + | @param s (C++: segment_t *) + | @param new_start (C++: ea_t) + | @param segmod_flags (C++: int) | | changing_struc_align(self, *args) -> 'void' + | A structure type is being changed (the struct alignment). + | | changing_struc_align(self, sptr) + | @param sptr (C++: struc_t *) | | changing_struc_cmt(self, *args) -> 'void' + | A structure type comment is to be changed. + | | changing_struc_cmt(self, struc_id, repeatable, newcmt) + | @param struc_id (C++: tid_t) + | @param repeatable (C++: bool) + | @param newcmt (C++: const char *) | | changing_struc_member(self, *args) -> 'void' + | A structure member is to be changed. + | | changing_struc_member(self, sptr, mptr, flag, ti, nbytes) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param flag (C++: flags_t) + | @param ti (C++: const opinfo_t *) + | @param nbytes (C++: asize_t) | | changing_ti(self, *args) -> 'void' + | An item typestring (c/c++ prototype) is to be changed. + | | changing_ti(self, ea, new_type, new_fnames) + | @param ea (C++: ea_t) + | @param new_type (C++: const type_t *) + | @param new_fnames (C++: const p_list *) | | closebase(self, *args) -> 'void' - | closebase(self) + | The database will be closed now. | | cmt_changed(self, *args) -> 'void' + | An item comment has been changed. + | | cmt_changed(self, ea, repeatable_cmt) + | @param ea (C++: ea_t) + | @param repeatable_cmt (C++: bool) | | compiler_changed(self, *args) -> 'void' - | compiler_changed(self) + | The kernel has changed the compiler information. (\inf{cc} structure; + | 'get_abi_name' ) | | deleting_enum(self, *args) -> 'void' + | An enum type is to be deleted. + | | deleting_enum(self, id) + | @param id (C++: enum_t) | | deleting_enum_member(self, *args) -> 'void' + | An enum member is to be deleted. + | | deleting_enum_member(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | deleting_func(self, *args) -> 'void' + | The kernel is about to delete a function. + | | deleting_func(self, pfn) + | @param pfn (C++: func_t *) | | deleting_func_tail(self, *args) -> 'void' + | A function tail chunk is to be removed. + | | deleting_func_tail(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: const range_t *) | | deleting_segm(self, *args) -> 'void' + | A segment is to be deleted. + | | deleting_segm(self, start_ea) + | @param start_ea (C++: ea_t) | | deleting_struc(self, *args) -> 'void' + | A structure type is to be deleted. + | | deleting_struc(self, sptr) + | @param sptr (C++: struc_t *) | | deleting_struc_member(self, *args) -> 'void' + | A structure member is to be deleted. + | | deleting_struc_member(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | deleting_tryblks(self, *args) -> 'void' + | About to delete tryblk information in given range + | | deleting_tryblks(self, range) + | @param range (C++: const range_t *) | | destroyed_items(self, *args) -> 'void' + | Instructions/data have been destroyed in [ea1,ea2). + | | destroyed_items(self, ea1, ea2, will_disable_range) + | @param ea1 (C++: ea_t) + | @param ea2 (C++: ea_t) + | @param will_disable_range (C++: bool) | | determined_main(self, *args) -> 'void' + | The main() function has been determined. + | | determined_main(self, main) + | @param main: address of the main() function (C++: ea_t) + | + | dirtree_link(self, *args) -> 'void' + | Dirtree: an item has been linked/unlinked. + | + | dirtree_link(self, dt, path, link) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param link (C++: bool) + | + | dirtree_mkdir(self, *args) -> 'void' + | Dirtree: a directory has been created. + | + | dirtree_mkdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_move(self, *args) -> 'void' + | Dirtree: a directory or item has been moved. + | + | dirtree_move(self, dt, _from, to) + | @param dt (C++: dirtree_t *) + | @param _from (C++: const char *) + | @param to (C++: const char *) + | + | dirtree_rank(self, *args) -> 'void' + | Dirtree: a directory or item rank has been changed. + | + | dirtree_rank(self, dt, path, rank) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | @param rank (C++: size_t) + | + | dirtree_rmdir(self, *args) -> 'void' + | Dirtree: a directory has been deleted. + | + | dirtree_rmdir(self, dt, path) + | @param dt (C++: dirtree_t *) + | @param path (C++: const char *) + | + | dirtree_rminode(self, *args) -> 'void' + | Dirtree: an inode became unavailable. + | + | dirtree_rminode(self, dt, inode) + | @param dt (C++: dirtree_t *) + | @param inode (C++: inode_t) | | enum_bf_changed(self, *args) -> 'void' + | An enum type 'bitfield' attribute has been changed. + | | enum_bf_changed(self, id) + | @param id (C++: enum_t) | | enum_cmt_changed(self, *args) -> 'void' + | An enum or member type comment has been changed. + | | enum_cmt_changed(self, id, repeatable) + | @param id (C++: tid_t) + | @param repeatable (C++: bool) | | enum_created(self, *args) -> 'void' + | An enum type has been created. + | | enum_created(self, id) + | @param id (C++: enum_t) | | enum_deleted(self, *args) -> 'void' + | An enum type has been deleted. + | | enum_deleted(self, id) + | @param id (C++: enum_t) | | enum_member_created(self, *args) -> 'void' + | An enum member has been created. + | | enum_member_created(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_member_deleted(self, *args) -> 'void' + | An enum member has been deleted. + | | enum_member_deleted(self, id, cid) + | @param id (C++: enum_t) + | @param cid (C++: const_t) | | enum_renamed(self, *args) -> 'void' + | An enum or member has been renamed. + | | enum_renamed(self, id) + | @param id (C++: tid_t) | | expanding_struc(self, *args) -> 'void' + | A structure type is to be expanded/shrunk. + | | expanding_struc(self, sptr, offset, delta) + | @param sptr (C++: struc_t *) + | @param offset (C++: ea_t) + | @param delta (C++: adiff_t) | | extlang_changed(self, *args) -> 'void' + | The list of extlangs or the default extlang was changed. + | | extlang_changed(self, kind, el, idx) + | @param kind: 0: extlang installed 1: extlang removed 2: default + | extlang changed (C++: int) + | @param el: pointer to the extlang affected (C++: extlang_t *) + | @param idx: extlang index (C++: int) | | extra_cmt_changed(self, *args) -> 'void' + | An extra comment has been changed. + | | extra_cmt_changed(self, ea, line_idx, cmt) + | @param ea (C++: ea_t) + | @param line_idx (C++: int) + | @param cmt (C++: const char *) | | flow_chart_created(self, *args) -> 'void' + | Gui has retrieved a function flow chart. Plugins may modify the flow + | chart in this callback. + | | flow_chart_created(self, fc) + | @param fc (C++: qflow_chart_t *) | | frame_deleted(self, *args) -> 'void' + | The kernel has deleted a function frame. + | | frame_deleted(self, pfn) + | @param pfn (C++: func_t *) | | func_added(self, *args) -> 'void' + | The kernel has added a function. + | | func_added(self, pfn) + | @param pfn (C++: func_t *) + | + | func_deleted(self, *args) -> 'void' + | A function has been deleted. + | + | func_deleted(self, func_ea) + | @param func_ea (C++: ea_t) | | func_noret_changed(self, *args) -> 'void' + | 'FUNC_NORET' bit has been changed. + | | func_noret_changed(self, pfn) + | @param pfn (C++: func_t *) | | func_tail_appended(self, *args) -> 'void' + | A function tail chunk has been appended. + | | func_tail_appended(self, pfn, tail) + | @param pfn (C++: func_t *) + | @param tail (C++: func_t *) | | func_tail_deleted(self, *args) -> 'void' + | A function tail chunk has been removed. + | | func_tail_deleted(self, pfn, tail_ea) + | @param pfn (C++: func_t *) + | @param tail_ea (C++: ea_t) | | func_updated(self, *args) -> 'void' + | The kernel has updated a function. + | | func_updated(self, pfn) + | @param pfn (C++: func_t *) | | hook(self, *args) -> 'bool' | hook(self) -> bool | | idasgn_loaded(self, *args) -> 'void' + | FLIRT signature has been loaded for normal processing (not for + | recognition of startup sequences). + | | idasgn_loaded(self, short_sig_name) + | @param short_sig_name (C++: const char *) | | item_color_changed(self, *args) -> 'void' + | An item color has been changed. + | | item_color_changed(self, ea, color) + | @param ea (C++: ea_t) + | @param color: if color==DEFCOLOR, the the color is deleted. (C++: + | bgcolor_t) | | kernel_config_loaded(self, *args) -> 'void' - | kernel_config_loaded(self) + | This event is issued when ida.cfg is parsed. + | + | kernel_config_loaded(self, pass_number) + | @param pass_number (C++: int) | | loader_finished(self, *args) -> 'void' + | External file loader finished its work. Use this event to augment the + | existing loader functionality. + | | loader_finished(self, li, neflags, filetypename) + | @param li (C++: linput_t *) + | @param neflags: Load file flags (C++: uint16) + | @param filetypename (C++: const char *) | | local_types_changed(self, *args) -> 'void' - | local_types_changed(self) + | Local types have been changed. | | make_code(self, *args) -> 'void' + | An instruction is being created. + | | make_code(self, insn) + | @param insn (C++: const insn_t*) | | make_data(self, *args) -> 'void' + | A data item is being created. + | | make_data(self, ea, flags, tid, len) + | @param ea (C++: ea_t) + | @param flags (C++: flags_t) + | @param tid (C++: tid_t) + | @param len (C++: asize_t) | | op_ti_changed(self, *args) -> 'void' + | An operand typestring (c/c++ prototype) has been changed. + | | op_ti_changed(self, ea, n, type, fnames) + | @param ea (C++: ea_t) + | @param n (C++: int) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | op_type_changed(self, *args) -> 'void' + | An operand type (offset, hex, etc...) has been set or deleted. + | | op_type_changed(self, ea, n) + | @param ea (C++: ea_t) + | @param n: eventually or'ed with OPND_OUTER or OPND_ALL (C++: int) | | range_cmt_changed(self, *args) -> 'void' + | Range comment has been changed. + | | range_cmt_changed(self, kind, a, cmt, repeatable) + | @param kind (C++: range_kind_t) + | @param a (C++: const range_t *) + | @param cmt (C++: const char *) + | @param repeatable (C++: bool) | | renamed(self, *args) -> 'void' + | The kernel has renamed a byte. See also the \idpcode{rename} event + | | renamed(self, ea, new_name, local_name) + | @param ea (C++: ea_t) + | @param new_name (C++: const char *) + | @param local_name (C++: bool) | | renaming_enum(self, *args) -> 'void' + | An enum or enum member is to be renamed. + | | renaming_enum(self, id, is_enum, newname) + | @param id (C++: tid_t) + | @param is_enum (C++: bool) + | @param newname (C++: const char *) | | renaming_struc(self, *args) -> 'void' + | A structure type is to be renamed. + | | renaming_struc(self, id, oldname, newname) + | @param id (C++: tid_t) + | @param oldname (C++: const char *) + | @param newname (C++: const char *) | | renaming_struc_member(self, *args) -> 'void' + | A structure member is to be renamed. + | | renaming_struc_member(self, sptr, mptr, newname) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) + | @param newname (C++: const char *) | | savebase(self, *args) -> 'void' - | savebase(self) + | The database is being saved. | | segm_added(self, *args) -> 'void' + | A new segment has been created. + | | segm_added(self, s) + | @param s: See also adding_segm (C++: segment_t *) | | segm_attrs_updated(self, *args) -> 'void' + | Segment attributes has been changed. + | | segm_attrs_updated(self, s) + | @param s: This event is generated for secondary segment attributes + | (examples: color, permissions, etc) (C++: segment_t *) | | segm_class_changed(self, *args) -> 'void' + | Segment class has been changed. + | | segm_class_changed(self, s, sclass) + | @param s (C++: segment_t *) + | @param sclass (C++: const char *) | | segm_deleted(self, *args) -> 'void' + | A segment has been deleted. + | | segm_deleted(self, start_ea, end_ea) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) | | segm_end_changed(self, *args) -> 'void' + | Segment end address has been changed. + | | segm_end_changed(self, s, oldend) + | @param s (C++: segment_t *) + | @param oldend (C++: ea_t) | | segm_moved(self, *args) -> 'void' + | Segment has been moved. + | | segm_moved(self, _from, to, size, changed_netmap) + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param size (C++: asize_t) + | @param changed_netmap: See also idb_event::allsegs_moved (C++: bool) | | segm_name_changed(self, *args) -> 'void' + | Segment name has been changed. + | | segm_name_changed(self, s, name) + | @param s (C++: segment_t *) + | @param name (C++: const char *) | | segm_start_changed(self, *args) -> 'void' + | Segment start address has been changed. + | | segm_start_changed(self, s, oldstart) + | @param s (C++: segment_t *) + | @param oldstart (C++: ea_t) | | set_func_end(self, *args) -> 'void' + | Function chunk end address will be changed. + | | set_func_end(self, pfn, new_end) + | @param pfn (C++: func_t *) + | @param new_end (C++: ea_t) | | set_func_start(self, *args) -> 'void' + | Function chunk start address will be changed. + | | set_func_start(self, pfn, new_start) + | @param pfn (C++: func_t *) + | @param new_start (C++: ea_t) | | sgr_changed(self, *args) -> 'void' + | The kernel has changed a segment register value. + | | sgr_changed(self, start_ea, end_ea, regnum, value, old_value, tag) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) + | @param value (C++: sel_t) + | @param old_value (C++: sel_t) + | @param tag: Segment register range tags (C++: uchar) | | sgr_deleted(self, *args) -> 'void' + | The kernel has deleted a segment register value. + | | sgr_deleted(self, start_ea, end_ea, regnum) + | @param start_ea (C++: ea_t) + | @param end_ea (C++: ea_t) + | @param regnum (C++: int) | | stkpnts_changed(self, *args) -> 'void' + | Stack change points have been modified. + | | stkpnts_changed(self, pfn) + | @param pfn (C++: func_t *) | | struc_align_changed(self, *args) -> 'void' + | A structure type has been changed (the struct alignment). + | | struc_align_changed(self, sptr) + | @param sptr (C++: struc_t *) | | struc_cmt_changed(self, *args) -> 'void' + | A structure type comment has been changed. + | | struc_cmt_changed(self, struc_id, repeatable_cmt) + | @param struc_id (C++: tid_t) + | @param repeatable_cmt (C++: bool) | | struc_created(self, *args) -> 'void' + | A new structure type has been created. + | | struc_created(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_deleted(self, *args) -> 'void' + | A structure type has been deleted. + | | struc_deleted(self, struc_id) + | @param struc_id (C++: tid_t) | | struc_expanded(self, *args) -> 'void' + | A structure type has been expanded/shrank. + | | struc_expanded(self, sptr) + | @param sptr (C++: struc_t *) | | struc_member_changed(self, *args) -> 'void' + | A structure member has been changed. + | | struc_member_changed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_created(self, *args) -> 'void' + | A structure member has been created. + | | struc_member_created(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_member_deleted(self, *args) -> 'void' + | A structure member has been deleted. + | | struc_member_deleted(self, sptr, member_id, offset) + | @param sptr (C++: struc_t *) + | @param member_id (C++: tid_t) + | @param offset (C++: ea_t) | | struc_member_renamed(self, *args) -> 'void' + | A structure member has been renamed. + | | struc_member_renamed(self, sptr, mptr) + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | struc_renamed(self, *args) -> 'void' + | A structure type has been renamed. + | | struc_renamed(self, sptr) + | @param sptr (C++: struc_t *) | | tail_owner_changed(self, *args) -> 'void' + | A tail chunk owner has been changed. + | | tail_owner_changed(self, tail, owner_func, old_owner) + | @param tail (C++: func_t *) + | @param owner_func (C++: ea_t) + | @param old_owner (C++: ea_t) | | thunk_func_created(self, *args) -> 'void' + | A thunk bit has been set for a function. + | | thunk_func_created(self, pfn) + | @param pfn (C++: func_t *) | | ti_changed(self, *args) -> 'void' + | An item typestring (c/c++ prototype) has been changed. + | | ti_changed(self, ea, type, fnames) + | @param ea (C++: ea_t) + | @param type (C++: const type_t *) + | @param fnames (C++: const p_list *) | | tryblks_updated(self, *args) -> 'void' + | Updated tryblk information + | | tryblks_updated(self, tbv) + | @param tbv (C++: const tryblks_t *) | | unhook(self, *args) -> 'bool' | unhook(self) -> bool | | updating_tryblks(self, *args) -> 'void' + | About to update tryblk information + | | updating_tryblks(self, tbv) + | @param tbv (C++: const tryblks_t *) | | upgraded(self, *args) -> 'void' + | The database has been upgraded and the receiver can upgrade its info + | as well + | | upgraded(self, _from) + | @param _from: - old IDB version (C++: int) | | ---------------------------------------------------------------------- | Data descriptors inherited from IDB_Hooks: @@ -41974,8 +47992,6 @@ 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 @@ -41989,57 +48005,69 @@ 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 * + 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 * + compid: comp_t + 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 * + compid: comp_t + +Help on function clr_module_data in module ida_idp: + +clr_module_data(*args) -> 'void *' + Unregister pointer to database specific module data. + + clr_module_data(data_id) -> void * + @param data_id: an data_id that was assigned by set_module_data() + (C++: int) + @return: previously registered pointer for the current database. it + can be deallocated now. Multiple calls to this function with + the same id are forbidden. 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 *) + ea: ea_t * + bexec: bool * + 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) + gen_idb_event(code) + @param code (C++: 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 * + 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 * + 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 @@ -42049,147 +48077,132 @@ Help on function get_idp_notifier_addr in module ida_idp: get_idp_notifier_addr(*args) -> 'PyObject *' get_idp_notifier_addr(arg1) -> PyObject * + 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 * + hooks: IDP_Hooks * + +Help on function get_module_data in module ida_idp: + +get_module_data(*args) -> 'void *' + Get pointer to the database specific module data. + + get_module_data(data_id) -> void * + @param data_id: data id that was initialized by set_module_data() + (C++: int) + @return: previously registered pointer for the current database + +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 + regname: char const * + 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 \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 + get_reg_name(reg, width, reghi=-1) -> str + @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) -> '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) + has_cf_chg(feature, opnum) -> bool + @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) + has_cf_use(feature, opnum) -> bool + @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) + has_insn_feature(icode, bit) -> bool + @param icode (C++: int) + @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) + is_align_insn(ea) -> int + @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) + is_basic_block_end(insn, call_insn_stops_block) -> bool + @param insn - 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 &) + is_call_insn(insn) -> bool + @param insn - 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 &) + is_indirect_jump_insn(insn) -> bool + @param insn - 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) + is_ret_insn(insn, strict=True) -> bool + @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param strict (C++: bool) 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 *) - @return: success + parse_reg_name(ri, regname) -> bool + @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: @@ -42238,65 +48251,58 @@ 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) + 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 + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + 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 + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + 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 * - - Returns a list of tuples (instruction_name, instruction_feature) containing the instructions list as defined in he processor module @@ -42304,24 +48310,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 * - - Returns the operand information given an ea and operand number. @param ea: address @@ -42330,70 +48330,69 @@ 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 + accvec: reg_accesses_t * + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + 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 * - - 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) + directive: char const * + priority: int + Help on class processor_t in module ida_idp: class processor_t(IDP_Hooks) @@ -42408,6 +48407,7 @@ class processor_t(IDP_Hooks) | | __init__(self) | __init__(self, _flags=0) -> IDP_Hooks + | _flags: uint32 | | _get_idb_notifier_addr(self) | @@ -42438,272 +48438,581 @@ class processor_t(IDP_Hooks) | determined_main(self, *args) | | ev_ana_insn(self, *args) + | 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. + | | 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. + | @param out (C++: insn_t *) + | @retval: 0 - if instruction can't be decoded. | | ev_assemble(self, *args) + | Assemble an instruction. (display a warning if an error is found). + | | 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 + | @param ea: linear address of instruction (C++: ea_t) + | @param cs: cs of instruction (C++: ea_t) + | @param ip: ip of instruction (C++: ea_t) + | @param use32: is 32bit segment? (C++: bool) + | @param line: line to assemble (C++: const char *) | | ev_auto_queue_empty(self, *args) - | ev_auto_queue_empty(self, type) + | One analysis queue is empty. + | + | ev_auto_queue_empty(self, type) -> int + | @param type (C++: atype_t) + | @retval: void - see also idb_event::auto_empty_finally | | ev_calc_step_over(self, target, ip) + | 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' . + | | ev_calc_step_over(self, target, ip) -> int + | @param target: pointer to the answer (C++: ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_can_have_type(self, *args) + | 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) + | | ev_can_have_type(self, op) -> int + | @param op (C++: const op_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_cmp_operands(self, *args) + | Compare instruction operands + | | ev_cmp_operands(self, op1, op2) -> int + | @param op1 (C++: const op_t*) + | @param op2 (C++: const op_t*) + | @retval: 1 - equal + | @retval: -1 - not equal + | @retval: 0 - not implemented | | ev_coagulate(self, *args) + | 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. + | | ev_coagulate(self, start_ea) -> int + | @param start_ea (C++: ea_t) + | @return: number of converted bytes | | ev_coagulate_dref(self, from_ea, to_ea, may_define, _code_ea) + | Data reference is being analyzed. plugin may correct 'code_ea' (e.g. + | for thumb mode refs, we clear the last bit) + | | ev_coagulate_dref(self, _from, to, may_define, code_ea) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param may_define (C++: bool) + | @param code_ea (C++: ea_t *) + | @retval: <0 - cancel dref analysis + | @retval: 0 - not implemented or continue | | ev_create_func_frame(self, pfn) + | Create a function frame for a newly created function Set up frame + | size, its attributes etc + | | ev_create_func_frame(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_create_switch_xrefs(self, *args) + | Create xrefs for a custom jump table. + | | ev_create_switch_xrefs(self, jumpea, si) -> int + | @param jumpea: address of the jump insn (C++: ea_t) + | @param si: switch information (C++: const switch_info_t *) + | @return: must return 1 Must be implemented if module uses custom jump + | tables, | | ev_creating_segm(self, s) + | A new segment is about to be created. + | | ev_creating_segm(self, seg) -> int + | @param seg (C++: 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. + | 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_emu_insn(self, insn) -> bool + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: -1 - the kernel will delete the instruction | | ev_endbinary(self, *args) + | IDA has loaded a binary file. + | | ev_endbinary(self, ok) -> int + | @param ok: file loaded successfully? (C++: bool) | | ev_func_bounds(self, _possible_return_code, pfn, max_func_end_ea) - | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) + | 'find_func_bounds()' finished its work. The module may fine tune the + | function bounds + | + | ev_func_bounds(self, possible_return_code, pfn, max_func_end_ea) -> int + | @param possible_return_code: , in/out (C++: int *) + | @param pfn (C++: func_t *) + | @param max_func_end_ea: (from the kernel's point of view) (C++: ea_t) + | @retval: void - | | ev_gen_map_file(self, nlines, fp) + | Generate map file. If not implemented the kernel itself will create + | the map file. + | | ev_gen_map_file(self, nlines, fp) -> int + | @param nlines: number of lines in map file (-1 means write error) + | (C++: int *) + | @param fp: output file (C++: FILE *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - write error | | ev_gen_regvar_def(self, ctx, v) + | Generate register variable definition line. + | | ev_gen_regvar_def(self, outctx, v) -> int + | @param outctx (C++: outctx_t *) + | @param v (C++: regvar_t *) + | @retval: >0 - ok, generated the definition text + | @retval: 0 - not implemented | | ev_gen_src_file_lnnum(self, *args) + | Callback: generate analog of: + | + | < #line "file.c" 123 + | < + | + | directive. + | | ev_gen_src_file_lnnum(self, outctx, file, lnnum) -> int + | @param outctx: output context (C++: outctx_t *) + | @param file: source file (may be NULL) (C++: const char *) + | @param lnnum: line number (C++: size_t) + | @retval: 1 - directive has been generated + | @retval: 0 - not implemented | | ev_get_autocmt(self, *args) + | Callback: get dynamic auto comment. Will be called if the autocomments + | are enabled and the comment retrieved from ida.int starts with '$!'. + | 'insn' contains valid info. + | | ev_get_autocmt(self, insn) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @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) + | Get size of function return address in bytes If this event is not + | implemented, the kernel will assume8 bytes for 64-bit function4 bytes + | for 32-bit function2 bytes otherwise + | | ev_get_frame_retsize(self, frsize, pfn) -> int + | @param frsize: frame size (out) (C++: int *) + | @param pfn: , can't be NULL (C++: const func_t *) | | ev_get_operand_string(self, buf, insn, opnum) + | Request text string for operand (cli, java, ...). + | | ev_get_operand_string(self, insn, opnum) -> PyObject * + | @param insn: the instruction (C++: const insn_t*) + | @param opnum: operand number, -1 means any string operand (C++: int) + | @retval: 0 - no string (or empty string) + | @retval: >0 - original string length without terminating zero | | ev_is_align_insn(self, *args) + | Is the instruction created only for alignment purposes?. Do not + | directly call this function, use 'is_align_insn()' + | | ev_is_align_insn(self, ea) -> int + | @param ea: - instruction address (C++: ea_t) + | @retval: number - of bytes in the instruction | | ev_is_alloca_probe(self, *args) + | Does the function at 'ea' behave as __alloca_probe? + | | ev_is_alloca_probe(self, ea) -> int + | @param ea (C++: ea_t) + | @retval: 1 - yes + | @retval: 0 - no | | ev_is_basic_block_end(self, *args) + | Is the current instruction end of a basic block?. This function should + | be defined for processors with delayed jump slots. + | | ev_is_basic_block_end(self, insn, call_insn_stops_block) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param call_insn_stops_block (C++: 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 + | ev_is_call_insn(self, insn) -> int + | @param insn: instruction (C++: const insn_t *) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_far_jump(self, *args) + | is indirect far jump or call instruction? meaningful only if the + | processor has 'near' and 'far' reference types + | | ev_is_far_jump(self, icode) -> int + | @param icode (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - yes + | @retval: -1 - no | | ev_is_indirect_jump(self, *args) + | Determine if instruction is an indirect jump. If 'CF_JUMP' bit cannot + | describe all jump types jumps, please define this callback. + | | ev_is_indirect_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - use CF_JUMP + | @retval: 1 - no + | @retval: 2 - yes | | ev_is_insn_table_jump(self, *args) + | Determine if instruction is a table jump or call. If 'CF_JUMP' bit + | cannot describe all kinds of table jumps, please define this callback. + | It will be called for insns with 'CF_JUMP' bit set. + | | ev_is_insn_table_jump(self, insn) -> int + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - yes + | @retval: <0 - no | | 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_ret_insn(self, insn, strict) -> int + | @param insn: instruction (C++: const insn_t *) + | @param strict: 1: report only ret instructions 0: include instructions + | like "leave" which begins the function epilog (C++: + | bool) + | @retval: 0 - unknown + | @retval: <0 - no + | @retval: 1 - yes | | ev_is_sane_insn(self, *args) + | Is the instruction sane for the current file type?. + | | 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 + | @param insn: the instruction (C++: const insn_t*) + | @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. + | (C++: int) + | @retval: >=0 - ok + | @retval: <0 - no, the instruction isn't likely to appear in the + | program | | ev_is_sp_based(self, mode, insn, op) + | 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. + | | ev_is_sp_based(self, mode, insn, op) -> int + | @param mode: out, combination of SP/FP operand flags (C++: int *) + | @param insn (C++: const insn_t *) + | @param op (C++: const op_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_is_switch(self, *args) + | Find 'switch' idiom. It will be called for instructions marked with + | 'CF_JUMP' . + | | ev_is_switch(self, si, insn) -> int + | @param si: , out (C++: switch_info_t *) + | @param insn: instruction possibly belonging to a switch (C++: const + | insn_t *) + | @retval: 1 - switch is found, 'si' is filled + | @retval: 0 - no switch found or 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) + | ev_may_be_func(self, insn, state) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param state: autoanalysis phase 0: creating functions 1: creating + | chunks (C++: int) + | @return: probability 1..100 | | ev_may_show_sreg(self, *args) + | The kernel wants to display the segment registers in the messages + | window. + | | ev_may_show_sreg(self, current_ea) -> int + | @param current_ea (C++: 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) + | May the kernel move the segment? + | | ev_moving_segm(self, seg, to, flags) -> int + | @param seg: segment to move (C++: segment_t *) + | @param to: new segment start address (C++: ea_t) + | @param flags: combination of Move segment flags (C++: int) + | @retval: 0 - yes + | @retval: <0 - the kernel should stop | | ev_newbinary(self, *args) + | IDA is about to load a binary file. + | | ev_newbinary(self, filename, fileoff, basepara, binoff, nbytes) -> int + | @param filename: binary file name (C++: char *) + | @param fileoff: offset in the file (C++: qoff64_t) + | @param basepara: base loading paragraph (C++: ea_t) + | @param binoff: loader offset (C++: ea_t) + | @param nbytes: number of bytes to load (C++: uint64) | | ev_newfile(self, *args) + | A new file has been loaded. + | | ev_newfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_newprc(self, *args) + | Before changing processor type. + | | ev_newprc(self, pnum, keep_cfg) -> int + | @param pnum: processor number in the array of processor names (C++: + | int) + | @param keep_cfg: true: do not modify kernel configuration (C++: bool) + | @retval: 1 - ok + | @retval: <0 - prohibit | | ev_oldfile(self, *args) + | An old file has been loaded. + | | ev_oldfile(self, fname) -> int + | @param fname: input file name (C++: char *) | | ev_out_assumes(self, *args) + | Function to produce assume directives when segment register value + | changes. + | | ev_out_assumes(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_data(self, *args) + | Generate text representation of data items This function may change + | the database and create cross-references if analyze_only is set + | | ev_out_data(self, outctx, analyze_only) -> int + | @param outctx (C++: outctx_t *) + | @param analyze_only (C++: bool) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_footer(self, *args) - | ev_out_footer(self, outctx) + | Function to produce end of disassembled text + | + | ev_out_footer(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_header(self, *args) - | ev_out_header(self, outctx) + | Function to produce start of disassembled text + | + | ev_out_header(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_insn(self, *args) + | 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. + | | ev_out_insn(self, outctx) -> bool - | - | - | Outputs the instruction defined in 'ctx.insn' - | - | @return: Boolean (whether this instruction can be outputted or not) + | @param outctx (C++: outctx_t *) + | @retval: void - | | ev_out_label(self, *args) + | The kernel is going to generate an instruction label line or a + | function header. + | | ev_out_label(self, outctx, colored_name) -> int + | @param outctx (C++: outctx_t *) + | @param colored_name (C++: const char *) + | @retval: <0 - if the kernel should not generate the label + | @retval: 0 - not implemented or continue | | ev_out_mnem(self, *args) + | Generate instruction mnemonics. This callback should append the + | colored mnemonics to ctx.outbuf Optional notification, if absent, + | out_mnem will be called. + | | ev_out_mnem(self, outctx) -> int + | @param outctx (C++: outctx_t *) + | @retval: 1 - if appended the mnemonics + | @retval: 0 - not implemented | | ev_out_operand(self, *args) + | 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. + | | 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) + | @param outctx (C++: outctx_t *) + | @param op (C++: const op_t *) + | @retval: 1 - ok + | @retval: -1 - operand is hidden | | ev_out_segend(self, ctx, s) + | Function to produce end of segment + | | ev_out_segend(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_segstart(self, ctx, s) + | Function to produce start of segment + | | ev_out_segstart(self, outctx, seg) -> int + | @param outctx (C++: outctx_t *) + | @param seg (C++: segment_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_out_special_item(self, *args) + | Generate text representation of an item in a special segment i.e. + | absolute symbols, externs, communal definitions etc + | | ev_out_special_item(self, outctx, segtype) -> int + | @param outctx (C++: outctx_t *) + | @param segtype (C++: 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 + | ev_rename(self, ea, new_name) -> int + | @param ea (C++: ea_t) + | @param new_name (C++: 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 + | \idpcode{renamed} the return value is ignored when kernel + | is going to delete name | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) + | Set IDP-specific configuration option Also see set_options_t in + | 'config.hpp' + | | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int + | @param keyword (C++: const char *) + | @param value_type (C++: int) + | @param value (C++: const void *) + | @param idb_loaded: true if the ev_oldfile/ev_newfile events have been + | generated (C++: bool) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - error (and message in errbuf) | | ev_set_proc_options(self, *args) + | 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(). + | | ev_set_proc_options(self, options, confidence) -> int + | @param options (C++: const char *) + | @param confidence: 0: loader's suggestion 1: user's decision (C++: + | int) + | @retval: <0 - if bad option string | | ev_str2reg(self, *args) + | Convert a register name to a register number. The register number is + | the register index in the \ph{reg_names} array Most processor modules + | do not need to implement this callback It is useful only if + | \ph{reg_names}[reg] does not provide the correct register names + | | ev_str2reg(self, regname) -> int + | @param regname (C++: const char *) + | @retval: register - number + 1 + | @retval: 0 - not implemented or could not be decoded | | ev_treat_hindering_item(self, *args) + | An item hinders creation of another item. + | | ev_treat_hindering_item(self, hindering_item_ea, new_item_flags, new_item_ea, new_item_length) -> int + | @param hindering_item_ea (C++: ea_t) + | @param new_item_flags: (0 for code) (C++: flags_t) + | @param new_item_ea (C++: ea_t) + | @param new_item_length (C++: asize_t) + | @retval: 0 - no reaction + | @retval: !=0 - the kernel may delete the hindering item | | ev_undefine(self, *args) + | An item in the database (insn or data) is being deleted. + | | 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 + | @param ea (C++: ea_t) + | @retval: 1 - do not delete srranges at the item end + | @retval: 0 - srranges can be deleted | | ev_validate_flirt_func(self, *args) + | 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. + | | ev_validate_flirt_func(self, start_ea, funcname) -> int + | @param start_ea (C++: ea_t) + | @param funcname (C++: const char *) + | @retval: -1 - do not create a function, + | @retval: 0 - function is validated | | ev_verify_noreturn(self, pfn) + | The kernel wants to set 'noreturn' flags for a function. + | | ev_verify_noreturn(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 0 - ok. any other value: do not set 'noreturn' flag | | ev_verify_sp(self, pfn) + | All function instructions have been analyzed. Now the processor module + | can analyze the stack pointer for the whole function + | | ev_verify_sp(self, pfn) -> int + | @param pfn (C++: func_t *) + | @retval: 0 - ok + | @retval: <0 - bad stack pointer | | func_added(self, pfn) | @@ -42754,205 +49063,667 @@ class processor_t(IDP_Hooks) | delete_IDP_Hooks(self) | | ev_add_cref(self, *args) -> 'int' + | A code reference is being created. + | | ev_add_cref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: cref_t) + | @retval: <0 - cancel cref creation + | @retval: 0 - not implemented or continue | | ev_add_dref(self, *args) -> 'int' + | A data reference is being created. + | | ev_add_dref(self, _from, to, type) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param type (C++: dref_t) + | @retval: <0 - cancel dref creation + | @retval: 0 - not implemented or continue | | ev_adjust_argloc(self, *args) -> 'int' + | Adjust argloc according to its type/size and platform endianess + | | ev_adjust_argloc(self, argloc, optional_type, size) -> int + | @param argloc: , inout (C++: argloc_t *) + | optional_type: tinfo_t const * + | @param size: 'size' makes no sense if type != NULL (type->get_size() + | should be used instead) (C++: int) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_adjust_libfunc_ea(self, *args) -> '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.'ea' initially contains the ea_t of + | the start of the pattern match + | | ev_adjust_libfunc_ea(self, sig, libfun, ea) -> int + | @param sig (C++: const idasgn_t *) + | @param libfun (C++: const libfunc_t *) + | @param ea (C++: ea_t *) + | @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' + | 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) + | | ev_adjust_refinfo(self, ri, ea, n, fd) -> int + | @param ri (C++: refinfo_t *) + | @param ea: instruction address (C++: ea_t) + | @param n: operand number (C++: int) + | @param fd (C++: const fixup_data_t *) + | @retval: <0 - do not create an offset + | @retval: 0 - not implemented or refinfo adjusted | | ev_analyze_prolog(self, *args) -> 'int' + | Analyzes function prolog, epilog, and updates purge, and function + | attributes + | | ev_analyze_prolog(self, ea) -> int + | @param ea: start of function (C++: ea_t) + | @retval: 1 - ok + | @retval: 0 - not implemented + | + | ev_arch_changed(self, *args) -> 'int' + | The loader is done parsing arch-related information, which the + | processor module might want to use to finish its initialization. | | ev_arg_addrs_ready(self, *args) -> 'int' + | Argument address info is ready. + | | ev_arg_addrs_ready(self, caller, n, tif, addrs) -> int + | @param caller (C++: ea_t) + | @param n: number of formal arguments (C++: int) + | @param tif: call prototype (C++: tinfo_t *) + | @param addrs: argument intilization addresses (C++: ea_t *) + | @retval: <0 - do not save into idb; other values mean "ok to save" + | + | ev_asm_installed(self, *args) -> 'int' + | After setting a new assembler + | + | ev_asm_installed(self, asmnum) -> int + | @param asmnum: See also ev_newasm (C++: int) | | ev_calc_arglocs(self, *args) -> 'int' + | Calculate function argument locations. This callback should fill + | retloc, all arglocs, and stkargs. This callback is never called for + | 'CM_CC_SPECIAL' functions. + | | ev_calc_arglocs(self, fti) -> int + | @param fti: points to the func type info (C++: func_type_data_t *) + | @retval: 0 - not implemented + | @retval: 1 - ok + | @retval: -1 - error | | ev_calc_cdecl_purged_bytes(self, *args) -> 'int' + | Calculate number of purged bytes after call. + | | ev_calc_cdecl_purged_bytes(self, ea) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @return: number of purged bytes (usually add sp, N) | | ev_calc_next_eas(self, *args) -> 'int' + | Calculate list of addresses the instruction in 'insn' may pass control + | to. This callback is required for source level debugging. + | | ev_calc_next_eas(self, res, insn, over) -> int + | @param res: , out: array for the results. (C++: eavec_t *) + | @param insn: the instruction (C++: const insn_t*) + | @param over: calculate for step over (ignore call targets) (C++: + | bool) + | @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' + | Calculate number of purged bytes by the given function type. + | | ev_calc_purged_bytes(self, p_purged_bytes, fti) -> int + | @param p_purged_bytes: ptr to output (C++: int *) + | @param fti: func type details (C++: const func_type_data_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_calc_retloc(self, *args) -> 'int' + | Calculate return value location. + | | ev_calc_retloc(self, retloc, rettype, cc) -> int + | @param retloc (C++: argloc_t *) + | @param rettype (C++: const tinfo_t *) + | @param cc (C++: cm_t) + | @retval: 0 - not implemented + | @retval: 1 - ok, + | @retval: -1 - error | | ev_calc_spdelta(self, *args) -> 'int' + | Calculate amount of change to sp for the given insn. This event is + | required to decompile code snippets. + | | ev_calc_spdelta(self, spdelta, insn) -> int + | @param spdelta (C++: sval_t *) + | @param insn (C++: const insn_t *) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_calc_switch_cases(self, *args) -> 'int' + | Calculate case values and targets for a custom jump table. + | | ev_calc_switch_cases(self, casevec, targets, insn_ea, si) -> int + | @param casevec: vector of case values (may be NULL) (C++: casevec_t + | *) + | @param targets: corresponding target addresses (my be NULL) (C++: + | eavec_t *) + | @param insn_ea: address of the 'indirect jump' instruction (C++: + | ea_t) + | @param si: switch information (C++: switch_info_t *) + | @retval: 1 - ok + | @retval: <=0 - failed | | ev_calc_varglocs(self, *args) -> 'int' + | Calculate locations of the arguments that correspond to '...'. + | | ev_calc_varglocs(self, ftd, aux_regs, aux_stkargs, nfixed) -> int + | @param ftd: , inout: info about all arguments (including varargs) + | (C++: func_type_data_t *) + | @param aux_regs: buffer for hidden register arguments, may be NULL + | (C++: regobjs_t *) + | @param aux_stkargs: buffer for hidden stack arguments, may be NULL + | (C++: relobj_t *) + | @param nfixed: number of fixed arguments (C++: int) + | @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' + | Clear the TF bit after an insn like pushf stored it in memory. + | | ev_clean_tbit(self, ea, getreg, regvalues) -> int + | @param ea: instruction address (C++: ea_t) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 1 - ok + | @retval: 0 - failed | | ev_create_flat_group(self, *args) -> 'int' + | Create special segment representing the flat group. + | | ev_create_flat_group(self, image_base, bitness, dataseg_sel) -> int + | @param image_base (C++: ea_t) + | @param bitness (C++: int) + | @param dataseg_sel: return value is ignored (C++: sel_t) | | ev_decorate_name(self, *args) -> 'PyObject *' + | Decorate/undecorate a C symbol name. + | | ev_decorate_name(self, name, mangle, cc, optional_type) -> PyObject * + | @param name: name of symbol (C++: const char *) + | @param mangle: true-mangle, false-unmangle (C++: bool) + | @param cc: calling convention (C++: cm_t) + | optional_type: tinfo_t const * + | @retval: 1 - if success + | @retval: 0 - not implemented or failed | | ev_del_cref(self, *args) -> 'int' + | A code reference is being deleted. + | | ev_del_cref(self, _from, to, expand) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @param expand (C++: bool) + | @retval: <0 - cancel cref deletion + | @retval: 0 - not implemented or continue | | ev_del_dref(self, *args) -> 'int' + | A data reference is being deleted. + | | ev_del_dref(self, _from, to) -> int + | @param _from (C++: ea_t) + | @param to (C++: ea_t) + | @retval: <0 - cancel dref deletion + | @retval: 0 - not implemented or continue | | ev_delay_slot_insn(self, *args) -> 'PyObject *' + | Get delay slot instructionInput EA may point to the instruction with a + | delay slot or to the delay slot instruction itself. + | | ev_delay_slot_insn(self, ea, bexec, fexec) -> PyObject * + | @param ea: 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) (C++: ea_t *) + | @param bexec: execute slot if jumping, initially set to 'true' (C++: + | bool *) + | @param fexec: execute slot if not jumping, initally set to 'true' + | (C++: bool *) + | @retval: 1 - positive answer + | @retval: <=0 - ordinary insn | | ev_demangle_name(self, *args) -> 'PyObject *' + | Demangle a C++ (or another language) name into a user-readable string. + | This event is called by 'demangle_name()' if you call + | 'demangle_name()' from the handler, protect against recursion! + | | ev_demangle_name(self, name, disable_mask, demreq) -> PyObject * + | @param name: mangled name (C++: const char *) + | @param disable_mask: flags to inhibit parts of output or compiler + | info/other (see MNG_) (C++: uint32) + | @param demreq: operation to perform (C++: demreq_type_t) + | @retval: 1 - if success + | @retval: 0 - not implemented | | ev_ending_undo(self, *args) -> 'int' + | Ended undoing/redoing an action + | | ev_ending_undo(self, action_name, is_undo) -> int + | @param action_name: action that we finished undoing/redoing. is not + | NULL. (C++: const char *) + | @param is_undo: true if performing undo, false if performing redo + | (C++: bool) | | ev_equal_reglocs(self, *args) -> 'int' + | Are 2 register arglocs the same?. We need this callback for the pc + | module. + | | ev_equal_reglocs(self, a1, a2) -> int + | @param a1 (C++: argloc_t *) + | @param a2 (C++: argloc_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented | | ev_extract_address(self, *args) -> 'int' + | Extract address from a string. + | | ev_extract_address(self, out_ea, screen_ea, string, position) -> int + | @param out_ea: , out (C++: ea_t *) + | @param screen_ea (C++: ea_t) + | @param string (C++: const char *) + | @param position (C++: size_t) + | @retval: 1 - ok + | @retval: 0 - kernel should use the standard algorithm + | @retval: -1 - error | | ev_find_op_value(self, *args) -> 'PyObject *' + | Find operand value via a register tracker. The returned value in 'out' + | is valid before executing the instruction. + | | ev_find_op_value(self, pinsn, opn) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param opn: operand index (C++: int) + | @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 *' + | Find register value via a register tracker. The returned value in + | 'out' is valid before executing the instruction. + | | ev_find_reg_value(self, pinsn, reg) -> PyObject * + | @param pinsn: instruction (C++: const insn_t *) + | @param reg: register index (C++: int) + | @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' + | Callback: generating asm or lst file. The kernel calls this callback + | twice, at the beginning and at the end of listing generation. The + | processor module can intercept this event and adjust its output + | + | ev_gen_asm_or_lst(self, starting, fp, is_asm, flags, outline) -> int + | @param starting: beginning listing generation (C++: bool) + | @param fp: output file (C++: FILE *) + | @param is_asm: true:assembler, false:listing (C++: bool) + | @param flags: flags passed to gen_file() (C++: int) + | @param outline: 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 (C++: html_line_cb_t + | **) + | @retval: void - | | ev_gen_stkvar_def(self, *args) -> 'int' + | Generate stack variable definition line Default line is varname = type + | ptr value, where 'type' is one of byte,word,dword,qword,tbyte + | | ev_gen_stkvar_def(self, outctx, mptr, v) -> int + | @param outctx (C++: outctx_t *) + | @param mptr (C++: const member_t *) + | @param v (C++: sval_t) + | @retval: 1 - ok + | @retval: 0 - not implemented | | ev_get_abi_info(self, *args) -> 'int' + | Get all possible ABI names and optional extensions for given compiler + | abiname/option is a string entirely consisting of letters, digits and + | underscore + | | ev_get_abi_info(self, abi_names, abi_opts, comp) -> int + | @param abi_names: - all possible ABis each in form abiname- + | opt1-opt2-... (C++: qstrvec_t *) + | @param abi_opts: - array of all possible options in form + | "opt:description" or opt:hint-line#description (C++: + | qstrvec_t *) + | @param comp: - compiler ID (C++: comp_t) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_get_bg_color(self, *args) -> 'int' + | Get item background color. Plugins can hook this callback to color + | disassembly lines dynamically + | | ev_get_bg_color(self, ea) -> int or None + | @param color: , out (C++: bgcolor_t *) + | @param ea (C++: ea_t) + | @retval: 0 - not implemented + | @retval: 1 - color set | | ev_get_cc_regs(self, *args) -> 'int' + | Get register allocation convention for given calling convention + | | ev_get_cc_regs(self, regs, cc) -> int + | @param regs: , out (C++: callregs_t *) + | @param cc (C++: cm_t) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_get_code16_mode(self, *args) -> 'int' + | Get ISA 16-bit mode + | | ev_get_code16_mode(self, ea) -> int + | @param ea: address to get the ISA mode (C++: ea_t) + | @retval: 1 - 16-bit mode + | @retval: 0 - not implemented or 32-bit mode | | ev_get_dbr_opnum(self, *args) -> 'int' + | Get the number of the operand to be displayed in the debugger + | reference view (text mode). + | | ev_get_dbr_opnum(self, opnum, insn) -> int + | @param opnum: operand number (out, -1 means no such operand) (C++: + | int *) + | @param insn: the instruction (C++: const insn_t*) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_get_default_enum_size(self, *args) -> 'int' - | ev_get_default_enum_size(self, cm) -> int + | Get default enum size. Not generated anymore. inf_get_cc_size_e() is + | used instead | | ev_get_macro_insn_head(self, *args) -> 'int' + | Calculate the start of a macro instruction. This notification is + | called if IP points to the middle of an instruction + | | ev_get_macro_insn_head(self, head, ip) -> int + | @param head: , out: answer, BADADDR means normal instruction (C++: + | ea_t *) + | @param ip: instruction address (C++: ea_t) + | @retval: 0 - unimplemented + | @retval: 1 - implemented + | + | ev_get_procmod(self, *args) -> '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' + | Get info about the registers that are used/changed by an instruction. + | + | ev_get_reg_accesses(self, accvec, insn, flags) -> int + | @param accvec: out: info about accessed registers (C++: + | reg_accesses_t*) + | @param insn: instruction in question (C++: const insn_t *) + | @param flags: reserved, must be 0 (C++: int) + | @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' + | 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 + | \ph{reg_names} and they all have the same size + | | ev_get_reg_info(self, main_regname, bitrange, regname) -> int + | @param main_regname: , out (C++: const char **) + | @param bitrange: , out: position and size of the value within + | 'main_regname' (empty bitrange == whole register) + | (C++: bitrange_t *) + | @param regname (C++: const char *) + | @retval: 1 - ok + | @retval: -1 - failed (not found) + | @retval: 0 - unimplemented | | ev_get_reg_name(self, *args) -> 'PyObject *' + | Generate text representation of a register. Most processor modules do + | not need to implement this callback. It is useful only if + | \ph{reg_names}[reg] does not provide the correct register name. + | | ev_get_reg_name(self, reg, width, reghi) -> PyObject * + | @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 not -1 then this function will return the register + | pair (C++: int) + | @retval: -1 - if error + | @retval: strlen(buf) - if success | | ev_get_simd_types(self, *args) -> 'int' + | Get SIMD-related types according to given attributes ant/or argument + | location + | | ev_get_simd_types(self, out, simd_attrs, argloc, create_tifs) -> int + | @param out (C++: simd_info_vec_t *) + | @param simd_attrs: , may be NULL (C++: const simd_info_t *) + | @param argloc: , may be NULL (C++: const argloc_t *) + | @param create_tifs: return valid tinfo_t objects, create if neccessary + | (C++: bool) + | @retval: number - of found types + | @retval: -1 - error If name==NULL, initialize all SIMD types | | ev_get_stkarg_offset(self, *args) -> 'int' - | ev_get_stkarg_offset(self) -> int + | Get offset from SP to the first stack argument. For example: pc: 0, + | hppa: -0x34, ppc: 0x38 | | 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 + | 'PR_SCALE_STKVARS' should be set to use this callback | | ev_getreg(self, *args) -> 'int' + | IBM PC only internal request, should never be used for other purpose + | Get register value by internal index + | | ev_getreg(self, regval, regnum) -> int + | @param regval: , out (C++: uval_t *) + | @param regnum (C++: int) + | @retval: 1 - ok + | @retval: 0 - not implemented + | @retval: -1 - failed (undefined value or bad regnum) | | ev_init(self, *args) -> 'int' + | The IDP module is just loaded. + | | ev_init(self, idp_modname) -> int + | @param idp_modname: processor module name (C++: const char *) + | @retval: <0 - on failure | | ev_insn_reads_tbit(self, *args) -> 'int' + | Check if insn will read the TF bit. + | | ev_insn_reads_tbit(self, insn, getreg, regvalues) -> int + | @param insn: the instruction (C++: const insn_t*) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @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' + | Is conditional instruction? + | | ev_is_cond_insn(self, insn) -> int + | @param insn: instruction address (C++: const insn_t *) + | @retval: 1 - yes + | @retval: -1 - no + | @retval: 0 - not implemented or not instruction | | ev_is_jump_func(self, *args) -> 'int' + | Is the function a trivial "jump" function?. + | | ev_is_jump_func(self, pfn, jump_target, func_pointer) -> int + | @param pfn (C++: func_t *) + | @param jump_target (C++: ea_t *) + | @param func_pointer (C++: 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' + | 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. + | | ev_lower_func_type(self, argnums, fti) -> int + | @param argnums: , out - numbers of arguments to be converted to + | pointers in acsending order (C++: intvec_t *) + | @param fti: , inout func type details (special values -1/-2 for return + | value - position of hidden 'retstr' argument: -1 - at the + | beginning, -2 - at the end) (C++: func_type_data_t *) + | @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. | | ev_newasm(self, *args) -> 'int' + | Before setting a new assembler. + | | ev_newasm(self, asmnum) -> int + | @param asmnum: See also ev_asm_installed (C++: int) | | ev_next_exec_insn(self, *args) -> '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. + | | ev_next_exec_insn(self, target, ea, tid, getreg, regvalues) -> int + | @param target: , out: pointer to the answer (C++: ea_t *) + | @param ea: instruction address (C++: ea_t) + | @param tid: current therad id (C++: int) + | @param getreg: function to get register values (C++: + | processor_t::regval_getter_t *) + | @param regvalues: register values array (C++: const regval_t *) + | @retval: 0 - unimplemented + | @retval: 1 - implemented | | ev_realcvt(self, *args) -> 'int' + | Floating point -> IEEE conversion + | | ev_realcvt(self, m, e, swt) -> int + | @param m: pointer to data (C++: void *) + | @param e: internal IEEE format data (C++: uint16 *) + | @param swt: operation (see realcvt() in ieee.h) (C++: uint16) + | @retval: 0 - not implemented + | @retval: 1 - ok | | ev_replaying_undo(self, *args) -> 'int' + | Replaying an undo/redo buffer + | | ev_replaying_undo(self, action_name, vec, is_undo) -> int + | @param action_name: action that we perform undo/redo for. may be NULL + | for intermediary buffers. (C++: const char *) + | @param vec (C++: const undo_records_t *) + | @param is_undo: true if performing undo, false if performing redo This + | event may be generated multiple times per undo/redo + | (C++: bool) | | ev_set_code16_mode(self, *args) -> 'int' + | Some processors have ISA 16-bit mode e.g. ARM Thumb mode, PPC VLE, + | MIPS16 Set ISA 16-bit mode + | | ev_set_code16_mode(self, ea, code16) -> int + | @param ea: address to set new ISA mode (C++: ea_t) + | @param code16: true for 16-bit mode, false for 32-bit mode (C++: + | bool) | - | ev_setup_til(self, *args) -> 'void' - | ev_setup_til(self) + | ev_setup_til(self, *args) -> '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. | | ev_shadow_args_size(self, *args) -> 'int' + | Get size of shadow args in bytes. + | | ev_shadow_args_size(self, shadow_args_size, pfn) -> int + | @param shadow_args_size (C++: int *) + | @param pfn: (may be NULL) (C++: func_t *) + | @retval: 1 - if filled *shadow_args_size + | @retval: 0 - not implemented | | ev_term(self, *args) -> 'int' - | ev_term(self) -> int + | The IDP module is being unloaded. | | ev_use_arg_types(self, *args) -> 'int' + | Use information about callee arguments. + | | ev_use_arg_types(self, ea, fti, rargs) -> int + | @param ea: address of the call instruction (C++: ea_t) + | @param fti: info about function type (C++: func_type_data_t *) + | @param rargs: array of register arguments (C++: funcargvec_t *) + | @retval: 1 - (and removes handled arguments from fti and rargs) + | @retval: 0 - not implemented | | ev_use_regarg_type(self, *args) -> 'PyObject *' + | Use information about register argument. + | | ev_use_regarg_type(self, ea, rargs) -> PyObject * + | @param ea: address of the instruction (C++: ea_t) + | @param rargs: vector of register arguments (including regs extracted + | from scattered arguments) (C++: const funcargvec_t *) + | @retval: 1 - + | @retval: 0 - not implemented | | ev_use_stkarg_type(self, *args) -> 'int' + | Use information about a stack argument. + | | ev_use_stkarg_type(self, ea, arg) -> int + | @param ea: address of the push instruction which pushes the function + | argument into the stack (C++: ea_t) + | @param arg: argument info (C++: const funcarg_t *) + | @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: @@ -42966,6 +49737,396 @@ 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 + | r: reg_access_t const & + | + | __init__(self, *args) + | __init__(self) -> reg_access_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | 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 (C++: const reg_access_t &) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | __dict__ + | dictionary for instance variables (if defined) + | + | __weakref__ + | list of weak references to the object (if defined) + | + | access_type + | reg_access_t_access_type_get(self) -> access_type_t + | + | opnum + | reg_access_t_opnum_get(self) -> uchar + | + | range + | reg_access_t_range_get(self) -> bitrange_t + | + | regnum + | reg_access_t_regnum_get(self) -> int + | + | 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 + | r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> reg_access_vec_t + | 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 + | r: qvector< reg_access_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | 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 + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | 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 + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | + | + | erase(self, first, last) -> reg_access_t + | first: qvector< reg_access_t >::iterator + | 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 + | x: reg_access_t const & + | + | + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: reg_access_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | x: reg_access_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_access_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 + | r: qvector< reg_access_t > const & + | + | __getitem__(self, *args) -> 'reg_access_t const &' + | __getitem__(self, i) -> reg_access_t + | 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 + | r: qvector< reg_access_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | v: reg_access_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | x: reg_access_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: reg_access_t const & + | + | at(self, *args) -> 'reg_access_t const &' + | at(self, _idx) -> reg_access_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< reg_access_t >::const_iterator' + | begin(self) -> reg_access_t + | 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 + | end(self) -> reg_access_t + | + | erase(self, *args) -> 'qvector< reg_access_t >::iterator' + | erase(self, it) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | + | + | erase(self, first, last) -> reg_access_t + | first: qvector< reg_access_t >::iterator + | 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 + | x: reg_access_t const & + | + | + | find(self, x) -> reg_access_t + | x: reg_access_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=reg_access_t()) + | x: reg_access_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: reg_access_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: reg_access_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< reg_access_t >::iterator' + | insert(self, it, x) -> reg_access_t + | it: qvector< reg_access_t >::iterator + | x: reg_access_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'reg_access_t &' + | push_back(self, x) + | x: reg_access_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_access_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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) @@ -42975,24 +50136,30 @@ class reg_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: reg_info_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: reg_info_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: reg_info_t const & | | __init__(self, *args) | __init__(self) -> reg_info_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: reg_info_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: reg_info_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: reg_info_t const & | | __repr__ = _swig_repr(self) | @@ -43001,6 +50168,7 @@ class reg_info_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: reg_info_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -43025,50 +50193,66 @@ 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 + opts: cfgopt_t const [] + nopts: size_t + cb: config_changed_cb_t * + obj: void * + +Help on function set_module_data in module ida_idp: + +set_module_data(*args) -> 'void *' + Starting from IDA v7.5 all modules should use the following 3 + functions to handle idb specific static data because now the kernel + supports opening and working with multiple idbs files simultaneously. + See the source code of the processor modules in the SDK for the usage + examples. Register pointer to database specific module data. + + set_module_data(data_id, data_ptr) -> void * + @param data_id: initially the pointed-to value must be 0, the kernel + will fill it with a unique id. once assigned, the + data_id does not change. (C++: int *) + @param data_ptr: pointer to the data to register (C++: void *) + @return: data_ptr. The registered pointer can later be retrieved using + get_module_data() + 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: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + set_processor_type(procname, level) -> bool + @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) -> 'bool' - set_target_assembler(asmnum) -> bool - - Set target assembler. - @param asmnum: number of assembler in the current processor module - (C++: int) - @return: success + set_target_assembler(asmnum) -> bool + @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) -> '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 *) + str2reg(p) -> int + @param p (C++: const char *) === ida_idp EPYDOC INJECTIONS === ida_idp.AS2_BRACE @@ -43450,6 +50634,19 @@ Custom instruction codes defined by processor extension plugins must be greater than or equal to this """ +ida_idp.HKCB_AUTODEL +""" +automatically delete event listener object after uninstalling it +""" + +ida_idp.HKCB_GLOBAL +""" +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. +""" + ida_idp.IDP_INTERFACE_VERSION """ The interface version number.see also 'IDA_SDK_VERSION' from 'pro.h' @@ -43985,7 +51182,7 @@ use \\ph{use_arg_types} callback ida_idp.PR_USE_TBYTE """ - 'BTMT_SPECFLT' means _TBYTE type +'BTMT_SPECFLT' means _TBYTE type """ ida_idp.PR_WORD_INS @@ -44092,6 +51289,10 @@ class Choose(builtins.object) | | CHCOL_DEC = 196608 | + | CHCOL_DEFHIDDEN = 1048576 + | + | CHCOL_DRAGHINT = 2097152 + | | CHCOL_EA = 262144 | | CHCOL_FNAME = 327680 @@ -44100,6 +51301,8 @@ class Choose(builtins.object) | | CHCOL_HEX = 131072 | + | CHCOL_INODENAME = 4194304 + | | CHCOL_PATH = 65536 | | CHCOL_PLAIN = 0 @@ -44140,6 +51343,8 @@ class Choose(builtins.object) | | CH_FORCE_DEFAULT = 128 | + | CH_HAS_DIRTREE = 33554432 + | | CH_MODAL = 1 | | CH_MULTI = 4 @@ -44281,6 +51486,7 @@ class CustomIDAMemo(View_Hooks) | | __init__(self) | __init__(self, _flags=0) -> View_Hooks + | _flags: uint32 | | _get_cb(self, view, cb_name) | @@ -44289,37 +51495,81 @@ class CustomIDAMemo(View_Hooks) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, view, ve) + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, view, *args) + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, view, *args) + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, view, ve) + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, view) + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, view, key, state) + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, view, now, was) + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, view, ve) + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, view, rt) + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods defined here: @@ -44343,7 +51593,10 @@ class CustomIDAMemo(View_Hooks) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44689,6 +51942,7 @@ class IDAViewWrapper(CustomIDAMemo) | | __init__(self, title) | __init__(self, _flags=0) -> View_Hooks + | _flags: uint32 | | ---------------------------------------------------------------------- | Methods inherited from CustomIDAMemo: @@ -44786,37 +52040,81 @@ class IDAViewWrapper(CustomIDAMemo) | _graph_item_tuple(self, ve) | | view_activated(self, view) + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, view, ve) + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, view, *args) + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, view, *args) + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, view, ve) + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, view) + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, view, key, state) + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, view, now, was) + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, view, ve) + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, view, ve) + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, view, rt) + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Static methods inherited from CustomIDAMemo: @@ -44840,7 +52138,10 @@ class IDAViewWrapper(CustomIDAMemo) | unhook(self) -> bool | | view_created(self, *args) -> 'void' + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors inherited from View_Hooks: @@ -44986,6 +52287,7 @@ Help on function TWidget__from_ptrval__ in module ida_kernwin: TWidget__from_ptrval__(*args) -> 'TWidget *' TWidget__from_ptrval__(ptrval) -> TWidget * + ptrval: size_t Help on class UI_Hooks in module ida_kernwin: @@ -44998,6 +52300,13 @@ class UI_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> UI_Hooks + | _flags: uint32 + | + | __real_database_closed = database_closed(self, *args) -> 'void' + | 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) | @@ -45005,171 +52314,239 @@ class UI_Hooks(builtins.object) | delete_UI_Hooks(self) | | create_desktop_widget(self, *args) -> 'PyObject *' + | create a widget, to be placed in the widget tree (at desktop- + | creation time.) + | | create_desktop_widget(self, title, cfg) -> PyObject * + | @param title (C++: const char *) + | @param cfg (C++: const jobj_t *) | | current_widget_changed(self, *args) -> 'void' + | The currently-active TWidget changed. + | | current_widget_changed(self, widget, prev_widget) + | @param widget (C++: TWidget *) + | @param prev_widget (C++: TWidget *) + | + | database_closed = __wrapper(self, *args) + | The database has been closed. See also processor_t::closebase, it + | occurs earlier. See also ui_initing_database. This is not the same as + | IDA exiting. If you need to perform cleanup at the exiting time, use + | 'qatexit()' . | | database_inited(self, *args) -> 'void' + | database initialization has completed. the kernel is about to run + | idc scripts + | | database_inited(self, is_new_database, idc_script) + | @param is_new_database (C++: int) + | @param idc_script: - may be NULL (C++: const char *) | | debugger_menu_change(self, *args) -> 'void' + | debugger menu modification detected + | | debugger_menu_change(self, enable) + | @param enable: true: debugger menu has been added, or a different + | debugger has been selected false: debugger menu will be + | removed (user switched to "No debugger") (C++: bool) + | + | destroying_plugmod(self, *args) -> 'void' + | The plugin object is about to be destroyed + | + | destroying_plugmod(self, plugmod) + | @param plugmod (C++: const plugmod_t *) + | + | destroying_procmod(self, *args) -> 'void' + | The processor module is about to be destroyed + | + | destroying_procmod(self, procmod) + | @param procmod (C++: const procmod_t *) | | finish_populating_widget_popup(self, *args) -> 'void' + | IDA is about to be done populating the context menu for a widget. + | This is your chance to 'attach_action_to_popup()' . + | | finish_populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | 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 (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param ctx (C++: const action_activation_ctx_t *) | | get_chooser_item_attrs(self, *args) -> 'void' + | get item-specific attributes for a chooser. This callback is + | generated only after enable_chooser_attrs() + | | get_chooser_item_attrs(self, chooser, n, attrs) + | @param chooser (C++: const chooser_base_t *) + | @param n (C++: size_t) + | @param attrs (C++: chooser_item_attrs_t *) | | get_custom_viewer_hint(self, *args) -> 'PyObject *' + | ui wants to display a hint for a viewer (idaview or custom). If + | the REG_HINTS_MARKER sequence is found in the returned hints string, + | it will be replaced with the contents of the "regular" hints. If the + | SRCDBG_HINTS_MARKER sequence is found in the returned hints string, it + | will be replaced with the contents of the source-level debugger- + | generated hints. The following keywords might appear at the beginning + | of the returned hints: HIGHLIGHT textwhere text will be highlighted + | CAPTION captioncaption for the hint widget + | | get_custom_viewer_hint(self, viewer, place) -> PyObject * + | @param viewer: viewer (C++: TWidget*) + | @param place: current position in the viewer (C++: place_t *) | | get_ea_hint(self, *args) -> 'PyObject *' + | ui wants to display a simple hint for an address. Use this event + | to generate a custom hint See also more generic 'ui_get_item_hint' + | | get_ea_hint(self, ea) -> PyObject * - | - | - | 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 (C++: ea_t) | | get_item_hint(self, *args) -> 'PyObject *' + | ui wants to display multiline hint for an item. See also more + | generic 'ui_get_custom_viewer_hint' + | | get_item_hint(self, ea, max_lines) -> PyObject * + | @param ea: or item id like a structure or enum member (C++: ea_t) + | @param max_lines: maximal number of lines (C++: int) + | + | get_lines_rendering_info(self, *args) -> 'void' + | get lines rendering information + | + | get_lines_rendering_info(self, out, widget, info) + | @param out (C++: lines_rendering_output_t *) + | @param widget (C++: const TWidget *) + | @param info (C++: const lines_rendering_input_t *) | | get_widget_config(self, *args) -> 'PyObject *' + | retrieve the widget configuration (it will be passed back at + | ui_create_desktop_widget-, and ui_set_widget_config-time) + | | get_widget_config(self, widget, cfg) -> PyObject * + | @param widget (C++: const TWidget *) + | @param cfg (C++: 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' + | database initialization has started. | | plugin_loaded(self, *args) -> 'void' + | The plugin was loaded in memory. + | | plugin_loaded(self, plugin_info) + | @param plugin_info (C++: const plugin_info_t *) | | plugin_unloading(self, *args) -> 'void' + | The plugin is about to be unloaded + | | plugin_unloading(self, plugin_info) + | @param plugin_info (C++: const plugin_info_t *) | | populating_widget_popup(self, *args) -> 'void' + | IDA is populating the context menu for a widget. This is your + | chance to 'attach_action_to_popup()' .Have a look at + | ui_finish_populating_widget_popup, if you want to augment the context + | menu with your own actions after the menu has had a chance to be + | properly populated by the owning component or plugin (which typically + | does it on ui_populating_widget_popup.) + | | populating_widget_popup(self, widget, popup_handle, ctx=None) - | - | - | 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 (C++: TWidget *) + | @param popup_handle (C++: TPopupMenu *) + | @param ctx (C++: 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' + | ida ui is about to handle a user action. + | | 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 + | @param name: ui action name. these names can be looked up in + | ida[tg]ui.cfg (C++: const char *) + | @retval: 0 - ok + | @retval: nonzero - a plugin has handled the command | | range(self, *args) -> 'void' - | range(self) + | The disassembly range has been changed (\inf{min_ea} ... + | \inf{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) - | - | - | The kernel has saved the database. - | - | @return: Ignored + | The kernel has saved the database. This callback just informs the + | interface. | | 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' + | The "current address" changed + | | screen_ea_changed(self, ea, prev_ea) + | @param ea (C++: ea_t) + | @param prev_ea (C++: ea_t) | | set_widget_config(self, *args) -> 'void' + | set the widget configuration + | | set_widget_config(self, widget, cfg) + | @param widget (C++: const TWidget *) + | @param cfg (C++: 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' + | IDA is about to update all actions. If your plugin needs to + | perform expensive operations more than once (e.g., once per action it + | registers), you should do them only once, right away. + | | updating_actions(self, ctx) - | - | - | The UI is about to batch-update some actions. - | - | @param ctx: The action_update_ctx_t instance - | @return: Ignored + | @param ctx (C++: action_update_ctx_t *) | | widget_closing(self, *args) -> 'void' + | TWidget is about to close. This event precedes ui_widget_invisible. + | Use this to perform some possible actions relevant to the lifecycle of + | this widget + | | widget_closing(self, widget) + | @param widget (C++: TWidget *) | | widget_invisible(self, *args) -> 'void' + | TWidget is being closed. Use this event to destroy the window controls + | | widget_invisible(self, widget) + | @param widget (C++: TWidget *) | | widget_visible(self, *args) -> 'void' + | TWidget is displayed on the screen. Use this event to populate the + | window with controls + | | widget_visible(self, widget) + | @param widget (C++: TWidget *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45194,6 +52571,7 @@ class View_Hooks(builtins.object) | | __init__(self, *args) | __init__(self, _flags=0) -> View_Hooks + | _flags: uint32 | | __repr__ = _swig_repr(self) | @@ -45207,40 +52585,87 @@ class View_Hooks(builtins.object) | unhook(self) -> bool | | view_activated(self, *args) -> 'void' + | A view is activated + | | view_activated(self, view) + | @param view (C++: TWidget *) | | view_click(self, *args) -> 'void' + | Click event + | | view_click(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_close(self, *args) -> 'void' + | View closed + | | view_close(self, view) + | @param view (C++: TWidget *) | | view_created(self, *args) -> 'void' + | A view is being created. + | | view_created(self, view) + | @param view (C++: TWidget *) | | view_curpos(self, *args) -> 'void' + | Cursor position changed + | | view_curpos(self, view) + | @param view (C++: TWidget *) | | view_dblclick(self, *args) -> 'void' + | Double click event + | | view_dblclick(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_deactivated(self, *args) -> 'void' + | A view is deactivated + | | view_deactivated(self, view) + | @param view (C++: TWidget *) | | view_keydown(self, *args) -> 'void' + | Key down event + | | view_keydown(self, view, key, state) + | @param view (C++: TWidget *) + | @param key (C++: int) + | @param state (C++: view_event_state_t) | | view_loc_changed(self, *args) -> 'void' + | The location for the view has changed (can be either the 'place_t' , + | the 'renderer_info_t' , or both.) + | | view_loc_changed(self, view, now, was) + | @param view (C++: TWidget *) + | @param now (C++: const lochist_entry_t *) + | @param was (C++: const lochist_entry_t *) | | view_mouse_moved(self, *args) -> 'void' + | The mouse moved on the view + | | view_mouse_moved(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_mouse_over(self, *args) -> 'void' + | The user moved the mouse over (or out of) a node or an edge. This is + | only relevant in a graph view. + | | view_mouse_over(self, view, event) + | @param view (C++: TWidget *) + | @param event (C++: const view_mouse_event_t *) | | view_switched(self, *args) -> 'void' + | A view's renderer has changed. + | | view_switched(self, view, rt) + | @param view (C++: TWidget *) + | @param rt (C++: tcc_renderer_type_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45289,16 +52714,34 @@ Help on function _ask_addr in module ida_kernwin: _ask_addr(*args) -> 'ea_t *' _ask_addr(addr, format) -> bool + 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 + 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 + 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) + 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) + arg1: dirtree_t const * Help on class action_ctx_base_t in module ida_kernwin: @@ -45325,10 +52768,13 @@ class action_ctx_base_t(builtins.object) | _get_form_type(self) -> twidget_type_t | | has_flag(self, *args) -> 'bool' + | Check if the given flag is set. + | | has_flag(self, flag) -> bool + | @param flag (C++: uint32) | | reset(self, *args) -> 'void' - | reset(self) + | Invalidate all context info. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -45351,6 +52797,9 @@ class action_ctx_base_t(builtins.object) | cur_enum | action_ctx_base_t_cur_enum_get(self) -> enum_t | + | cur_enum_member + | action_ctx_base_t_cur_enum_member_get(self) -> const_t + | | cur_extracted_ea | action_ctx_base_t_cur_value_get(self) -> uval_t | @@ -45375,6 +52824,9 @@ class action_ctx_base_t(builtins.object) | cur_value | action_ctx_base_t_cur_value_get(self) -> uval_t | + | dirtree_selection + | action_ctx_base_t_dirtree_selection_get(self) -> dirtree_selection_t * + | | focus | action_ctx_base_t_focus_get(self) -> TWidget * | @@ -45414,6 +52866,13 @@ 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 + | name: char const * + | label: char const * + | handler: PyObject * + | shortcut: char const * + | tooltip: char const * + | icon: int + | flags: int | | __repr__ = _swig_repr(self) | @@ -45445,7 +52904,7 @@ class action_desc_t(builtins.object) | action_desc_t_name_get(self) -> char const * | | owner - | action_desc_t_owner_get(self) -> plugin_t const * + | action_desc_t_owner_get(self) -> void const * | | shortcut | action_desc_t_shortcut_get(self) -> char const * @@ -45482,20 +52941,16 @@ class action_handler_t(builtins.object) 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: existing widget to display (C++: TWidget *) - @param take_focus: give focus to given widget (C++: bool) + activate_widget(widget, take_focus) + @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) -> 'PyObject *' add_hotkey(hotkey, pyfunc) -> PyObject * - - Associates a function call with a hotkey. Callable pyfunc will be called each time the hotkey is pressed @@ -45507,34 +52962,28 @@ add_hotkey(*args) -> 'PyObject *' 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: hotkey name (C++: const char *) - @param idcfunc: IDC function name (C++: const char *) - @return: IDC hotkey error codes + add_idc_hotkey(hotkey, idcfunc) -> int + @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) -> 'PyObject *' - 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 + add_spaces(s, len) -> PyObject * + s: char const * + @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) -> 'int' - addon_count() -> int - - Get number of installed addons. Help on class addon_info_t in module ida_kernwin: @@ -45594,9 +53043,6 @@ class addon_info_t(builtins.object) 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' ) @@ -45608,38 +53054,37 @@ ask_addr(defval, format) 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' ).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) + ask_buttons(Yes, No, Cancel, deflt, format) -> int + @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) -> 'char *' ask_file(for_saving, defval, format) -> char * + @param for_saving (C++: bool) + @param defval (C++: const char *) + @param format (C++: const char *) 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 tosupport@hex- rays.com. - @param format: the reason why the input file is bad (C++: const char - *) + ask_for_feedback(format) + @param format: the reason why the input file is bad (C++: const char + *) Help on function ask_form in module ida_kernwin: @@ -45664,8 +53109,6 @@ Help on function ask_str in module ida_kernwin: ask_str(*args) -> 'PyObject *' ask_str(defval, hist, prompt) -> PyObject * - - Asks for a long text @param hist: history id @@ -45677,8 +53120,6 @@ Help on function ask_text in module ida_kernwin: ask_text(*args) -> 'PyObject *' ask_text(max_size, defval, prompt) -> PyObject * - - Asks for a long text @param max_size: Maximum text length, 0 for unlimited @@ -45689,228 +53130,220 @@ ask_text(*args) -> 'PyObject *' 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 . + ask_yn(deflt, format) -> int + @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) -> 'bool' - 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 + attach_action_to_menu(menupath, name, flags) -> bool + @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) -> '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: 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 + attach_action_to_popup(widget, popup_handle, name, popuppath=None, flags=0) -> bool + @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) -> 'bool' - 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 + attach_action_to_toolbar(toolbar_name, name) -> bool + @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) -> 'bool' - 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 + attach_dynamic_action_to_popup(widget, popup_handle, desc, popuppath=None, flags=0) -> bool + @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) -> 'bool' - banner(wait) -> bool - - Show a banner dialog box ( 'ui_banner' ). - @param wait: time to wait before closing (C++: int) + banner(wait) -> bool + @param wait: time to wait before closing (C++: int) + @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: beep_t (C++: beep_t) + beep(beep_type=beep_default) + @param beep_type: beep_t (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(). 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: request id (C++: int) + cancel_exec_request(req_id) -> bool + @param req_id: request id (C++: int) + @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' + Try to cancel asynchronous exec requests created by the specified + thread. + + cancel_thread_exec_requests(tid) -> int + @param tid: thread id (C++: qthread_t) + @return: number of the canceled requests. Help on function choose_activate in module ida_kernwin: choose_activate(*args) -> 'void' choose_activate(_self) + self: PyObject * Help on function choose_choose in module ida_kernwin: choose_choose(*args) -> 'PyObject *' choose_choose(_self) -> PyObject * + self: PyObject * Help on function choose_close in module ida_kernwin: choose_close(*args) -> 'void' choose_close(_self) + 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 * + 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: chooser title (C++: const char *) - @return: ea of selected entry point, BADADDR if none selected + choose_entry(title) -> ea_t + @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) -> 'enum_t' - 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 + choose_enum(title, default_id) -> enum_t + @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) -> '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: 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 + choose_enum_by_value(title, default_id, value, nbytes) -> enum_t + @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++: uint64) + @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) -> 'PyObject *' choose_find(title) -> PyObject * + 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: 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 + choose_func(title, default_ea) -> func_t * + @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) -> 'TWidget *' choose_get_widget(_self) -> TWidget * + 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 @@ -45918,85 +53351,71 @@ choose_idasgn(*args) -> 'PyObject *' 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: chooser title (C++: const char *) - @return: ea of selected name, BADADDR if none selected + choose_name(title) -> ea_t + @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) -> 'void' choose_refresh(_self) + 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: 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 + choose_segm(title, default_ea) -> segment_t * + @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) -> 'sreg_range_t *' - 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 + choose_srcp(title) -> sreg_range_t * + @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) -> 'ea_t' - 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 + choose_stkvar_xref(pfn, mptr) -> ea_t + @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) -> 'struc_t *' - 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 + choose_struc(title) -> struc_t * + @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) -> 'qstring *' - choose_til() -> str - - Choose a type library ( 'ui_choose' , 'chtype_idatil' ). 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: referenced address (C++: ea_t) - @return: ea of selected xref, BADADDR if none selected + choose_xref(to) -> ea_t + @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: @@ -46038,6 +53457,7 @@ Help on function clear_refresh_request in module ida_kernwin: clear_refresh_request(*args) -> 'void' clear_refresh_request(mask) + @param mask (C++: uint64) Help on class cli_t in module ida_kernwin: @@ -46053,6 +53473,43 @@ 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) @@ -46088,65 +53545,51 @@ class cli_t(ida_idaapi.pyidc_opaque_object_t) 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: window title of chooser to close (C++: const char *) - @return: success + close_chooser(title) -> bool + @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) -> 'void' - 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) + close_widget(widget, options) + @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) -> '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: 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 *) + create_code_viewer(custview, flags=0, parent=None) -> TWidget * + @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) -> '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) + create_empty_widget(title, icon=-1) -> TWidget * + @param title (C++: const char *) + @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, @@ -46168,49 +53611,44 @@ create_menu(*args) -> 'bool' 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 + create_menu(name, label, menupath=None) -> bool + @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) -> '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) - @return: success + create_toolbar(name, label, before=None, flags=0) -> bool + @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) -> '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: (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 + custom_viewer_jump(v, loc, flags=0) -> bool + @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) -> 'bool' del_hotkey(pyctx) -> bool - - Deletes a previously registered function hotkey @param ctx: Hotkey context previously returned by add_hotkey() @@ -46220,73 +53658,63 @@ del_hotkey(*args) -> 'bool' 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 *) + del_idc_hotkey(hotkey) -> bool + @param hotkey: hotkey name (C++: const char *) + @retval: 1 - ok + @retval: 0 - failed 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 *) - @return: success + delete_menu(name) -> bool + @param name: name of menu (C++: const char *) + @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 *) - @return: success + delete_toolbar(name) -> bool + @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) -> 'bool' - 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 + detach_action_from_menu(menupath, name) -> bool + @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) -> '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: target widget (C++: TWidget *) - @param name: action name (C++: const char *) + detach_action_from_popup(widget, name) -> bool + @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) -> 'bool' - 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 + detach_action_from_toolbar(toolbar_name, name) -> bool + @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: @@ -46315,7 +53743,7 @@ class disasm_line_t(builtins.object) | | __init__(self, *args) | __init__(self) -> disasm_line_t - | __init__(self, other) -> disasm_line_t + | other: disasm_line_t const & | | __repr__ = _swig_repr(self) | @@ -46358,10 +53786,11 @@ class disasm_text_t(builtins.object) | | __getitem__(self, *args) -> 'disasm_line_t const &' | __getitem__(self, i) -> disasm_line_t + | i: size_t | | __init__(self, *args) | __init__(self) -> disasm_text_t - | __init__(self, x) -> disasm_text_t + | 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. @@ -46373,12 +53802,15 @@ class disasm_text_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -46402,7 +53834,12 @@ class disasm_text_t(builtins.object) | | erase(self, *args) -> 'qvector< disasm_line_t >::iterator' | erase(self, it) -> disasm_line_t + | it: qvector< disasm_line_t >::iterator + | + | | erase(self, first, last) -> disasm_line_t + | first: qvector< disasm_line_t >::iterator + | last: qvector< disasm_line_t >::iterator | | extract(self, *args) -> 'disasm_line_t *' | extract(self) -> disasm_line_t @@ -46412,35 +53849,47 @@ class disasm_text_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=disasm_line_t()) + | x: disasm_line_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: disasm_line_t * + | len: size_t | | insert(self, *args) -> 'qvector< disasm_line_t >::iterator' | insert(self, it, x) -> disasm_line_t + | it: qvector< disasm_line_t >::iterator + | x: disasm_line_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'disasm_line_t &' | push_back(self, x) - | push_back(self) -> disasm_line_t + | x: disasm_line_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: disasm_line_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< disasm_line_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -46460,60 +53909,45 @@ class disasm_text_t(builtins.object) 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: 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 *) + display_widget(widget, options, dest_ctrl=None) + @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) -> 'size_t' - ea2str(ea) -> str - - Convert linear address to UTF-8 string. - - @param ea (C++: ea_t) + ea2str(ea) -> str + @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: 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) + ea_viewer_history_push_and_jump(v, ea, x, y, lnnum) -> bool + @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) -> '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 @@ -46522,9 +53956,10 @@ enable_chooser_item_attrs(*args) -> 'bool' 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 + enable_chooser_item_attrs(chooser_caption, enable) -> bool + @param chooser_caption (C++: const char *) + @param enable (C++: bool) + @return: success Help on class enumplace_t in module ida_kernwin: @@ -46569,78 +54004,183 @@ class enumplace_t(place_t) | | _print(self, *args) -> 'void' | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) -> 'void' + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) -> 'bool' + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) -> 'place_t *' - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) -> 'int' + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) -> 'int' + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) -> 'void' + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) -> 'bool' + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) -> 'place_t *' + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @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()' ) | | leave(self, *args) -> 'void' + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) -> 'place_t *' + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @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. | | next(self, *args) -> 'bool' + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) -> 'bool' + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) -> 'bool' + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | 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. | | touval(self, *args) -> 'uval_t' + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -46658,8 +54198,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 @@ -46668,8 +54206,6 @@ 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. @@ -46682,8 +54218,6 @@ 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. @@ -46695,340 +54229,306 @@ execute_ui_requests(*args) -> 'bool' 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: title of tab, or window title if widget is not tabbed - (C++: const char *) - @return: pointer to the TWidget, NULL if none is found + find_widget(caption) -> TWidget * + @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) -> 'void' formchgcbfa_close(p_fa, close_normally) + p_fa: size_t + 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 + p_fa: size_t + fid: int + 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 * + p_fa: size_t + fid: int + ft: int + 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 + 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 + p_fa: size_t + fid: int + x: int + y: int + w: int + h: int Help on function formchgcbfa_refresh_field in module ida_kernwin: formchgcbfa_refresh_field(*args) -> 'void' formchgcbfa_refresh_field(p_fa, fid) + p_fa: size_t + 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 + p_fa: size_t + fid: int + ft: int + 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 + p_fa: size_t + 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 + p_fa: size_t + fid: int + 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() 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) + gen_disasm_text(text, ea1, ea2, truncate_lines) + @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) -> 'bool *' - get_action_checkable(name) -> bool - - Get an action's checkability ( 'ui_get_action_attr' ). - @param name: the action name (C++: const char *) - @return: success + get_action_checkable(name) -> bool + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_checked(name) -> bool + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_icon(name) -> bool + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_label(name) -> str + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_shortcut(name) -> str + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_state(name) -> bool + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_tooltip(name) -> str + @param name: the action name (C++: const char *) + @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: the action name (C++: const char *) - @return: success + get_action_visibility(name) -> bool + @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) -> '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 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) -> '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 *) - @param info (C++: addon_info_t *) - @return: false if not found + get_addon_info(id, info) -> bool + @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) -> '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 + get_addon_info_idx(index, info) -> bool + @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 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) + get_chooser_data(chooser_caption, n) -> PyObject * + @param chooser_caption (C++: const char *) + @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 is object is chooser-specific. - @param chooser_caption (C++: const char *) - @return: the object that was used to create the chooser + get_chooser_obj(chooser_caption) -> void * + @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) -> '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' ).coordinates are 0-based 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: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) - @return: pointer to contents of current line + get_custom_viewer_curline(custom_viewer, mouse) -> char const * + @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) -> '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) + get_custom_viewer_location(out, custom_viewer, mouse=False) -> 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()' - @param custom_viewer: view (C++: TWidget *) - @param mouse: mouse position (otherwise cursor position) (C++: bool) + get_custom_viewer_place(custom_viewer, mouse) -> place_t + @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) -> '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: number of available back steps (C++: int *) - @param nfwd: number of available forward steps (C++: int *) - @param v: ea viewer (C++: TWidget *) + get_ea_viewer_history_info(nback, nfwd, v) -> bool + @param nback: number of available back steps (C++: int *) + @param nfwd: number of available forward steps (C++: int *) + @param v: ea viewer (C++: TWidget *) + @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) + get_hexdump_ea(hexdump_num) -> ea_t + @param hexdump_num: number of hexview window (C++: int) Help on function get_highlight in module ida_kernwin: get_highlight(*args) -> 'PyObject *' get_highlight(v) -> PyObject * - - Returns the currently highlighted identifier and flags @return: a tuple (text, flags), or None if nothing @@ -47037,39 +54537,28 @@ get_highlight(*args) -> 'PyObject *' 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 *) + get_key_code(keyname) -> ushort + @param keyname (C++: const char *) 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) + get_navband_ea(pixel) -> ea_t + @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 @param ea: The address to map @@ -47078,28 +54567,20 @@ get_navband_pixel(*args) -> 'bool *' 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: current for mouse pointer? (C++: bool) - @return: false if output contains no text + get_output_curline(mouse) -> str + @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) -> 'int *, int *' - 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 @@ -47107,159 +54588,129 @@ get_output_cursor(*args) -> 'int *, int *' 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: 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 + get_place_class(out_flags, out_sdk_version, id) -> place_t + @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) -> 'int' - 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 + get_place_class_id(name) -> int + @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) -> 'place_t const *' - get_place_class_template(id) -> place_t - - See 'get_place_class()' - - @param id (C++: int) + get_place_class_template(id) -> place_t + @param id (C++: int) Help on function get_registered_actions in module ida_kernwin: get_registered_actions(*args) -> 'PyObject *' - 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) -> '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 the group of widgets/registers this view is synchronized with + + get_synced_group(w) -> synced_group_t + @param w: the widget (C++: const TWidget *) + @return: the group of widgets/registers, or NULL + 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: the path of the source view for which the tab size is - requested. if NULL, the default size is returned. (C++: - const char *) + get_tab_size(path) -> int + @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) -> 'void' get_user_strlist_options(out) + @param out (C++: 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 *) + get_view_renderer_type(v) -> tcc_renderer_type_t + @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 *) + get_viewer_place_type(viewer) -> tcc_place_type_t + @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 *) + get_viewer_user_data(viewer) -> void * + @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 *) + get_widget_title(widget) -> str + @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 *) + get_widget_type(widget) -> twidget_type_t + @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 *) - @return: the low-level window ID + get_window_id(name=None) -> void * + @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) -> 'void' - hide_wait_box() - - Hide the "Please wait dialog box". Help on class idaplace_t in module ida_kernwin: @@ -47296,78 +54747,183 @@ class idaplace_t(place_t) | | _print(self, *args) -> 'void' | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) -> 'void' + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) -> 'bool' + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) -> 'place_t *' - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) -> 'int' + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) -> 'int' + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) -> 'void' + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) -> 'bool' + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) -> 'place_t *' + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @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()' ) | | leave(self, *args) -> 'void' + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) -> 'place_t *' + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @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. | | next(self, *args) -> 'bool' + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) -> 'bool' + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) -> 'bool' + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | 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. | | touval(self, *args) -> 'uval_t' + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -47385,79 +54941,68 @@ Help on function info in module ida_kernwin: info(*args) -> 'void' info(format) + @param format (C++: const char *) 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_interpreter(py_obj) -> int + 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 (C++: const place_t *) + @param flags (C++: int) + @param owner (C++: const plugin_t *) + @param sdk_version (C++: 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) + is_action_enabled(s) -> bool + @param s (C++: 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) + is_chooser_widget(t) -> bool + @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_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) + is_place_class_ea_capable(id) -> bool + @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) - @return: the state (set or cleared) + is_refresh_requested(mask) -> bool + @param mask: Window refresh flags (C++: uint64) + @return: the state (set or cleared) Help on class jobj_wrapper_t in module ida_kernwin: @@ -47489,16 +55034,345 @@ class jobj_wrapper_t(builtins.object) Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' - 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 + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + @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 + + + jumpto(custom_viewer, place, x, y) -> bool + custom_viewer: TWidget * + place: place_t * + x: int + y: int + @return: success + +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 + | 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 + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> line_rendering_output_entries_refs_t + | 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 + | r: qvector< line_rendering_output_entry_t * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | 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 + | x: line_rendering_output_entry_t *const & + | + | _internal_push_back(self, *args) -> 'void' + | _internal_push_back(self, e) + | e: line_rendering_output_entry_t * + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: line_rendering_output_entry_t *const & + | + | at(self, *args) -> 'line_rendering_output_entry_t *const &' + | at(self, _idx) -> line_rendering_output_entry_t + | _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 + | it: qvector< line_rendering_output_entry_t * >::iterator + | + | + | erase(self, first, last) -> qvector< line_rendering_output_entry_t * >::iterator + | first: qvector< line_rendering_output_entry_t * >::iterator + | last: qvector< line_rendering_output_entry_t * >::iterator + | + | extract(self, *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 + | x: line_rendering_output_entry_t *const & + | + | + | find(self, x) -> qvector< line_rendering_output_entry_t * >::const_iterator + | x: line_rendering_output_entry_t *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: line_rendering_output_entry_t *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: line_rendering_output_entry_t ** + | len: size_t + | + | insert(self, *args) -> 'qvector< line_rendering_output_entry_t * >::iterator' + | insert(self, it, x) -> qvector< line_rendering_output_entry_t * >::iterator + | it: qvector< line_rendering_output_entry_t * >::iterator + | x: line_rendering_output_entry_t *const & + | + | 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) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: line_rendering_output_entry_t *const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 + | r: line_rendering_output_entry_t const & + | + | __init__(self, *args) + | __init__(self, _line, _flags=0, _bg_color=0) -> line_rendering_output_entry_t + | _line: twinline_t const * + | _flags: uint32 + | _bg_color: bgcolor_t + | + | + | __init__(self, _line, _cpx, _nchars, _flags, _bg_color) -> line_rendering_output_entry_t + | _line: twinline_t const * + | _cpx: int + | _nchars: int + | _flags: uint32 + | _bg_color: bgcolor_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | 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 + | line_rendering_output_entry_t_bg_color_get(self) -> bgcolor_t + | + | cpx + | line_rendering_output_entry_t_cpx_get(self) -> int + | + | flags + | line_rendering_output_entry_t_flags_get(self) -> uint32 + | + | line + | line_rendering_output_entry_t_line_get(self) -> twinline_t + | + | nchars + | line_rendering_output_entry_t_nchars_get(self) -> int + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None + +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 + | lines_rendering_input_t_cb_get(self) -> int + | + | sections_lines + | lines_rendering_input_t_sections_lines_get(self) -> sections_lines_refs_t + | + | sync_group + | lines_rendering_input_t_sync_group_get(self) -> synced_group_t + | + | 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 + | r: lines_rendering_output_t const & + | + | __init__(self, *args) + | __init__(self) -> lines_rendering_output_t + | + | __ne__(self, *args) -> 'bool' + | __ne__(self, r) -> bool + | 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 (C++: 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 + | lines_rendering_output_t_entries_get(self) -> line_rendering_output_entries_refs_t + | + | flags + | lines_rendering_output_t_flags_get(self) -> uint32 + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Data and other attributes defined here: + | + | __hash__ = None Help on function load_custom_icon in module ida_kernwin: @@ -47513,44 +55387,32 @@ load_custom_icon(file_name=None, data=None, format=None) @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) -> '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) + load_dbg_dbginfo(path, li=None, base=BADADDR, verbose=False) -> bool + @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) -> 'ushort' - 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) + lookup_key_code(key, shift, is_qt) -> ushort + @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) -> 'PyObject *' msg(o) -> PyObject * - - Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -47563,100 +55425,84 @@ msg(*args) -> 'PyObject *' 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) -> 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) + msg_get_lines(count=-1) -> PyObject * + @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) -> 'bool' - 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 + msg_save(path) -> bool + @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) -> 'void' nomem(format) + @param format (C++: const char *) 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: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + open_bpts_window(ea) -> TWidget * + @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) -> 'TWidget *' - open_calls_window(ea) -> TWidget * - - Open the function calls window ( 'ui_open_builtin' ). - @param ea (C++: ea_t) - @return: pointer to resulting window + open_calls_window(ea) -> TWidget * + @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: 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 + open_disasm_window(window_title, ranges=None) -> TWidget * + @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) -> 'TWidget *' - 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 + open_enums_window(const_id=BADADDR) -> TWidget * + @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) -> 'TWidget *' - 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 + open_exports_window(ea) -> TWidget * + @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: @@ -47665,244 +55511,175 @@ open_form(*args) 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: 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 + open_frame_window(pfn, offset) -> TWidget * + @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) -> 'TWidget *' - 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 + open_funcs_window(ea) -> TWidget * + @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) -> 'TWidget *' - 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 + open_hexdump_window(window_title) -> TWidget * + @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) -> 'TWidget *' - 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 + open_imports_window(ea) -> TWidget * + @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) -> 'TWidget *' - 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 + open_loctypes_window(ordinal) -> TWidget * + @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) -> '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: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + open_names_window(ea) -> TWidget * + @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) -> 'TWidget *' - 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 + open_navband_window(ea, zoom) -> TWidget * + @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) -> '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: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + open_problems_window(ea) -> TWidget * + @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) -> 'TWidget *' - 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 + open_segments_window(ea) -> TWidget * + @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) -> 'TWidget *' - 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 + open_segregs_window(ea) -> TWidget * + @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) -> '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: 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 + open_strings_window(ea, selstart=BADADDR, selend=BADADDR) -> TWidget * + @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) -> 'TWidget *' - 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 + open_structs_window(id=BADADDR, offset=0) -> TWidget * + @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) -> '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 trace 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 *) + open_url(url) + @param url (C++: const char *) 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: index of entry to select by default (C++: ea_t) - @return: pointer to resulting window + open_xrefs_window(ea) -> TWidget * + @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: @@ -47921,78 +55698,183 @@ class place_t(builtins.object) | | _print(self, *args) -> 'void' | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) -> 'void' + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) -> 'bool' + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) -> 'place_t *' - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) -> 'int' + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) -> 'int' + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) -> 'void' + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) -> 'bool' + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) -> 'place_t *' + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @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()' ) | | leave(self, *args) -> 'void' + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) -> 'place_t *' + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @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. | | next(self, *args) -> 'bool' + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) -> 'bool' + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) -> 'bool' + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | 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. | | touval(self, *args) -> 'uval_t' + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods defined here: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -48013,31 +55895,38 @@ 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 + 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 + 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 + 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 + p: place_t * Help on function plgform_close in module ida_kernwin: plgform_close(*args) -> 'void' plgform_close(py_link, options) + py_link: PyObject * + options: int Help on function plgform_get_widget in module ida_kernwin: plgform_get_widget(*args) -> 'TWidget *' plgform_get_widget(py_link) -> TWidget * + py_link: PyObject * Help on function plgform_new in module ida_kernwin: @@ -48048,13 +55937,15 @@ 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 + py_link: PyObject * + py_obj: PyObject * + caption: char const * + 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 @@ -48074,148 +55965,192 @@ 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 + data: PyObject * + 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 + 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) + py_form: PyObject * Help on function py_ss_restore_callback in module ida_kernwin: py_ss_restore_callback(*args) -> 'void' py_ss_restore_callback(err_msg, userdata) + err_msg: char const * + userdata: void * Help on function py_unregister_compiled_form in module ida_kernwin: py_unregister_compiled_form(*args) -> 'void' py_unregister_compiled_form(py_form) + py_form: PyObject * Help on function pyidag_bind in module ida_kernwin: pyidag_bind(*args) -> 'bool' pyidag_bind(_self) -> bool + self: PyObject * Help on function pyidag_unbind in module ida_kernwin: pyidag_unbind(*args) -> 'bool' pyidag_unbind(_self) -> bool + 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 + py_this: PyObject * + py_sl: PyObject * Help on function pyscv_clear_lines in module ida_kernwin: pyscv_clear_lines(*args) -> 'PyObject *' pyscv_clear_lines(py_this) -> PyObject * + py_this: PyObject * Help on function pyscv_close in module ida_kernwin: pyscv_close(*args) -> 'void' pyscv_close(py_this) + py_this: PyObject * Help on function pyscv_count in module ida_kernwin: pyscv_count(*args) -> 'size_t' pyscv_count(py_this) -> size_t + 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 + py_this: PyObject * + 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 + py_this: PyObject * + nline: size_t + 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 * + py_this: PyObject * + mouse: bool + 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 * + py_this: PyObject * + mouse: bool Help on function pyscv_get_line in module ida_kernwin: pyscv_get_line(*args) -> 'PyObject *' pyscv_get_line(py_this, nline) -> PyObject * + py_this: PyObject * + 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 * + py_this: PyObject * + mouse: bool Help on function pyscv_get_selection in module ida_kernwin: pyscv_get_selection(*args) -> 'PyObject *' pyscv_get_selection(py_this) -> PyObject * + py_this: PyObject * Help on function pyscv_get_widget in module ida_kernwin: pyscv_get_widget(*args) -> 'TWidget *' pyscv_get_widget(py_this) -> TWidget * + py_this: PyObject * Help on function pyscv_init in module ida_kernwin: pyscv_init(*args) -> 'PyObject *' pyscv_init(py_link, title) -> PyObject * + py_link: PyObject * + 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 + py_this: PyObject * + nline: size_t + py_sl: PyObject * Help on function pyscv_is_focused in module ida_kernwin: pyscv_is_focused(*args) -> 'bool' pyscv_is_focused(py_this) -> bool + py_this: PyObject * Help on function pyscv_jumpto in module ida_kernwin: pyscv_jumpto(*args) -> 'bool' pyscv_jumpto(py_this, ln, x, y) -> bool + py_this: PyObject * + ln: size_t + x: int + 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 + py_this: PyObject * + nline: size_t + offs: size_t + value: int Help on function pyscv_refresh in module ida_kernwin: pyscv_refresh(*args) -> 'bool' pyscv_refresh(py_this) -> bool + py_this: PyObject * Help on function pyscv_show in module ida_kernwin: pyscv_show(*args) -> 'bool' pyscv_show(py_this) -> bool + 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) - @return: length of line + qcleanline(cmt_char='\0', flags=((1 << 0)|(1 << 1))|(1 << 2)) -> str + @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: @@ -48252,21 +56187,19 @@ class quick_widget_commands_t(builtins.object) 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: view, NULL means the last active window containing addresses - (C++: TWidget *) + read_range_selection(v) -> bool + @param v: view, NULL means the last active window containing addresses + (C++: TWidget *) + @retval: 0 - no range is selected + @retval: 1 - ok, start ea and end ea are filled 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: @@ -48300,14 +56233,12 @@ read_selection(*args) -> 'bool' 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: title of chooser (C++: const char *) - @return: success + refresh_chooser(title) -> bool + @param title: title of chooser (C++: const char *) + @return: success Help on function refresh_choosers in module ida_kernwin: @@ -48317,36 +56248,25 @@ refresh_choosers(*args) -> 'void' 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: refresh regardless (C++: bool) + refresh_navband(force) + @param force: refresh regardless (C++: bool) 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 ( @@ -48355,47 +56275,43 @@ register_action(*args) -> 'bool' 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 + register_action(desc) -> bool + @param desc: action to register (C++: const action_desc_t &) + @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 *) + register_addon(info) -> int + @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) -> 'bool' - 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 *) + register_and_attach_to_menu(menupath, name, label, shortcut, flags, handler, owner, action_desc_t_flags) -> bool + @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++: 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 a timer @param interval: Interval in milliseconds @@ -48408,10 +56324,10 @@ register_timer(*args) -> 'PyObject *' 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_interpreter(cli_idx) + cli_idx: int Help on class renderer_pos_info_t in module ida_kernwin: @@ -48422,12 +56338,14 @@ class renderer_pos_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: renderer_pos_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_pos_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: renderer_pos_info_t const & | | __repr__ = _swig_repr(self) | @@ -48466,173 +56384,458 @@ class renderer_pos_info_t(builtins.object) 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 *) + repaint_custom_viewer(custom_viewer) + @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 *) + replace_wait_box(format) + @param format (C++: const char *) 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) + request_refresh(mask, cnd=True) + @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) -> 'PyObject *' - 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. + restore_database_snapshot(ss, pyfunc_or_none, pytuple_or_none) -> PyObject * + @param ss: snapshot instance (see build_snapshot_tree() ) (C++: const + snapshot_t *) + pyfunc_or_none: PyObject * + pytuple_or_none: PyObject * + @return: false if restoration could not be started (snapshot file was + not found). If the returned value is True then check if + the operation succeeded from the callback. + +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 + | r: qvector< twinline_t const * > const & + | + | __getitem__(self, *args) -> 'twinline_t const *const &' + | __getitem__(self, i) -> twinline_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> section_lines_refs_t + | 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 + | r: qvector< twinline_t const * > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | 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 + | x: twinline_t const *const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: twinline_t const *const & + | + | at(self, *args) -> 'twinline_t const *const &' + | at(self, _idx) -> twinline_t + | _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 + | it: qvector< twinline_t const * >::iterator + | + | + | erase(self, first, last) -> qvector< twinline_t const * >::iterator + | first: qvector< twinline_t const * >::iterator + | last: qvector< twinline_t const * >::iterator + | + | extract(self, *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 + | x: twinline_t const *const & + | + | + | find(self, x) -> qvector< twinline_t const * >::const_iterator + | x: twinline_t const *const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: twinline_t const *const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: twinline_t const ** + | len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t const * >::iterator' + | insert(self, it, x) -> qvector< twinline_t const * >::iterator + | it: qvector< twinline_t const * >::iterator + | x: twinline_t const *const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t const *&' + | push_back(self, x) + | x: twinline_t const *const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: twinline_t const *const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 + | r: qvector< section_lines_refs_t > const & + | + | __getitem__(self, *args) -> 'section_lines_refs_t const &' + | __getitem__(self, i) -> section_lines_refs_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> sections_lines_refs_t + | 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 + | r: qvector< section_lines_refs_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | 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 + | x: section_lines_refs_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: section_lines_refs_t const & + | + | at(self, *args) -> 'section_lines_refs_t const &' + | at(self, _idx) -> section_lines_refs_t + | _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 + | it: qvector< section_lines_refs_t >::iterator + | + | + | erase(self, first, last) -> qvector< section_lines_refs_t >::iterator + | first: qvector< section_lines_refs_t >::iterator + | last: qvector< section_lines_refs_t >::iterator + | + | extract(self, *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 + | x: section_lines_refs_t const & + | + | + | find(self, x) -> qvector< section_lines_refs_t >::const_iterator + | x: section_lines_refs_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=section_lines_refs_t()) + | x: section_lines_refs_t const & + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: section_lines_refs_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: section_lines_refs_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< section_lines_refs_t >::iterator' + | insert(self, it, x) -> qvector< section_lines_refs_t >::iterator + | it: qvector< section_lines_refs_t >::iterator + | x: section_lines_refs_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'section_lines_refs_t &' + | push_back(self, x) + | x: section_lines_refs_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: section_lines_refs_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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: 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 + set_code_viewer_handler(code_viewer, handler_id, handler_or_data) -> void * + @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) -> '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 *) + set_code_viewer_is_source(code_viewer) -> bool + @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 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 *) + set_code_viewer_line_handlers(code_viewer, click_handler, popup_handler, dblclick_handler, drawicon_handler, linenum_handler) + @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) + set_code_viewer_lines_alignment(code_viewer, align) -> bool + @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) + set_code_viewer_lines_icon_margin(code_viewer, margin) -> bool + @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) + set_code_viewer_lines_radix(code_viewer, radix) -> bool + @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 *) + set_code_viewer_user_data(code_viewer, ud) -> bool + @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 *) + set_custom_viewer_qt_aware(custom_viewer) -> bool + @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 @@ -48647,24 +56850,20 @@ set_dock_pos(*args) -> 'bool' 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: 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 + set_highlight(viewer, str, flags) -> bool + @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) -> 'PyObject *' set_nav_colorizer(new_py_colorizer) -> PyObject * - - Set a new colorizer for the navigation band. The 'callback' is a function of 2 arguments: @@ -48694,21 +56893,15 @@ set_nav_colorizer(*args) -> '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) + set_view_renderer_type(v, rt) + @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) -> 'void' - 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 @@ -48724,6 +56917,9 @@ show_wait_box(*args) -> 'void' currently displayed,alternatively it can call 'replace_wait_box()' , to replace the text of thedialog without pushing the currently- displayed text on the stack. + + show_wait_box(message) + message: char const * Help on class simplecustviewer_t in module ida_kernwin: @@ -48881,78 +57077,183 @@ class simpleline_place_t(place_t) | | _print(self, *args) -> 'void' | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) -> 'void' + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) -> 'bool' + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) -> 'place_t *' - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) -> 'int' + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) -> 'int' + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) -> 'void' + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) -> 'bool' + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) -> 'place_t *' + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @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()' ) | | leave(self, *args) -> 'void' + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) -> 'place_t *' + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @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. | | next(self, *args) -> 'bool' + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) -> 'bool' + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) -> 'bool' + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | 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. | | touval(self, *args) -> 'uval_t' + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -48975,8 +57276,12 @@ class simpleline_t(builtins.object) | | __init__(self, *args) | __init__(self) -> simpleline_t - | __init__(self, c, str) -> simpleline_t + | c: color_t + | str: char const * + | + | | __init__(self, str) -> simpleline_t + | str: char const * | | __repr__ = _swig_repr(self) | @@ -49008,8 +57313,6 @@ 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. @return: BADADDR or address value @@ -49018,8 +57321,6 @@ Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' str2user(str) -> PyObject * - - Insert C-style escape characters to string @return: new string with escape characters inserted @@ -49027,17 +57328,15 @@ str2user(*args) -> 'PyObject *' 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 *) - @param array_size (C++: size_t) - @param code (C++: int) + strarray(array, array_size, code) -> char const * + @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: @@ -49109,78 +57408,183 @@ class structplace_t(place_t) | | _print(self, *args) -> 'void' | _print(self, out_buf, ud) + | out_buf: qstring * + | ud: void * | | adjust(self, *args) -> 'void' + | Adjust the current location to point to a displayable object. This + | function validates the location and makes sure that it points to an + | existing object. For example, if the location points to the middle of + | an instruction, it will be adjusted to point to the beginning of the + | instruction. + | | adjust(self, ud) + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | beginning(self, *args) -> 'bool' + | Are we at the first displayable object?. + | | beginning(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the first displayable + | object | | clone(self, *args) -> 'place_t *' - | clone(self) -> place_t + | Clone the location. | | compare(self, *args) -> 'int' + | Deprecated. Please consider compare2(const place_t *, void *) instead. + | | compare(self, t2) -> int + | @param t2 (C++: const place_t *) + | + | compare2(self, *args) -> 'int' + | Compare two locations except line numbers (lnnum). This function is + | used to organize loops. For example, if the user has selected an + | range, its boundaries are remembered as location objects. Any + | operation within the selection will have the following look: for ( + | loc=starting_location; loc < ending_location; loc.next() ) In this + | loop, the comparison function is used. + | + | compare2(self, t2, arg3) -> int + | @param t2: the place to compare this one to. (C++: const place_t *) + | arg3: void * + | @retval: -1 - if the current location is less than 't2' + | @retval: 0 - if the current location is equal to than 't2' + | @retval: 1 - if the current location is greater than 't2' | | copyfrom(self, *args) -> 'void' + | Copy the specified location object to the current object. + | | copyfrom(self, _from) + | @param _from (C++: const place_t *) | | deserialize(self, *args) -> 'bool' + | De-serialize into this instance. 'pptr' should be incremented by as + | many bytes as de-serialization consumed. + | | deserialize(self, _in) -> bool + | in: bytevec_t const & + | @return: whether de-serialization was successful | | ending(self, *args) -> 'bool' + | Are we at the last displayable object?. + | | ending(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: true if the current location points to the last displayable + | object | | enter(self, *args) -> 'place_t *' + | Visit this place, possibly 'unhiding' a section of text. If entering + | that place required some expanding, a 'place_t' should be returned + | that represents that section, plus some flags for later use by ' + | 'leave()' '. + | | enter(self, arg2) -> place_t + | arg2: uint32 * + | @return: a place_t corresponding to the beginning of the section of + | text that had to be expanded. That place_t 's leave() will + | be called with the flags contained in 'out_flags' when the + | user navigates away from it. | | generate(self, *args) -> 'PyObject *' + | Generate text lines for the current location. + | | generate(self, ud, maxsize) -> PyObject * + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param maxsize: the maximum number of lines to generate (C++: int) + | @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()' ) | | leave(self, *args) -> 'void' + | Leave this place, possibly 'hiding' a section of text that was + | previously expanded (at 'enter()' -time.) + | | leave(self, arg2) + | arg2: uint32 | | makeplace(self, *args) -> 'place_t *' + | Map a number to a location. When the user clicks on the scrollbar and + | drags it, we need to determine the location corresponding to the new + | scrollbar position. This function is used to determine it. It builds a + | location object for the specified 'x' and returns a pointer to it. + | | makeplace(self, ud, x, lnnum) -> place_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @param x: number to map (C++: uval_t) + | @param lnnum: line number to initialize 'lnnum' (C++: int) + | @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. | | next(self, *args) -> 'bool' + | Move to the next displayable location. + | | next(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | prev(self, *args) -> 'bool' + | Move to the previous displayable location. + | | prev(self, ud) -> bool + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) + | @return: success | | rebase(self, *args) -> 'bool' + | Rebase the place instance + | | rebase(self, arg2) -> bool + | arg2: segm_move_infos_t const & + | @return: true if place was rebased, false otherwise | | 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. | | touval(self, *args) -> 'uval_t' + | Map the location to a number. This mapping is used to draw the + | vertical scrollbar. + | | touval(self, ud) -> uval_t + | @param ud: pointer to user-defined context data. Is supplied by + | linearray_t (C++: void *) | | ---------------------------------------------------------------------- | Static methods inherited from place_t: | | as_enumplace_t(*args) -> 'enumplace_t *' | as_enumplace_t(p) -> enumplace_t + | p: place_t * | | as_idaplace_t(*args) -> 'idaplace_t *' | as_idaplace_t(p) -> idaplace_t + | p: place_t * | | as_simpleline_place_t(*args) -> 'simpleline_place_t *' | as_simpleline_place_t(p) -> simpleline_place_t + | p: place_t * | | as_structplace_t(*args) -> 'structplace_t *' | as_structplace_t(p) -> structplace_t + | p: place_t * | | ---------------------------------------------------------------------- | Data descriptors inherited from place_t: @@ -49203,13 +57607,19 @@ class sync_source_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, _o) -> bool + | _o: sync_source_t const & | | __init__(self, *args) | __init__(self, _view) -> sync_source_t + | _view: TWidget const * + | + | | __init__(self, _regname) -> sync_source_t + | _regname: char const * | | __ne__(self, *args) -> 'bool' | __ne__(self, _o) -> bool + | _o: sync_source_t const & | | __repr__ = _swig_repr(self) | @@ -49245,30 +57655,471 @@ 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 + | r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> sync_source_vec_t + | 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 + | r: qvector< sync_source_t > const & + | + | __repr__ = _swig_repr(self) + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | 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 + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | 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 + | end(self) -> sync_source_t + | + | erase(self, *args) -> 'qvector< sync_source_t >::iterator' + | erase(self, it) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | + | + | erase(self, first, last) -> sync_source_t + | first: qvector< sync_source_t >::iterator + | last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | has(self, *args) -> 'bool' + | has(self, x) -> bool + | x: sync_source_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: sync_source_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 + sync_sources(what, _with, sync) -> 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 (C++: const sync_source_t &) + | + | has_register(self, *args) -> 'bool' + | has_register(self, r) -> bool + | @param r (C++: const char *) + | + | has_widget(self, *args) -> 'bool' + | has_widget(self, v) -> bool + | @param v (C++: const TWidget *) + | + | ---------------------------------------------------------------------- + | Data descriptors defined here: + | + | thisown + | The membership flag + | + | ---------------------------------------------------------------------- + | Methods inherited from sync_source_vec_t: + | + | __eq__(self, *args) -> 'bool' + | __eq__(self, r) -> bool + | r: qvector< sync_source_t > const & + | + | __getitem__(self, *args) -> 'sync_source_t const &' + | __getitem__(self, i) -> sync_source_t + | 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 + | r: qvector< sync_source_t > const & + | + | __setitem__(self, *args) -> 'void' + | __setitem__(self, i, v) + | i: size_t + | v: sync_source_t const & + | + | _del(self, *args) -> 'bool' + | _del(self, x) -> bool + | x: sync_source_t const & + | + | add_unique(self, *args) -> 'bool' + | add_unique(self, x) -> bool + | x: sync_source_t const & + | + | at(self, *args) -> 'sync_source_t const &' + | at(self, _idx) -> sync_source_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | begin(self) -> sync_source_t + | 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 + | end(self) -> sync_source_t + | + | erase(self, *args) -> 'qvector< sync_source_t >::iterator' + | erase(self, it) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | + | + | erase(self, first, last) -> sync_source_t + | first: qvector< sync_source_t >::iterator + | last: qvector< sync_source_t >::iterator + | + | extract(self, *args) -> 'sync_source_t *' + | extract(self) -> sync_source_t + | + | find(self, *args) -> 'qvector< sync_source_t >::const_iterator' + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | + | find(self, x) -> sync_source_t + | x: sync_source_t const & + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: sync_source_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< sync_source_t >::iterator' + | insert(self, it, x) -> sync_source_t + | it: qvector< sync_source_t >::iterator + | x: sync_source_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'void' + | push_back(self, x) + | x: sync_source_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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 a database snapshot ( 'ui_take_database_snapshot' ). - @param ss: in/out parameter. in: description, flags out: filename, - id (C++: snapshot_t *) - @return: success + take_database_snapshot(ss) -> PyObject * + @param ss: in/out parameter. in: description, flags out: filename, + id (C++: snapshot_t *) + @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 + | i: size_t + | + | __init__(self, *args) + | __init__(self) -> text_t + | 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) + | i: size_t + | v: twinline_t const & + | + | __swig_destroy__ = delete_text_t(...) + | delete_text_t(self) + | + | at(self, *args) -> 'twinline_t const &' + | at(self, _idx) -> twinline_t + | _idx: size_t + | + | back = _qvector_back(self) + | # ----------------------------------------------------------------------- + | + | begin(self, *args) -> 'qvector< twinline_t >::const_iterator' + | begin(self) -> twinline_t + | 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 + | end(self) -> twinline_t + | + | erase(self, *args) -> 'qvector< twinline_t >::iterator' + | erase(self, it) -> twinline_t + | it: qvector< twinline_t >::iterator + | + | + | erase(self, first, last) -> twinline_t + | first: qvector< twinline_t >::iterator + | last: qvector< twinline_t >::iterator + | + | extract(self, *args) -> 'twinline_t *' + | extract(self) -> twinline_t + | + | front = _qvector_front(self) + | # ----------------------------------------------------------------------- + | + | grow(self, *args) -> 'void' + | grow(self, x=twinline_t()) + | x: twinline_t const & + | + | inject(self, *args) -> 'void' + | inject(self, s, len) + | s: twinline_t * + | len: size_t + | + | insert(self, *args) -> 'qvector< twinline_t >::iterator' + | insert(self, it, x) -> twinline_t + | it: qvector< twinline_t >::iterator + | x: twinline_t const & + | + | pop_back(self, *args) -> 'void' + | pop_back(self) + | + | push_back(self, *args) -> 'twinline_t &' + | push_back(self, x) + | x: twinline_t const & + | + | qclear(self, *args) -> 'void' + | qclear(self) + | + | reserve(self, *args) -> 'void' + | reserve(self, cnt) + | cnt: size_t + | + | resize(self, *args) -> 'void' + | resize(self, _newsize, x) + | _newsize: size_t + | x: twinline_t const & + | + | + | resize(self, _newsize) + | _newsize: size_t + | + | size(self, *args) -> 'size_t' + | size(self) -> size_t + | + | swap(self, *args) -> 'void' + | swap(self, r) + | 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: @@ -49387,6 +58238,8 @@ Help on function textctrl_info_t_assign in module ida_kernwin: textctrl_info_t_assign(*args) -> 'bool' textctrl_info_t_assign(_self, other) -> bool + self: PyObject * + other: PyObject * Help on function textctrl_info_t_create in module ida_kernwin: @@ -49397,46 +58250,103 @@ Help on function textctrl_info_t_destroy in module ida_kernwin: textctrl_info_t_destroy(*args) -> 'bool' textctrl_info_t_destroy(py_obj) -> bool + 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 * + 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 * + 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 + 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 + 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 * + 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 + self: PyObject * + 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 + self: PyObject * + 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 + self: PyObject * + 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 + | t: place_t * + | pc: color_t + | 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 + | twinline_t_at_get(self) -> place_t + | + | bg_color + | twinline_t_bg_color_get(self) -> bgcolor_t + | + | is_default + | twinline_t_is_default_get(self) -> bool + | + | line + | twinline_t_line_get(self) -> qstring * + | + | prefix_color + | twinline_t_prefix_color_get(self) -> color_t + | + | thisown + | The membership flag Help on class twinpos_t in module ida_kernwin: @@ -49445,16 +58355,14 @@ 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 + | t: place_t * + | + | | __init__(self, t, x0) -> twinpos_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, r) -> bool + | t: place_t * + | x0: int | | __repr__ = _swig_repr(self) | @@ -49488,30 +58396,25 @@ class twinpos_t(builtins.object) | | x | twinpos_t_x_get(self) -> int - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None 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: 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 **) + ui_load_new_file(temp_file, filename, pli, neflags, ploaders) -> bool + @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 **) + @retval: true - file was successfully loaded + @retval: false - otherwise Help on class ui_requests_t in module ida_kernwin: @@ -49543,43 +58446,34 @@ class ui_requests_t(builtins.object) 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: 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 + ui_run_debugger(dbgopts, exename, argc, argv) -> bool + @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) -> '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: name of action (C++: const char *) - @return: success + unregister_action(name) -> bool + @param name: name of action (C++: const char *) + @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() @@ -49589,105 +58483,86 @@ unregister_timer(*args) -> 'bool' 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: action name (C++: const char *) - @param checkable: new checkability (C++: bool) - @return: success + update_action_checkable(name, checkable) -> bool + @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) -> 'bool' - 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 + update_action_checked(name, checked) -> bool + @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) -> 'bool' - 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 + update_action_icon(name, icon) -> bool + @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) -> 'bool' - 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 + update_action_label(name, label) -> bool + @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) -> 'bool' - 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 + update_action_shortcut(name, shortcut) -> bool + @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) -> 'bool' - 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 + update_action_state(name, state) -> bool + @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) -> 'bool' - 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 + update_action_tooltip(name, tooltip) -> bool + @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) -> 'bool' - 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 + update_action_visibility(name, visible) -> bool + @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) -> 'bool' - user_cancelled() -> bool - - Test the ctrl-break flag ( 'ui_test_cancelled' ). Help on class view_mouse_event_location_t in module ida_kernwin: @@ -49775,8 +58650,6 @@ 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) @@ -49786,6 +58659,11 @@ warning(*args) -> 'void' the screen === ida_kernwin EPYDOC INJECTIONS === +ida_kernwin.ACF_HAS_FIELD_DIRTREE_SELECTION +""" +'cur_enum_member' and 'dirtree_selection' fields are present +""" + ida_kernwin.ACF_HAS_SELECTION """ there is currently a valid selection @@ -49796,6 +58674,20 @@ ida_kernwin.ACF_XTRN_EA cur_ea is in 'externs' segment """ +ida_kernwin.ADF_GLOBAL +""" +available even if no IDB is present + +Register the action globally, so that it's +""" + +ida_kernwin.ADF_NO_HIGHLIGHT +""" +according to what's under the cursor (listings only.) + +After activating, do not update the highlight +""" + ida_kernwin.ADF_NO_UNDO """ useful for actions that do not modify the database. @@ -49803,6 +58695,26 @@ useful for actions that do not modify the database. the action does not create an undo point. """ +ida_kernwin.ADF_OT_MASK +""" +Owner type mask. +""" + +ida_kernwin.ADF_OT_PLUGIN +""" +Owner is a 'plugin_t' . +""" + +ida_kernwin.ADF_OT_PLUGMOD +""" +Owner is a 'plugmod_t' . +""" + +ida_kernwin.ADF_OT_PROCMOD +""" +Owner is a 'procmod_t' . +""" + ida_kernwin.ADF_OWN_HANDLER """ handler is owned by the action; it'll be destroyed when the action is @@ -50158,6 +59070,13 @@ ida_kernwin.CHCOL_DEFHIDDEN column should be hidden by default """ +ida_kernwin.CHCOL_DRAGHINT +""" +the column number that will be used to build hints for the dragging +undo label. This should be provided for at most one column for any +given chooser. +""" + ida_kernwin.CHCOL_EA """ address @@ -50178,6 +59097,13 @@ ida_kernwin.CHCOL_HEX hexadecimal number """ +ida_kernwin.CHCOL_INODENAME +""" +if CH_HAS_DIRTREE has been specified, this instructs the chooser that +this column shows the inode name. This should be provided for at most +one column for any given chooser. +""" + ida_kernwin.CHCOL_PATH """ file path @@ -50285,6 +59211,12 @@ if a non-modal chooser was already open, change selection to the default one """ +ida_kernwin.CH_HAS_DIRTREE +""" +The chooser can provide a 'dirtree_t' , meaning a tree-like structure +can be provided to the user (instead of a flat table) +""" + ida_kernwin.CH_KEEP """ The chooser instance's lifecycle is not tied to the lifecycle of the @@ -50361,6 +59293,111 @@ restore floating position if present (equivalent of WOPN_RESTORE) (GUI version only) """ +ida_kernwin.CH_TM_FOLDERS_ONLY +""" +chooser will show in folders-only mode +""" + +ida_kernwin.CH_TM_FULL_TREE +""" +chooser will show in no-tree mode +""" + +ida_kernwin.CH_TM_NO_TREE +""" +chooser will show up in no-tree mode +""" + +ida_kernwin.CK_EXTRA1 +""" +extra background overlay #1 +""" + +ida_kernwin.CK_EXTRA10 +""" +extra background overlay #10 +""" + +ida_kernwin.CK_EXTRA11 +""" +extra background overlay #11 +""" + +ida_kernwin.CK_EXTRA12 +""" +extra background overlay #12 +""" + +ida_kernwin.CK_EXTRA13 +""" +extra background overlay #13 +""" + +ida_kernwin.CK_EXTRA14 +""" +extra background overlay #14 +""" + +ida_kernwin.CK_EXTRA15 +""" +extra background overlay #15 +""" + +ida_kernwin.CK_EXTRA16 +""" +extra background overlay #16 +""" + +ida_kernwin.CK_EXTRA2 +""" +extra background overlay #2 +""" + +ida_kernwin.CK_EXTRA3 +""" +extra background overlay #3 +""" + +ida_kernwin.CK_EXTRA4 +""" +extra background overlay #4 +""" + +ida_kernwin.CK_EXTRA5 +""" +extra background overlay #5 +""" + +ida_kernwin.CK_EXTRA6 +""" +extra background overlay #6 +""" + +ida_kernwin.CK_EXTRA7 +""" +extra background overlay #7 +""" + +ida_kernwin.CK_EXTRA8 +""" +extra background overlay #8 +""" + +ida_kernwin.CK_EXTRA9 +""" +extra background overlay #9 +""" + +ida_kernwin.CK_TRACE +""" +traced address +""" + +ida_kernwin.CK_TRACE_OVL +""" +overlay trace address +""" + ida_kernwin.CLNL_FINDCMT """ Search for the comment symbol everywhere in the line, not only at the @@ -50768,6 +59805,16 @@ ida_kernwin.IWID_XREFS xrefs (18) """ +ida_kernwin.LROEF_CPS_RANGE +""" +background for range of chars +""" + +ida_kernwin.LROEF_FULL_LINE +""" +full line background +""" + ida_kernwin.MFF_FAST """ Execute code as soon as possible. this mode is ok for calling ui @@ -50778,10 +59825,10 @@ 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. +not, the request will be ignored. the request must be created using +the 'new' operator to use it with this flag. it can be used in +'cancel_exec_request()' . This flag can be used to delay the code +execution until the next UI loop run even from the main thread. """ ida_kernwin.MFF_READ @@ -50801,6 +59848,19 @@ 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.PCF_EA_CAPABLE +""" +toea() implementation returns meaningful data +""" + +ida_kernwin.PCF_MAKEPLACE_ALLOCATES +""" +makeplace() returns a freshly allocated (i.e., non-static) instance. +All new code should pass that flag to 'register_place_class()' , and +the corresponding makeplace() class implementation should return new +instances. +""" + ida_kernwin.SETMENU_APP """ add menu item after the specified path @@ -50861,158 +59921,114 @@ COLSTR(str, tag) 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 *) - @return: true if success + add_extra_cmt(ea, isprev, format) -> bool + @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) -> '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 *) - @return: true if success + add_extra_line(ea, isprev, format) -> bool + @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) -> '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 *) - @return: true if success + add_pgm_cmt(format) -> 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_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: 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(builtins.object) - | Proxy of C++ bgcolors_t class. - | - | Methods defined here: - | - | __init__(self, *args) - | __init__(self) -> bgcolors_t - | - | __repr__ = _swig_repr(self) - | - | __swig_destroy__ = delete_bgcolors_t(...) - | delete_bgcolors_t(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 + add_sourcefile(ea1, ea2, filename) -> bool + @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 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 + calc_bg_color(ea) -> bgcolor_t + @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 + calc_prefix_color(ea) -> color_t + @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 * + encidx: int + 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) + ea: ea_t + 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: linear address (C++: ea_t) - @return: success + del_sourcefile(ea) -> bool + @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) + ea: ea_t + what: int Help on function generate_disasm_line in module ida_lines: generate_disasm_line(*args) -> 'qstring *' generate_disasm_line(ea, flags=0) -> str + ea: ea_t + flags: int 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 @@ -51027,25 +60043,43 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) -> 'int' get_extra_cmt(ea, what) -> ssize_t + ea: ea_t + 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 + ea: ea_t + 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 + get_sourcefile(ea, bounds=None) -> char const * + @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 install_user_defined_prefix in module ida_lines: + +install_user_defined_prefix(*args) -> '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. + + install_user_defined_prefix(prefix_len, udp, owner) -> bool + @param prefix_len: prefixed length. if 0, then uninstall UDP (C++: + size_t) + @param udp: object to generate user-defined prefix (C++: struct + user_defined_prefix_t *) + @param owner: pointer to the plugin_t that owns UDP if non-NULL, + then the object will be uninstalled and destroyed when + the plugin gets unloaded (C++: const void *) Help on function requires_color_esc in module ida_lines: @@ -51053,107 +60087,125 @@ 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 + Deprecated. Please use install_user_defined_prefix() instead 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) + tag_addr(ea) -> PyObject * + @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 + tag_advance(line, cnt) -> int + @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 *' + Remove color escape sequences from a string. + 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 + nonnul_instr: char const * + @return: length of resulting string, -1 if error 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 + tag_skipcode(line) -> int + @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 + tag_skipcodes(line) -> int + @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 + tag_strlen(line) -> ssize_t + @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) + ea: ea_t + what: int + 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 + | prefix_len: size_t + | 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' + | This callback must be overridden by the derived class. + | + | get_user_defined_prefix(self, ea, insn, lnnum, indent, line) + | @param ea: the current address (C++: ea_t) + | @param insn: the current instruction. if the current item is not an + | instruction, then insn.itype is zero. - an + | ida_ua.insn_t, or an address (C++: const insn_t &) + | @param lnnum (C++: int) + | @param indent: see explanations for gen_printf() (C++: int) + | @param line: the line to be generated. the line usually contains color + | tags. this argument can be examined to decide whether to + | generate the prefix. (C++: const char *) + | + | ---------------------------------------------------------------------- + | Data 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_lines EPYDOC INJECTIONS === ida_lines.COLOR_ADDR_SIZE @@ -51476,193 +60528,169 @@ Void operand. 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: 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 + base2file(fp, pos, ea1, ea2) -> int + @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) -> 'bool' - 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 + build_snapshot_tree(root) -> bool + @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) -> 'void' clr_database_flag(dbfl) + @param dbfl (C++: 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 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) + extract_module_from_archive(fname, is_remote=False) -> PyObject * + fname: char const * + @param is_remote: is the input file remote? (C++: bool) + @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: 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) + file2base(li, pos, ea1, ea2, patchable) -> int + @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) + @retval: 1 - ok + @retval: 0 - read error, a warning is displayed 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) - @return: pointer to plugin description block + find_plugin(name, load_if_needed=False) -> plugin_t * + @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) -> '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 + gen_exe_file(fp) -> int + @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 + @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. '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 + gen_file(otype, fp, ea1, ea2, flags) -> int + @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 + @retval: 0 - can't generate exe file + @retval: 1 - ok 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 *) + get_basic_file_type(li) -> filetype_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}. - - @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) + get_fileregion_ea(offset) -> ea_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. - @param ea (C++: ea_t) + get_fileregion_offset(ea) -> qoff64_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 + get_path(pt) -> char const * + @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) -> '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 NULL if there we no options specified - @param plugin (C++: const char *) + get_plugin_options(plugin) -> char const * + @param plugin (C++: const char *) Help on class idp_desc_t in module ida_loader: @@ -51748,62 +60776,51 @@ class idp_name_t(builtins.object) 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) - @return: the state of the flag (set or cleared) + is_database_flag(dbfl) -> bool + @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) -> '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) + load_and_run_plugin(name, arg) -> bool + @param name (C++: const char *) + @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: 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) + load_binary_file(filename, li, _neflags, fileoff, basepara, binoff, nbytes) -> bool + @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) + @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, @@ -51811,14 +60828,16 @@ load_ids_module(*args) -> 'int' 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 *) + load_ids_module(fname) -> int + @param fname: name of file to apply (C++: char *) + @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 * - - Loads a plugin @return: - None if plugin could not be loaded @@ -51861,8 +60880,6 @@ 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 ea: start linear addresses @@ -51935,20 +60952,18 @@ class plugin_info_t(builtins.object) 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: - @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 *) + process_archive(temp_file, li, module_name, neflags, defmember, loader) -> str + @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: @@ -51959,13 +60974,15 @@ class qvector_snapshotvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< snapshot_t * > const & | | __getitem__(self, *args) -> 'snapshot_t *const &' | __getitem__(self, i) -> snapshot_t + | i: size_t | | __init__(self, *args) | __init__(self) -> qvector_snapshotvec_t - | __init__(self, x) -> qvector_snapshotvec_t + | x: qvector< snapshot_t * > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -51975,23 +60992,29 @@ class qvector_snapshotvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< snapshot_t * > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: snapshot_t *const & | | __swig_destroy__ = delete_qvector_snapshotvec_t(...) | delete_qvector_snapshotvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: snapshot_t *const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: snapshot_t *const & | | at(self, *args) -> 'snapshot_t *const &' | at(self, _idx) -> snapshot_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52015,49 +61038,70 @@ class qvector_snapshotvec_t(builtins.object) | | erase(self, *args) -> 'qvector< snapshot_t * >::iterator' | erase(self, it) -> qvector< snapshot_t * >::iterator + | it: qvector< snapshot_t * >::iterator + | + | | erase(self, first, last) -> qvector< snapshot_t * >::iterator + | first: qvector< snapshot_t * >::iterator + | 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 + | x: snapshot_t *const & + | + | | find(self, x) -> qvector< snapshot_t * >::const_iterator + | x: snapshot_t *const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: snapshot_t *const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: snapshot_t ** + | len: size_t | | insert(self, *args) -> 'qvector< snapshot_t * >::iterator' | insert(self, it, x) -> qvector< snapshot_t * >::iterator + | it: qvector< snapshot_t * >::iterator + | x: snapshot_t *const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'snapshot_t *&' | push_back(self, x) - | push_back(self) -> snapshot_t *& + | x: snapshot_t *const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: snapshot_t *const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< snapshot_t * > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52082,25 +61126,21 @@ class qvector_snapshotvec_t(builtins.object) 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: 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 + reload_file(file, is_remote) -> bool + @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) -> 'bool' run_plugin(plg, arg) -> bool - - Runs a plugin @param plg: A plugin object (returned by load_plugin()) @return: Boolean @@ -52108,41 +61148,35 @@ run_plugin(*args) -> 'bool' 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.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 + save_database(outfile, flags, root=None, attr=None) -> bool + @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) -> '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) + set_database_flag(dbfl, cnd=True) + @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) -> '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 *) + set_path(pt, 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: @@ -52153,24 +61187,30 @@ class snapshot_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: snapshot_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: snapshot_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: snapshot_t const & | | __init__(self, *args) | __init__(self) -> snapshot_t | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: snapshot_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: snapshot_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: snapshot_t const & | | __repr__ = _swig_repr(self) | @@ -52266,43 +61306,43 @@ iterated data, etc) ida_loader.GENFLG_ASMINC """ - 'OFILE_ASM' , 'OFILE_LST' : gen information only about types +'OFILE_ASM' , 'OFILE_LST' : gen information only about types """ ida_loader.GENFLG_ASMTYPE """ - 'OFILE_ASM' , 'OFILE_LST' : gen information about types too +'OFILE_ASM' , 'OFILE_LST' : gen information about types too """ ida_loader.GENFLG_GENHTML """ - 'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' +'OFILE_ASM' , 'OFILE_LST' : generate html ( 'ui_genfile_callback' will be used) """ ida_loader.GENFLG_IDCTYPE """ - 'OFILE_IDC' : gen only information about types +'OFILE_IDC' : gen only information about types """ ida_loader.GENFLG_MAPDMNG """ - 'OFILE_MAP' : demangle names +'OFILE_MAP' : demangle names """ ida_loader.GENFLG_MAPLOC """ - 'OFILE_MAP' : include local names +'OFILE_MAP' : include local names """ ida_loader.GENFLG_MAPNAME """ - 'OFILE_MAP' : include dummy names +'OFILE_MAP' : include dummy names """ ida_loader.GENFLG_MAPSEG """ - 'OFILE_MAP' : generate map of segments +'OFILE_MAP' : generate map of segments """ ida_loader.LDRF_RELOAD @@ -52435,21 +61475,40 @@ class bookmarks_t(builtins.object) | | erase(*args) -> 'bool' | erase(e, index, ud) -> bool + | e: lochist_entry_t const & + | index: uint32 + | ud: void * | | find_index(*args) -> 'uint32' | find_index(e, ud) -> uint32 + | e: lochist_entry_t const & + | ud: void * | | get(*args) -> 'bool' | get(out_entry, out_desc, index, ud) -> bool + | out_entry: lochist_entry_t * + | out_desc: qstring * + | index: uint32 * + | ud: void * | | get_desc(*args) -> 'qstring *' | get_desc(e, index, ud) -> bool + | e: lochist_entry_t const & + | index: uint32 + | ud: void * | | mark(*args) -> 'uint32' | mark(e, index, title, desc, ud) -> uint32 + | e: lochist_entry_t const & + | index: uint32 + | title: char const * + | desc: char const * + | ud: void * | | size(*args) -> 'uint32' | size(e, ud) -> uint32 + | e: lochist_entry_t const & + | ud: void * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52467,31 +61526,50 @@ Help on function bookmarks_t_erase in module ida_moves: bookmarks_t_erase(*args) -> 'bool' bookmarks_t_erase(e, index, ud) -> bool + e: lochist_entry_t const & + index: uint32 + 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 + e: lochist_entry_t const & + 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 + out_entry: lochist_entry_t * + out_desc: qstring * + index: uint32 * + 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 + e: lochist_entry_t const & + index: uint32 + 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 + e: lochist_entry_t const & + index: uint32 + title: char const * + desc: char const * + ud: void * Help on function bookmarks_t_size in module ida_moves: bookmarks_t_size(*args) -> 'uint32' bookmarks_t_size(e, ud) -> uint32 + e: lochist_entry_t const & + ud: void * Help on class graph_location_info_t in module ida_moves: @@ -52502,12 +61580,14 @@ class graph_location_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: graph_location_info_t const & | | __init__(self, *args) | __init__(self) -> graph_location_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: graph_location_info_t const & | | __repr__ = _swig_repr(self) | @@ -52547,16 +61627,14 @@ 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 + | p: place_t const * + | r: renderer_info_t const & + | + | | __init__(self, other) -> lochist_entry_t - | - | __ne__(self, *args) -> 'bool' - | __ne__(self, r) -> bool + | other: lochist_entry_t const & | | __repr__ = _swig_repr(self) | @@ -52565,6 +61643,7 @@ class lochist_entry_t(builtins.object) | | acquire_place(self, *args) -> 'void' | acquire_place(self, in_p) + | @param in_p (C++: place_t *) | | is_valid(self, *args) -> 'bool' | is_valid(self) -> bool @@ -52579,6 +61658,7 @@ class lochist_entry_t(builtins.object) | | set_place(self, *args) -> 'void' | set_place(self, p) + | @param p (C++: const place_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52597,11 +61677,6 @@ class lochist_entry_t(builtins.object) | | thisown | The membership flag - | - | ---------------------------------------------------------------------- - | Data and other attributes defined here: - | - | __hash__ = None Help on class lochist_t in module ida_moves: @@ -52620,6 +61695,8 @@ class lochist_t(builtins.object) | | back(self, *args) -> 'bool' | back(self, cnt, try_to_unhide) -> bool + | @param cnt (C++: uint32) + | @param try_to_unhide (C++: bool) | | clear(self, *args) -> 'void' | clear(self) @@ -52629,9 +61706,13 @@ class lochist_t(builtins.object) | | fwd(self, *args) -> 'bool' | fwd(self, cnt, try_to_unhide) -> bool + | @param cnt (C++: uint32) + | @param try_to_unhide (C++: bool) | | get(self, *args) -> 'bool' | get(self, out, index) -> bool + | @param out (C++: lochist_entry_t *) + | @param index (C++: uint32) | | get_current(self, *args) -> 'lochist_entry_t const &' | get_current(self) -> lochist_entry_t @@ -52644,12 +61725,18 @@ class lochist_t(builtins.object) | | init(self, *args) -> 'bool' | init(self, stream_name, _defpos, _ud, _flags) -> bool + | @param stream_name (C++: const char *) + | @param _defpos (C++: const place_t *) + | @param _ud (C++: void *) + | @param _flags (C++: 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 (C++: bool) + | @param e (C++: const lochist_entry_t &) | | netcode(self, *args) -> 'nodeidx_t' | netcode(self) -> nodeidx_t @@ -52659,12 +61746,17 @@ class lochist_t(builtins.object) | | seek(self, *args) -> 'bool' | seek(self, index, try_to_unhide) -> bool + | @param index (C++: uint32) + | @param try_to_unhide (C++: bool) | | set(self, *args) -> 'void' | set(self, index, e) + | @param index (C++: uint32) + | @param e (C++: const lochist_entry_t &) | | set_current(self, *args) -> 'void' | set_current(self, e) + | @param e (C++: const lochist_entry_t &) | | size(self, *args) -> 'uint32' | size(self) -> uint32 @@ -52690,12 +61782,14 @@ class renderer_info_pos_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: renderer_info_pos_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_pos_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: renderer_info_pos_t const & | | __repr__ = _swig_repr(self) | @@ -52737,12 +61831,14 @@ class renderer_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: renderer_info_t const & | | __init__(self, *args) | __init__(self) -> renderer_info_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: renderer_info_t const & | | __repr__ = _swig_repr(self) | @@ -52787,12 +61883,17 @@ class segm_move_info_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: segm_move_info_t const & | | __init__(self, *args) | __init__(self, _from=0, _to=0, _sz=0) -> segm_move_info_t + | _from: ea_t + | _to: ea_t + | _sz: size_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: segm_move_info_t const & | | __repr__ = _swig_repr(self) | @@ -52834,13 +61935,15 @@ class segm_move_info_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> segm_move_info_vec_t - | __init__(self, x) -> segm_move_info_vec_t + | 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. @@ -52850,23 +61953,29 @@ class segm_move_info_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -52890,52 +61999,74 @@ class segm_move_info_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | + | | erase(self, first, last) -> segm_move_info_t + | first: qvector< segm_move_info_t >::iterator + | 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 + | x: segm_move_info_t const & + | + | | find(self, x) -> segm_move_info_t + | x: segm_move_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) + | x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: segm_move_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | 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) - | push_back(self) -> segm_move_info_t + | x: segm_move_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: segm_move_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -52979,6 +62110,7 @@ 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 (C++: ea_t) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -52991,9 +62123,11 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __getitem__(self, *args) -> 'segm_move_info_t const &' | __getitem__(self, i) -> segm_move_info_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53003,18 +62137,24 @@ class segm_move_infos_t(segm_move_info_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< segm_move_info_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: segm_move_info_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: segm_move_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: segm_move_info_t const & | | at(self, *args) -> 'segm_move_info_t const &' | at(self, _idx) -> segm_move_info_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -53038,7 +62178,12 @@ class segm_move_infos_t(segm_move_info_vec_t) | | erase(self, *args) -> 'qvector< segm_move_info_t >::iterator' | erase(self, it) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | + | | erase(self, first, last) -> segm_move_info_t + | first: qvector< segm_move_info_t >::iterator + | last: qvector< segm_move_info_t >::iterator | | extract(self, *args) -> 'segm_move_info_t *' | extract(self) -> segm_move_info_t @@ -53048,38 +62193,51 @@ class segm_move_infos_t(segm_move_info_vec_t) | | grow(self, *args) -> 'void' | grow(self, x=segm_move_info_t()) + | x: segm_move_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: segm_move_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: segm_move_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< segm_move_info_t >::iterator' | insert(self, it, x) -> segm_move_info_t + | it: qvector< segm_move_info_t >::iterator + | 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) - | push_back(self) -> segm_move_info_t + | x: segm_move_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: segm_move_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< segm_move_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -53102,18 +62260,18 @@ 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 (C++: switch_info_t *) + @param ea (C++: ea_t) Help on function add_encoding in module ida_nalt: add_encoding(*args) -> 'int' - 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 + add_encoding(encoding) -> int + @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: @@ -53155,132 +62313,154 @@ Help on function clr__bnot0 in module ida_nalt: clr__bnot0(*args) -> 'void' clr__bnot0(ea) + @param ea (C++: ea_t) Help on function clr__bnot1 in module ida_nalt: clr__bnot1(*args) -> 'void' clr__bnot1(ea) + @param ea (C++: ea_t) Help on function clr__invsign0 in module ida_nalt: clr__invsign0(*args) -> 'void' clr__invsign0(ea) + @param ea (C++: ea_t) Help on function clr__invsign1 in module ida_nalt: clr__invsign1(*args) -> 'void' clr__invsign1(ea) + @param ea (C++: ea_t) Help on function clr_abits in module ida_nalt: clr_abits(*args) -> 'void' clr_abits(ea, bits) + @param ea (C++: ea_t) + @param bits (C++: uint32) Help on function clr_align_flow in module ida_nalt: clr_align_flow(*args) -> 'void' clr_align_flow(ea) + @param ea (C++: ea_t) Help on function clr_colored_item in module ida_nalt: clr_colored_item(*args) -> 'void' clr_colored_item(ea) + @param ea (C++: ea_t) Help on function clr_fixed_spd in module ida_nalt: clr_fixed_spd(*args) -> 'void' clr_fixed_spd(ea) + @param ea (C++: ea_t) Help on function clr_has_lname in module ida_nalt: clr_has_lname(*args) -> 'void' clr_has_lname(ea) + @param ea (C++: ea_t) Help on function clr_has_ti in module ida_nalt: clr_has_ti(*args) -> 'void' clr_has_ti(ea) + @param ea (C++: ea_t) Help on function clr_has_ti0 in module ida_nalt: clr_has_ti0(*args) -> 'void' clr_has_ti0(ea) + @param ea (C++: ea_t) Help on function clr_has_ti1 in module ida_nalt: clr_has_ti1(*args) -> 'void' clr_has_ti1(ea) + @param ea (C++: ea_t) Help on function clr_libitem in module ida_nalt: clr_libitem(*args) -> 'void' clr_libitem(ea) + @param ea (C++: ea_t) Help on function clr_lzero0 in module ida_nalt: clr_lzero0(*args) -> 'void' clr_lzero0(ea) + @param ea (C++: ea_t) Help on function clr_lzero1 in module ida_nalt: clr_lzero1(*args) -> 'void' clr_lzero1(ea) + @param ea (C++: ea_t) Help on function clr_noret in module ida_nalt: clr_noret(*args) -> 'void' clr_noret(ea) + @param ea (C++: 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) + clr_notcode(ea) + @param ea (C++: ea_t) Help on function clr_notproc in module ida_nalt: clr_notproc(*args) -> 'void' clr_notproc(ea) + @param ea (C++: ea_t) Help on function clr_retfp in module ida_nalt: clr_retfp(*args) -> 'void' clr_retfp(ea) + @param ea (C++: ea_t) Help on function clr_terse_struc in module ida_nalt: clr_terse_struc(*args) -> 'void' clr_terse_struc(ea) + @param ea (C++: ea_t) Help on function clr_tilcmt in module ida_nalt: clr_tilcmt(*args) -> 'void' clr_tilcmt(ea) + @param ea (C++: ea_t) Help on function clr_usemodsp in module ida_nalt: clr_usemodsp(*args) -> 'void' clr_usemodsp(ea) + @param ea (C++: ea_t) Help on function clr_usersp in module ida_nalt: clr_usersp(*args) -> 'void' clr_usersp(ea) + @param ea (C++: ea_t) Help on function clr_userti in module ida_nalt: clr_userti(*args) -> 'void' clr_userti(ea) + @param ea (C++: ea_t) Help on function clr_zstroff in module ida_nalt: clr_zstroff(*args) -> 'void' clr_zstroff(ea) + @param ea (C++: ea_t) Help on class custom_data_type_ids_fids_array in module ida_nalt: @@ -53291,9 +62471,11 @@ class custom_data_type_ids_fids_array(builtins.object) | | __getitem__(self, *args) -> 'short const &' | __getitem__(self, i) -> short const & + | i: size_t | | __init__(self, *args) | __init__(self, data) -> custom_data_type_ids_fids_array + | data: short (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -53305,6 +62487,8 @@ class custom_data_type_ids_fids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: short const & | | __swig_destroy__ = delete_custom_data_type_ids_fids_array(...) | delete_custom_data_type_ids_fids_array(self) @@ -53342,6 +62526,10 @@ 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 | + | set(self, *args) -> 'void' + | set(self, tid) + | @param tid (C++: tid_t) + | | ---------------------------------------------------------------------- | Data descriptors defined here: | @@ -53363,121 +62551,122 @@ class custom_data_type_ids_t(builtins.object) 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 (C++: ea_t) Help on function del_aflags in module ida_nalt: del_aflags(*args) -> 'void' del_aflags(ea) + @param ea (C++: ea_t) Help on function del_alignment in module ida_nalt: del_alignment(*args) -> 'void' del_alignment(ea) + @param ea (C++: ea_t) Help on function del_array_parameters in module ida_nalt: del_array_parameters(*args) -> 'void' del_array_parameters(ea) + @param ea (C++: 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 (C++: ea_t) Help on function del_encoding in module ida_nalt: del_encoding(*args) -> 'bool' - del_encoding(idx) -> bool - - Delete an encoding (1-based) - - @param idx (C++: int) + del_encoding(idx) -> bool + @param idx (C++: int) Help on function del_ind_purged in module ida_nalt: del_ind_purged(*args) -> 'void' del_ind_purged(ea) + @param ea (C++: ea_t) Help on function del_item_color in module ida_nalt: del_item_color(*args) -> 'bool' del_item_color(ea) -> bool + @param ea (C++: ea_t) Help on function del_op_tinfo in module ida_nalt: del_op_tinfo(*args) -> 'void' del_op_tinfo(ea, n) + @param ea (C++: ea_t) + @param n (C++: int) Help on function del_refinfo in module ida_nalt: del_refinfo(*args) -> 'bool' del_refinfo(ea, n) -> bool + @param ea (C++: ea_t) + @param n (C++: int) Help on function del_source_linnum in module ida_nalt: del_source_linnum(*args) -> 'void' del_source_linnum(ea) + @param ea (C++: ea_t) Help on function del_str_type in module ida_nalt: del_str_type(*args) -> 'void' del_str_type(ea) + @param ea (C++: ea_t) Help on function del_switch_info in module ida_nalt: del_switch_info(*args) -> 'void' del_switch_info(ea) + @param ea (C++: ea_t) Help on function del_switch_parent in module ida_nalt: del_switch_parent(*args) -> 'void' del_switch_parent(ea) + @param ea (C++: ea_t) Help on function del_tinfo in module ida_nalt: del_tinfo(*args) -> 'void' del_tinfo(ea) + @param ea (C++: 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) + ea2node(ea) -> nodeidx_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. - - @param strtype (C++: int32) + encoding_from_strtype(strtype) -> char const * + @param strtype (C++: int32) Help on class enum_const_t in module ida_nalt: @@ -53516,8 +62705,6 @@ 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. @@ -53528,13 +62715,10 @@ enum_import_names(*args) -> 'int' 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 *) + find_custom_refinfo(name) -> int + @param name (C++: const char *) Help on function get_abi_name in module ida_nalt: @@ -53544,96 +62728,85 @@ Help on function get_absbase in module ida_nalt: get_absbase(*args) -> 'ea_t' get_absbase(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_aflags in module ida_nalt: get_aflags(*args) -> 'uint32' get_aflags(ea) -> uint32 + @param ea (C++: ea_t) Help on function get_alignment in module ida_nalt: get_alignment(*args) -> 'uint32' get_alignment(ea) -> uint32 + @param ea (C++: 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 (C++: array_parameters_t *) + @param ea (C++: 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 (C++: custom_data_type_ids_t *) + @param ea (C++: 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) + get_custom_refinfo(crid) -> custom_refinfo_handler_t const * + @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) + get_default_encoding_idx(bpu) -> int + @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) -> '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: the encoding index (C++: int) - @return: the number of bytes per units (1/2/4); -1 means error + get_encoding_bpu(idx) -> int + @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) -> '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 + get_encoding_name(idx) -> char const * + @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) -> 'int' - get_encoding_qty() -> int - - Get total number of encodings (counted from 0) Help on function get_gotea in module ida_nalt: @@ -53644,65 +62817,53 @@ get_gotea(*args) -> 'ea_t' 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 * - - 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) -> '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 (C++: ea_t) 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 (C++: ea_t) Help on function get_op_tinfo in module ida_nalt: get_op_tinfo(*args) -> 'bool' get_op_tinfo(tif, ea, n) -> bool + @param tif (C++: tinfo_t *) + @param ea (C++: ea_t) + @param n (C++: 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 @@ -53710,66 +62871,73 @@ Help on function get_refinfo in module ida_nalt: get_refinfo(*args) -> 'bool' get_refinfo(ri, ea, n) -> bool + @param ri (C++: refinfo_t *) + @param ea (C++: ea_t) + @param n (C++: 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) + get_reftype_by_size(size) -> reftype_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 (C++: ea_t) 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) + get_str_encoding_idx(strtype) -> uchar + @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 (C++: int32) Help on function get_str_term2 in module ida_nalt: get_str_term2(*args) -> 'char' get_str_term2(strtype) -> char + @param strtype (C++: int32) Help on function get_str_type in module ida_nalt: get_str_type(*args) -> 'uint32' get_str_type(ea) -> uint32 + @param ea (C++: 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 (C++: 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 (C++: int32) Help on function get_strtype_bpu in module ida_nalt: get_strtype_bpu(*args) -> 'int' get_strtype_bpu(strtype) -> int + @param strtype (C++: int32) Help on function get_switch_info in module ida_nalt: @@ -53779,200 +62947,220 @@ Help on function get_switch_parent in module ida_nalt: get_switch_parent(*args) -> 'ea_t' get_switch_parent(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_tinfo in module ida_nalt: get_tinfo(*args) -> 'bool' get_tinfo(tif, ea) -> bool + @param tif (C++: tinfo_t *) + @param ea (C++: ea_t) Help on function getnode in module ida_nalt: getnode(*args) -> 'netnode' getnode(ea) -> netnode + @param ea (C++: ea_t) Help on function has_lname in module ida_nalt: has_lname(*args) -> 'bool' has_lname(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti in module ida_nalt: has_ti(*args) -> 'bool' has_ti(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti0 in module ida_nalt: has_ti0(*args) -> 'bool' has_ti0(ea) -> bool + @param ea (C++: ea_t) Help on function has_ti1 in module ida_nalt: has_ti1(*args) -> 'bool' has_ti1(ea) -> bool + @param ea (C++: ea_t) Help on function hide_border in module ida_nalt: hide_border(*args) -> 'void' hide_border(ea) + @param ea (C++: ea_t) Help on function hide_item in module ida_nalt: hide_item(*args) -> 'void' hide_item(ea) + @param ea (C++: ea_t) Help on function is__bnot0 in module ida_nalt: is__bnot0(*args) -> 'bool' is__bnot0(ea) -> bool + @param ea (C++: ea_t) Help on function is__bnot1 in module ida_nalt: is__bnot1(*args) -> 'bool' is__bnot1(ea) -> bool + @param ea (C++: ea_t) Help on function is__invsign0 in module ida_nalt: is__invsign0(*args) -> 'bool' is__invsign0(ea) -> bool + @param ea (C++: ea_t) Help on function is__invsign1 in module ida_nalt: is__invsign1(*args) -> 'bool' is__invsign1(ea) -> bool + @param ea (C++: ea_t) Help on function is_align_flow in module ida_nalt: is_align_flow(*args) -> 'bool' is_align_flow(ea) -> bool + @param ea (C++: ea_t) Help on function is_colored_item in module ida_nalt: is_colored_item(*args) -> 'bool' is_colored_item(ea) -> bool + @param ea (C++: 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) + is_finally_visible_item(ea) -> bool + @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 (C++: ea_t) Help on function is_hidden_border in module ida_nalt: is_hidden_border(*args) -> 'bool' is_hidden_border(ea) -> bool + @param ea (C++: ea_t) Help on function is_hidden_item in module ida_nalt: is_hidden_item(*args) -> 'bool' is_hidden_item(ea) -> bool + @param ea (C++: ea_t) Help on function is_libitem in module ida_nalt: is_libitem(*args) -> 'bool' is_libitem(ea) -> bool + @param ea (C++: ea_t) Help on function is_lzero0 in module ida_nalt: is_lzero0(*args) -> 'bool' is_lzero0(ea) -> bool + @param ea (C++: ea_t) Help on function is_lzero1 in module ida_nalt: is_lzero1(*args) -> 'bool' is_lzero1(ea) -> bool + @param ea (C++: ea_t) Help on function is_noret in module ida_nalt: is_noret(*args) -> 'bool' is_noret(ea) -> bool + @param ea (C++: 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) + is_notcode(ea) -> bool + @param ea (C++: ea_t) Help on function is_notproc in module ida_nalt: is_notproc(*args) -> 'bool' is_notproc(ea) -> bool + @param ea (C++: ea_t) Help on function is_pascal in module ida_nalt: is_pascal(*args) -> 'bool' is_pascal(strtype) -> bool + @param strtype (C++: 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) + is_reftype_target_optional(type) -> bool + @param type (C++: reftype_t) Help on function is_retfp in module ida_nalt: is_retfp(*args) -> 'bool' is_retfp(ea) -> bool + @param ea (C++: ea_t) Help on function is_terse_struc in module ida_nalt: is_terse_struc(*args) -> 'bool' is_terse_struc(ea) -> bool + @param ea (C++: ea_t) Help on function is_tilcmt in module ida_nalt: is_tilcmt(*args) -> 'bool' is_tilcmt(ea) -> bool + @param ea (C++: ea_t) Help on function is_usersp in module ida_nalt: is_usersp(*args) -> 'bool' is_usersp(ea) -> bool + @param ea (C++: ea_t) Help on function is_userti in module ida_nalt: is_userti(*args) -> 'bool' is_userti(ea) -> bool + @param ea (C++: 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) + is_visible_item(ea) -> bool + @param ea (C++: ea_t) Help on function is_zstroff in module ida_nalt: is_zstroff(*args) -> 'bool' is_zstroff(ea) -> bool + @param ea (C++: ea_t) Help on function node2ea in module ida_nalt: node2ea(*args) -> 'ea_t' node2ea(ndx) -> ea_t + @param ndx (C++: nodeidx_t) Help on class opinfo_t in module ida_nalt: @@ -54045,9 +63233,11 @@ class printop_t(builtins.object) | | set_aflags_initialized(self, *args) -> 'void' | set_aflags_initialized(self, v=True) + | @param v (C++: bool) | | set_ti_initialized(self, *args) -> 'void' | set_ti_initialized(self, v=True) + | @param v (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -54096,6 +63286,10 @@ class refinfo_t(builtins.object) | | init(self, *args) -> 'void' | init(self, reft_and_flags, _base=0, _target=BADADDR, _tdelta=0) + | @param reft_and_flags (C++: uint32) + | @param _base (C++: ea_t) + | @param _target (C++: ea_t) + | @param _tdelta (C++: adiff_t) | | is_custom(self, *args) -> 'bool' | is_custom(self) -> bool @@ -54113,13 +63307,14 @@ class refinfo_t(builtins.object) | 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, t) + | set_type(self, rt) + | @param rt (C++: reftype_t) | | type(self, *args) -> 'reftype_t' | type(self) -> reftype_t @@ -54151,343 +63346,363 @@ class refinfo_t(builtins.object) Help on function rename_encoding in module ida_nalt: rename_encoding(*args) -> 'bool' - rename_encoding(idx, encoding) -> bool - - Change name for an encoding (1-based) - - @param idx (C++: int) - @param encoding (C++: const char *) + rename_encoding(idx, encoding) -> bool + @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) -> '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) -> 'uint32' - retrieve_input_file_size() -> uint32 - - 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 (C++: ea_t) Help on function set__bnot1 in module ida_nalt: set__bnot1(*args) -> 'void' set__bnot1(ea) + @param ea (C++: ea_t) Help on function set__invsign0 in module ida_nalt: set__invsign0(*args) -> 'void' set__invsign0(ea) + @param ea (C++: ea_t) Help on function set__invsign1 in module ida_nalt: set__invsign1(*args) -> 'void' set__invsign1(ea) + @param ea (C++: ea_t) Help on function set_abits in module ida_nalt: set_abits(*args) -> 'void' set_abits(ea, bits) + @param ea (C++: ea_t) + @param bits (C++: uint32) Help on function set_absbase in module ida_nalt: set_absbase(*args) -> 'void' set_absbase(ea, x) + @param ea (C++: ea_t) + @param x (C++: ea_t) Help on function set_aflags in module ida_nalt: set_aflags(*args) -> 'void' set_aflags(ea, flags) + @param ea (C++: ea_t) + @param flags (C++: uint32) Help on function set_align_flow in module ida_nalt: set_align_flow(*args) -> 'void' set_align_flow(ea) + @param ea (C++: ea_t) Help on function set_alignment in module ida_nalt: set_alignment(*args) -> 'void' set_alignment(ea, x) + @param ea (C++: ea_t) + @param x (C++: 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 *) + set_archive_path(file) -> bool + @param file (C++: const char *) Help on function set_array_parameters in module ida_nalt: set_array_parameters(*args) -> 'void' set_array_parameters(ea, _in) + @param ea (C++: ea_t) + 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 *) + set_asm_inc_file(file) -> bool + @param file (C++: const char *) Help on function set_colored_item in module ida_nalt: set_colored_item(*args) -> 'void' set_colored_item(ea) + @param ea (C++: 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 (C++: ea_t) + @param cdis (C++: const custom_data_type_ids_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: the amount of bytes per unit (C++: int) - @param idx: the encoding index idx can be 0 to disable encoding - conversion (C++: int) + set_default_encoding_idx(bpu, idx) -> bool + @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) -> 'void' set_fixed_spd(ea) + @param ea (C++: ea_t) Help on function set_gotea in module ida_nalt: set_gotea(*args) -> 'void' set_gotea(gotea) + @param gotea (C++: ea_t) Help on function set_has_lname in module ida_nalt: set_has_lname(*args) -> 'void' set_has_lname(ea) + @param ea (C++: ea_t) Help on function set_has_ti in module ida_nalt: set_has_ti(*args) -> 'void' set_has_ti(ea) + @param ea (C++: ea_t) Help on function set_has_ti0 in module ida_nalt: set_has_ti0(*args) -> 'void' set_has_ti0(ea) + @param ea (C++: ea_t) Help on function set_has_ti1 in module ida_nalt: set_has_ti1(*args) -> 'void' set_has_ti1(ea) + @param ea (C++: ea_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) + set_ids_modnode(id) + @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) + set_imagebase(base) + @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 (C++: ea_t) + @param color (C++: bgcolor_t) Help on function set_libitem in module ida_nalt: set_libitem(*args) -> 'void' set_libitem(ea) + @param ea (C++: ea_t) Help on function set_lzero0 in module ida_nalt: set_lzero0(*args) -> 'void' set_lzero0(ea) + @param ea (C++: ea_t) Help on function set_lzero1 in module ida_nalt: set_lzero1(*args) -> 'void' set_lzero1(ea) + @param ea (C++: ea_t) Help on function set_noret in module ida_nalt: set_noret(*args) -> 'void' set_noret(ea) + @param ea (C++: 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) + set_notcode(ea) + @param ea (C++: ea_t) Help on function set_notproc in module ida_nalt: set_notproc(*args) -> 'void' set_notproc(ea) + @param ea (C++: 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 (C++: ea_t) + @param n (C++: int) + @param tif (C++: const tinfo_t *) 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) + set_outfile_encoding_idx(idx) -> bool + @param idx: + 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 (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 set_refinfo_ex in module ida_nalt: set_refinfo_ex(*args) -> 'bool' set_refinfo_ex(ea, n, ri) -> bool + @param ea (C++: ea_t) + @param n (C++: int) + @param ri (C++: const refinfo_t *) Help on function set_retfp in module ida_nalt: set_retfp(*args) -> 'void' set_retfp(ea) + @param ea (C++: 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 *) + set_root_filename(file) + @param file (C++: const char *) Help on function set_source_linnum in module ida_nalt: set_source_linnum(*args) -> 'void' set_source_linnum(ea, lnnum) + @param ea (C++: ea_t) + @param lnnum (C++: uval_t) Help on function set_str_type in module ida_nalt: set_str_type(*args) -> 'void' set_str_type(ea, x) + @param ea (C++: ea_t) + @param x (C++: uint32) Help on function set_switch_info in module ida_nalt: set_switch_info(*args) -> 'void' set_switch_info(ea, _in) + @param ea (C++: ea_t) + 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 (C++: ea_t) + @param x (C++: ea_t) Help on function set_terse_struc in module ida_nalt: set_terse_struc(*args) -> 'void' set_terse_struc(ea) + @param ea (C++: ea_t) Help on function set_tilcmt in module ida_nalt: set_tilcmt(*args) -> 'void' set_tilcmt(ea) + @param ea (C++: ea_t) Help on function set_tinfo in module ida_nalt: set_tinfo(*args) -> 'bool' set_tinfo(ea, tif) -> bool + @param ea (C++: ea_t) + @param tif (C++: const tinfo_t *) Help on function set_usemodsp in module ida_nalt: set_usemodsp(*args) -> 'void' set_usemodsp(ea) + @param ea (C++: ea_t) Help on function set_usersp in module ida_nalt: set_usersp(*args) -> 'void' set_usersp(ea) + @param ea (C++: ea_t) Help on function set_userti in module ida_nalt: set_userti(*args) -> 'void' set_userti(ea) + @param ea (C++: 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) + set_visible_item(ea, visible) + @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 (C++: ea_t) Help on class strpath_ids_array in module ida_nalt: @@ -54498,9 +63713,11 @@ class strpath_ids_array(builtins.object) | | __getitem__(self, *args) -> 'unsigned-ea-like-numeric-type const &'↗ | __getitem__(self, i) -> unsigned-ea-like-numeric-type const &↗ + | i: size_t | | __init__(self, *args) | __init__(self, data) -> strpath_ids_array + | 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. @@ -54512,6 +63729,8 @@ class strpath_ids_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: unsigned-ea-like-numeric-type const &↗ | | __swig_destroy__ = delete_strpath_ids_array(...) | delete_strpath_ids_array(self) @@ -54590,15 +63809,21 @@ class switch_info_t(builtins.object) | | _set_values_lowcase(self, *args) -> 'void' | _set_values_lowcase(self, values) + | values: ea_t | | assign(self, *args) -> 'void' | assign(self, other) + | other: switch_info_t const & | | clear(self, *args) -> 'void' | clear(self) | | get_jrange_vrange(self, *args) -> 'bool' + | get separate parts of the switch + | | get_jrange_vrange(self, jrange=None, vrange=None) -> bool + | @param jrange (C++: range_t *) + | @param vrange (C++: range_t *) | | get_jtable_element_size(self, *args) -> 'int' | get_jtable_element_size(self) -> int @@ -54610,7 +63835,7 @@ class switch_info_t(builtins.object) | 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 @@ -54641,21 +63866,30 @@ class switch_info_t(builtins.object) | | set_elbase(self, *args) -> 'void' | set_elbase(self, base) + | @param base (C++: ea_t) | | set_expr(self, *args) -> 'void' | set_expr(self, r, dt) + | @param r (C++: int) + | @param dt (C++: op_dtype_t) | | set_jtable_element_size(self, *args) -> 'void' | set_jtable_element_size(self, size) + | @param size (C++: int) | | set_jtable_size(self, *args) -> 'void' | set_jtable_size(self, size) + | @param size (C++: int) | | set_shift(self, *args) -> 'void' + | See 'SWI_SHIFT_MASK' . + | | set_shift(self, shift) + | @param shift (C++: int) | | set_vtable_element_size(self, *args) -> 'void' | set_vtable_element_size(self, size) + | @param size (C++: int) | | use_std_table(self, *args) -> 'bool' | use_std_table(self) -> bool @@ -54726,26 +63960,31 @@ 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 + ptrval: size_t Help on function unhide_border in module ida_nalt: unhide_border(*args) -> 'void' unhide_border(ea) + @param ea (C++: ea_t) Help on function unhide_item in module ida_nalt: unhide_item(*args) -> 'void' unhide_item(ea) + @param ea (C++: ea_t) Help on function uses_modsp in module ida_nalt: uses_modsp(*args) -> 'bool' uses_modsp(ea) -> bool + @param ea (C++: ea_t) Help on function validate_idb_names in module ida_nalt: validate_idb_names(*args) -> 'int' validate_idb_names(do_repair) -> int + do_repair: bool === ida_nalt EPYDOC INJECTIONS === ida_nalt.AFL_ALIGNFLOW @@ -55679,24 +64918,22 @@ class NearestName(builtins.object) 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) - @return: flags of the innermost struct member or the input flags + append_struct_fields(disp, n, path, flags, delta, appzero) -> str + @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: @@ -55712,36 +64949,41 @@ Help on function cleanup_name in module ida_name: cleanup_name(*args) -> 'qstring *' cleanup_name(ea, name, flags=0) -> str + @param ea (C++: ea_t) + @param name (C++: const char *) + @param flags (C++: uint32) Help on function del_debug_names in module ida_name: del_debug_names(*args) -> 'void' del_debug_names(ea1, ea2) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) Help on function del_global_name in module ida_name: del_global_name(*args) -> 'bool' del_global_name(ea) -> bool + @param ea (C++: ea_t) Help on function del_local_name in module ida_name: del_local_name(*args) -> 'bool' del_local_name(ea) -> bool + @param ea (C++: 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 + demangle_name(name, disable_mask, demreq=DQT_FULL) -> str + @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: @@ -55752,7 +64994,8 @@ class ea_name_t(builtins.object) | | __init__(self, *args) | __init__(self) -> ea_name_t - | __init__(self, _ea, _name) -> ea_name_t + | _ea: ea_t + | _name: qstring const & | | __repr__ = _swig_repr(self) | @@ -55786,10 +65029,11 @@ class ea_name_vec_t(builtins.object) | | __getitem__(self, *args) -> 'ea_name_t const &' | __getitem__(self, i) -> ea_name_t + | i: size_t | | __init__(self, *args) | __init__(self) -> ea_name_vec_t - | __init__(self, x) -> ea_name_vec_t + | 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. @@ -55801,12 +65045,15 @@ class ea_name_vec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -55830,7 +65077,12 @@ class ea_name_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< ea_name_t >::iterator' | erase(self, it) -> ea_name_t + | it: qvector< ea_name_t >::iterator + | + | | erase(self, first, last) -> ea_name_t + | first: qvector< ea_name_t >::iterator + | last: qvector< ea_name_t >::iterator | | extract(self, *args) -> 'ea_name_t *' | extract(self) -> ea_name_t @@ -55840,35 +65092,47 @@ class ea_name_vec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=ea_name_t()) + | x: ea_name_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: ea_name_t * + | len: size_t | | insert(self, *args) -> 'qvector< ea_name_t >::iterator' | insert(self, it, x) -> ea_name_t + | it: qvector< ea_name_t >::iterator + | x: ea_name_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'ea_name_t &' | push_back(self, x) - | push_back(self) -> ea_name_t + | x: ea_name_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: ea_name_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< ea_name_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -55888,506 +65152,488 @@ class ea_name_vec_t(builtins.object) 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) - @return: -1 if cannot extract. otherwise length of the name + extract_name(line, x) -> str + @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) -> 'bool' force_name(ea, name, flags=0) -> bool + @param ea (C++: ea_t) + @param name (C++: const char *) + @param flags (C++: 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 (C++: ea_t) + @param inhibitor (C++: int32) + @param demform (C++: int) + @param gtn_flags (C++: 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 (C++: ea_t) + @param gtn_flags (C++: int) Help on function get_colored_name in module ida_name: get_colored_name(*args) -> 'qstring' get_colored_name(ea) -> qstring + @param ea (C++: 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 (C++: ea_t) + @param gtn_flags (C++: 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) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) + get_cp_validity(kind, cp, endcp=wchar32_t(-1)) -> bool + @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) -> 'qstring *' get_debug_name(ea_ptr, how) -> str + @param ea_ptr (C++: ea_t *) + @param how (C++: 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 (C++: const char *) Help on function get_debug_names in module ida_name: get_debug_names(*args) -> 'PyObject *' get_debug_names(names, ea1, ea2) + @param names (C++: ea_name_vec_t *) + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + + get_debug_names(ea1, ea2, return_list=False) -> PyObject * + @param ea1 (C++: ea_t) + @param ea2 (C++: ea_t) + 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 (C++: ea_t) + @param inhibitor (C++: int32) + @param demform (C++: int) + @param gtn_flags (C++: 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) - @return: success + get_ea_name(ea, gtn_flags=0) -> qstring + @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) -> 'qstring' get_long_name(ea, gtn_flags=0) -> qstring + @param ea (C++: ea_t) + @param gtn_flags (C++: int) Help on function get_name in module ida_name: get_name(*args) -> 'qstring' get_name(ea) -> qstring + @param ea (C++: 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) - @return: address of the name used to represent the operand + get_name_base_ea(_from, to) -> ea_t + @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) -> 'color_t' - 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) + get_name_color(_from, ea) -> color_t + @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) -> 'ea_t' - 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 + get_name_ea(_from, name) -> ea_t + @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) -> '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 +/- ). 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. + get_name_expr(_from, n, ea, off, flags=0x0001) -> str + @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) -> '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: 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 + get_name_value(_from, name) -> int + @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) -> 'qstring *' - 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. + get_nice_colored_name(ea, flags=0) -> str + @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) -> 'ea_t' - get_nlist_ea(idx) -> ea_t - - Get address from the list at 'idx'. - - @param idx (C++: size_t) + get_nlist_ea(idx) -> ea_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 listreturns the closest match. may return idx >= size. - @param ea (C++: ea_t) + get_nlist_idx(ea) -> size_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) + get_nlist_name(idx) -> char const * + @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 (C++: ea_t) + @param gtn_flags (C++: 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 (C++: ea_t) + @param gtn_flags (C++: 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) + hide_name(ea) + @param ea: address of the name (C++: ea_t) 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 *) + is_ident(name) -> bool + @param name (C++: const char *) 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) + is_ident_cp(cp) -> bool + @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 name included into names list? - - @param ea (C++: ea_t) + is_in_nlist(ea) -> bool + @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) - @return: true if the name has been defined + is_name_defined_locally(pfn, name, ignore_name_def, ea1=BADADDR, ea2=BADADDR) -> bool + @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) -> 'bool' is_public_name(ea) -> bool + @param ea (C++: 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 *) + is_strlit_cp(cp, specific_ranges=None) -> bool + @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) -> '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 *) + is_uname(name) -> bool + @param name: name to test. may be NULL. (C++: const char *) + @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 *) + is_valid_cp(cp, kind, data=None) -> bool + @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) -> 'bool' - is_valid_typename(name) -> bool - - Is valid type name? - @param name: name to test. may be NULL. (C++: const char *) + is_valid_typename(name) -> bool + @param name: name to test. may be NULL. (C++: const char *) + @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) + is_visible_cp(cp) -> bool + @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 (C++: ea_t) Help on function make_name_auto in module ida_name: make_name_auto(*args) -> 'bool' make_name_auto(ea) -> bool + @param ea (C++: 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 (C++: 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 (C++: ea_t) Help on function make_name_public in module ida_name: make_name_public(*args) -> 'void' make_name_public(ea) + @param ea (C++: ea_t) Help on function make_name_user in module ida_name: make_name_user(*args) -> 'bool' make_name_user(ea) -> bool + @param ea (C++: ea_t) Help on function make_name_weak in module ida_name: make_name_weak(*args) -> 'void' make_name_weak(ea) + @param ea (C++: ea_t) Help on function rebuild_nlist in module ida_name: rebuild_nlist(*args) -> 'void' - rebuild_nlist() - - Rebuild names 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) - @param cp (C++: wchar32_t) - @param endcp (C++: wchar32_t) - @param valid (C++: bool) + set_cp_validity(kind, cp, endcp=wchar32_t(-1), valid=True) + @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) -> 'bool' set_debug_name(ea, name) -> bool + @param ea (C++: ea_t) + @param name (C++: const char *) 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: linear address of the operand which references to the - address (C++: ea_t) - @param ea: linear address (C++: ea_t) + set_dummy_name(_from, ea) -> bool + @param _from: linear address of the operand which references to the + address (C++: ea_t) + @param ea: linear address (C++: ea_t) + @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: 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) + set_name(ea, name, flags=0) -> bool + @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) + @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) + show_name(ea) + @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: 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 + validate_name(name, type, flags=0) -> PyObject * + @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 @@ -56653,6 +65899,7 @@ Help on function exist in module ida_netnode: exist(*args) -> 'bool' exist(n) -> bool + n: netnode const & Help on class netnode in module ida_netnode: @@ -56663,16 +65910,29 @@ class netnode(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, n) -> bool + | n: netnode & + | + | | __eq__(self, x) -> bool + | x: nodeidx_t | | __init__(self, *args) - | __init__(self) -> netnode - | __init__(self, num) -> netnode + | __init__(self, num=nodeidx_t(-1)) -> netnode + | num: nodeidx_t + | + | | __init__(self, _name, namlen=0, do_create=False) -> netnode + | _name: char const * + | namlen: size_t + | do_create: bool | | __ne__(self, *args) -> 'bool' | __ne__(self, n) -> bool + | n: netnode & + | + | | __ne__(self, x) -> bool + | x: nodeidx_t | | __repr__ = _swig_repr(self) | @@ -56681,161 +65941,265 @@ class netnode(builtins.object) | | altdel(self, *args) -> 'bool' | altdel(self, alt, tag=atag) -> bool - | altdel(self) -> bool + | alt: nodeidx_t + | tag: uchar | | altdel_all(self, *args) -> 'bool' - | altdel_all(self, tag) -> bool + | altdel_all(self, tag=atag) -> bool + | tag: uchar | | altdel_ea(self, *args) -> 'bool' | altdel_ea(self, ea, tag=atag) -> bool + | ea: ea_t + | tag: uchar | | altdel_idx8(self, *args) -> 'bool' | altdel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | altfirst(self, *args) -> 'nodeidx_t' | altfirst(self, tag=atag) -> nodeidx_t + | tag: uchar | | altfirst_idx8(self, *args) -> 'nodeidx_t' | altfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | altlast(self, *args) -> 'nodeidx_t' | altlast(self, tag=atag) -> nodeidx_t + | tag: uchar | | altlast_idx8(self, *args) -> 'nodeidx_t' | altlast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | altnext(self, *args) -> 'nodeidx_t' | altnext(self, cur, tag=atag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | altnext_idx8(self, *args) -> 'nodeidx_t' | altnext_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | altprev(self, *args) -> 'nodeidx_t' | altprev(self, cur, tag=atag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | altprev_idx8(self, *args) -> 'nodeidx_t' | altprev_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | altset(self, *args) -> 'bool' | altset(self, alt, value, tag=atag) -> bool + | alt: nodeidx_t + | value: nodeidx_t + | tag: uchar | | altset_ea(self, *args) -> 'bool' | altset_ea(self, ea, value, tag=atag) -> bool + | ea: ea_t + | value: nodeidx_t + | tag: uchar | | altset_idx8(self, *args) -> 'bool' | altset_idx8(self, alt, val, tag) -> bool + | alt: uchar + | val: nodeidx_t + | tag: uchar | | altshift(self, *args) -> 'size_t' | altshift(self, _from, to, size, tag=atag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | altval(self, *args) -> 'nodeidx_t' | altval(self, alt, tag=atag) -> nodeidx_t + | alt: nodeidx_t + | tag: uchar | | altval_ea(self, *args) -> 'nodeidx_t' | altval_ea(self, ea, tag=atag) -> nodeidx_t + | ea: ea_t + | tag: uchar | | altval_idx8(self, *args) -> 'nodeidx_t' | altval_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | blobsize(self, *args) -> 'size_t' | blobsize(self, _start, tag) -> size_t + | _start: nodeidx_t + | tag: uchar | | blobsize_ea(self, *args) -> 'size_t' | blobsize_ea(self, ea, tag) -> size_t + | ea: ea_t + | tag: uchar | | chardel(self, *args) -> 'bool' | chardel(self, alt, tag) -> bool + | alt: nodeidx_t + | tag: uchar | | chardel_ea(self, *args) -> 'bool' | chardel_ea(self, ea, tag) -> bool + | ea: ea_t + | tag: uchar | | chardel_idx8(self, *args) -> 'bool' | chardel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | charfirst(self, *args) -> 'nodeidx_t' | charfirst(self, tag) -> nodeidx_t + | tag: uchar | | charfirst_idx8(self, *args) -> 'nodeidx_t' | charfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | charlast(self, *args) -> 'nodeidx_t' | charlast(self, tag) -> nodeidx_t + | tag: uchar | | charlast_idx8(self, *args) -> 'nodeidx_t' | charlast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | charnext(self, *args) -> 'nodeidx_t' | charnext(self, cur, tag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | charnext_idx8(self, *args) -> 'nodeidx_t' | charnext_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | charprev(self, *args) -> 'nodeidx_t' | charprev(self, cur, tag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | charprev_idx8(self, *args) -> 'nodeidx_t' | charprev_idx8(self, cur, tag) -> nodeidx_t + | cur: uchar + | tag: uchar | | charset(self, *args) -> 'bool' | charset(self, alt, val, tag) -> bool + | alt: nodeidx_t + | val: uchar + | tag: uchar | | charset_ea(self, *args) -> 'bool' | charset_ea(self, ea, val, tag) -> bool + | ea: ea_t + | val: uchar + | tag: uchar | | charset_idx8(self, *args) -> 'bool' | charset_idx8(self, alt, val, tag) -> bool + | alt: uchar + | val: uchar + | tag: uchar | | charshift(self, *args) -> 'size_t' | charshift(self, _from, to, size, tag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | charval(self, *args) -> 'uchar' | charval(self, alt, tag) -> uchar + | alt: nodeidx_t + | tag: uchar | | charval_ea(self, *args) -> 'uchar' | charval_ea(self, ea, tag) -> uchar + | ea: ea_t + | tag: uchar | | charval_idx8(self, *args) -> 'uchar' | charval_idx8(self, alt, tag) -> uchar + | alt: uchar + | tag: uchar | | copyto(self, *args) -> 'size_t' | copyto(self, target, count=1) -> size_t + | target: netnode + | count: nodeidx_t | | create(self, *args) -> 'bool' | create(self, _name, namlen=0) -> bool - | create(self) -> bool + | _name: char const * + | namlen: size_t | | delblob(self, *args) -> 'int' | delblob(self, _start, tag) -> int + | _start: nodeidx_t + | tag: uchar | | delblob_ea(self, *args) -> 'int' | delblob_ea(self, ea, tag) -> int + | ea: ea_t + | tag: uchar | | delvalue(self, *args) -> 'bool' | delvalue(self) -> bool | | eadel(self, *args) -> 'bool' | eadel(self, ea, tag) -> bool + | ea: ea_t + | tag: uchar | | eadel_idx8(self, *args) -> 'bool' | eadel_idx8(self, idx, tag) -> bool + | idx: uchar + | tag: uchar | | eaget(self, *args) -> 'ea_t' | eaget(self, ea, tag) -> ea_t + | ea: ea_t + | tag: uchar | | eaget_idx(self, *args) -> 'ea_t' | eaget_idx(self, idx, tag) -> ea_t + | idx: nodeidx_t + | tag: uchar | | eaget_idx8(self, *args) -> 'ea_t' | eaget_idx8(self, idx, tag) -> ea_t + | idx: uchar + | tag: uchar | | easet(self, *args) -> 'bool' | easet(self, ea, addr, tag) -> bool + | ea: ea_t + | addr: ea_t + | tag: uchar | | easet_idx(self, *args) -> 'bool' | easet_idx(self, idx, addr, tag) -> bool + | idx: nodeidx_t + | addr: ea_t + | tag: uchar | | easet_idx8(self, *args) -> 'bool' | easet_idx8(self, idx, addr, tag) -> bool + | idx: uchar + | addr: ea_t + | tag: uchar | | end(self, *args) -> 'bool' | end(self) -> bool @@ -56845,51 +66209,83 @@ class netnode(builtins.object) | | getblob(self, *args) -> 'PyObject *' | getblob(self, start, tag) -> PyObject * + | start: nodeidx_t + | tag: char | | getblob_ea(self, *args) -> 'PyObject *' | getblob_ea(self, ea, tag) -> PyObject * + | ea: ea_t + | tag: char | | getclob(self, *args) -> 'PyObject *' | getclob(self, start, tag) -> PyObject * + | start: nodeidx_t + | tag: char | | hashdel(self, *args) -> 'bool' | hashdel(self, idx, tag=htag) -> bool + | idx: char const * + | tag: uchar | | hashdel_all(self, *args) -> 'bool' | hashdel_all(self, tag=htag) -> bool + | tag: uchar | | hashfirst(self, *args) -> 'ssize_t' | hashfirst(self, tag=htag) -> ssize_t + | tag: uchar | | hashlast(self, *args) -> 'ssize_t' | hashlast(self, tag=htag) -> ssize_t + | tag: uchar | | hashnext(self, *args) -> 'ssize_t' | hashnext(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashprev(self, *args) -> 'ssize_t' | hashprev(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashset(self, *args) -> 'bool' | hashset(self, idx, value, tag=htag) -> bool + | idx: char const * + | value: void const * + | tag: uchar | | hashset_buf(self, *args) -> 'bool' | hashset_buf(self, idx, py_str, tag=htag) -> bool + | idx: char const * + | py_str: PyObject * + | tag: char | | hashset_idx(self, *args) -> 'bool' | hashset_idx(self, idx, value, tag=htag) -> bool + | idx: char const * + | value: nodeidx_t + | tag: uchar | | hashstr(self, *args) -> 'ssize_t' | hashstr(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashstr_buf(self, *args) -> 'PyObject *' | hashstr_buf(self, idx, tag=htag) -> PyObject * + | idx: char const * + | tag: char | | hashval(self, *args) -> 'ssize_t' | hashval(self, idx, tag=htag) -> ssize_t + | idx: char const * + | tag: uchar | | hashval_long(self, *args) -> 'nodeidx_t' | hashval_long(self, idx, tag=htag) -> nodeidx_t + | idx: char const * + | tag: uchar | | index(self, *args) -> 'nodeidx_t' | index(self) -> nodeidx_t @@ -56902,15 +66298,23 @@ class netnode(builtins.object) | | lower_bound(self, *args) -> 'nodeidx_t' | lower_bound(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | lower_bound_ea(self, *args) -> 'nodeidx_t' | lower_bound_ea(self, ea, tag=stag) -> nodeidx_t + | ea: ea_t + | tag: uchar | | lower_bound_idx8(self, *args) -> 'nodeidx_t' | lower_bound_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | moveto(self, *args) -> 'size_t' | moveto(self, target, count=1) -> size_t + | target: netnode + | count: nodeidx_t | | next(self, *args) -> 'bool' | next(self) -> bool @@ -56920,96 +66324,165 @@ class netnode(builtins.object) | | rename(self, *args) -> 'bool' | rename(self, newname, namlen=0) -> bool + | newname: char const * + | namlen: size_t | | set(self, *args) -> 'bool' | set(self, value) -> bool + | value: void const * | | set_long(self, *args) -> 'bool' | set_long(self, x) -> bool + | x: nodeidx_t | | setblob(self, *args) -> 'bool' | setblob(self, buf, _start, tag) -> bool + | buf: void const * + | _start: nodeidx_t + | tag: uchar | | setblob_ea(self, *args) -> 'bool' | setblob_ea(self, buf, ea, tag) -> bool + | buf: void const * + | ea: ea_t + | tag: uchar | | start(self, *args) -> 'bool' | start(self) -> bool | | supdel(self, *args) -> 'bool' | supdel(self, alt, tag=stag) -> bool - | supdel(self) -> bool + | alt: nodeidx_t + | tag: uchar | | supdel_all(self, *args) -> 'bool' | supdel_all(self, tag) -> bool + | tag: uchar | | supdel_ea(self, *args) -> 'bool' | supdel_ea(self, ea, tag=stag) -> bool + | ea: ea_t + | tag: uchar | | supdel_idx8(self, *args) -> 'bool' | supdel_idx8(self, alt, tag) -> bool + | alt: uchar + | tag: uchar | | supdel_range(self, *args) -> 'int' | supdel_range(self, idx1, idx2, tag) -> int + | idx1: nodeidx_t + | idx2: nodeidx_t + | tag: uchar | | supdel_range_idx8(self, *args) -> 'int' | supdel_range_idx8(self, idx1, idx2, tag) -> int + | idx1: uchar + | idx2: uchar + | tag: uchar | | supfirst(self, *args) -> 'nodeidx_t' | supfirst(self, tag=stag) -> nodeidx_t + | tag: uchar | | supfirst_idx8(self, *args) -> 'nodeidx_t' | supfirst_idx8(self, tag) -> nodeidx_t + | tag: uchar | | suplast(self, *args) -> 'nodeidx_t' | suplast(self, tag=stag) -> nodeidx_t + | tag: uchar | | suplast_idx8(self, *args) -> 'nodeidx_t' | suplast_idx8(self, tag) -> nodeidx_t + | tag: uchar | | supnext(self, *args) -> 'nodeidx_t' | supnext(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | supnext_idx8(self, *args) -> 'nodeidx_t' | supnext_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | supprev(self, *args) -> 'nodeidx_t' | supprev(self, cur, tag=stag) -> nodeidx_t + | cur: nodeidx_t + | tag: uchar | | supprev_idx8(self, *args) -> 'nodeidx_t' | supprev_idx8(self, alt, tag) -> nodeidx_t + | alt: uchar + | tag: uchar | | supset(self, *args) -> 'bool' | supset(self, alt, value, tag=stag) -> bool + | alt: nodeidx_t + | value: void const * + | tag: uchar + | + | | supset(self, alt, value, tag=stag) -> bool + | alt: nodeidx_t + | value: char const * + | tag: uchar | | supset_ea(self, *args) -> 'bool' | supset_ea(self, ea, value, tag=stag) -> bool + | ea: ea_t + | value: void const * + | tag: uchar + | + | | supset_ea(self, ea, value, tag=stag) -> bool + | ea: ea_t + | value: char const * + | tag: uchar | | supset_idx8(self, *args) -> 'bool' | supset_idx8(self, alt, value, tag) -> bool + | alt: uchar + | value: void const * + | tag: uchar | | supshift(self, *args) -> 'size_t' | supshift(self, _from, to, size, tag=stag) -> size_t + | from: nodeidx_t + | to: nodeidx_t + | size: nodeidx_t + | tag: uchar | | supstr(self, *args) -> 'ssize_t' | supstr(self, alt, tag=stag) -> ssize_t + | alt: nodeidx_t + | tag: uchar | | supstr_ea(self, *args) -> 'ssize_t' | supstr_ea(self, ea, tag=stag) -> ssize_t + | ea: ea_t + | tag: uchar | | supstr_idx8(self, *args) -> 'ssize_t' | supstr_idx8(self, alt, tag) -> ssize_t + | alt: uchar + | tag: uchar | | supval(self, *args) -> 'ssize_t' | supval(self, alt, tag=stag) -> ssize_t + | alt: nodeidx_t + | tag: uchar | | supval_ea(self, *args) -> 'ssize_t' | supval_ea(self, ea, tag=stag) -> ssize_t + | ea: ea_t + | tag: uchar | | supval_idx8(self, *args) -> 'ssize_t' | supval_idx8(self, alt, tag) -> ssize_t + | alt: uchar + | tag: uchar | | valobj(self, *args) -> 'ssize_t' | valobj(self) -> ssize_t @@ -57046,69 +66519,58 @@ A number to represent a bad netnode reference. 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: 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 + add_refinfo_dref(insn, _from, ri, opval, type, opoff) -> ea_t + @param insn: the referencing instruction - an ida_ua.insn_t, or an + address (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) -> '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) + calc_basevalue(target, base) -> 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. - @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 + calc_offset_base(ea, n) -> ea_t + @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) -> '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) + calc_probable_base_by_value(ea, off) -> ea_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 @@ -57118,87 +66580,79 @@ calc_reference_data(*args) -> 'bool' 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 + calc_reference_data(target, base, _from, ri, opval) -> bool + @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) -> 'ea_t' - calc_target(_from, opval, ri) -> ea_t - calc_target(_from, ea, n, opval) -> ea_t - - Calculates the target, using the provided 'refinfo_t' . + calc_target(_from, opval, ri) -> ea_t + @param _from (C++: ea_t) + @param opval (C++: adiff_t) + @param ri (C++: const refinfo_t &) - @param _from (C++: ea_t) - @param opval (C++: adiff_t) - @param ri (C++: const refinfo_t &) + + calc_target(_from, ea, n, opval) -> ea_t + @param _from (C++: ea_t) + ea: ea_t + n: int + @param opval (C++: 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) + can_be_off32(ea) -> 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 + get_default_reftype(ea) -> reftype_t + @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 + get_offbase(ea, n) -> ea_t + @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) -> '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 &) - @param _from (C++: ea_t) - @param offset (C++: adiff_t) - @param getn_flags (C++: int) + get_offset_expr(ea, n, ri, _from, offset, getn_flags=0) -> str + @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) -> '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 (\ph{translate}) if your IDP module has such a function. Translation function is used to map linear @@ -57212,70 +66666,66 @@ get_offset_expression(*args) -> 'qstring *' 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) + get_offset_expression(ea, n, _from, offset, getn_flags=0) -> str + @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) + @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' 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) + op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + @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) -> 'int' - op_offset_ex(ea, n, ri) -> int - - +op_offset_ex(*args) -> 'bool' 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 + op_offset_ex(ea, n, ri) -> bool + @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) -> '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) + op_plain_offset(ea, n, base) -> bool + @param ea (C++: ea_t) + @param n (C++: int) + @param base (C++: ea_t) Help on class __qmutex_t in module ida_pro: @@ -57473,13 +66923,15 @@ class boolvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< bool > const & | | __getitem__(self, *args) -> 'bool const &' | __getitem__(self, i) -> bool const & + | i: size_t | | __init__(self, *args) | __init__(self) -> boolvec_t - | __init__(self, x) -> boolvec_t + | x: qvector< bool > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57488,20 +66940,25 @@ class boolvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< bool > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: bool const & | | __swig_destroy__ = delete_boolvec_t(...) | delete_boolvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: bool const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: bool const & | | append = push_back(self, *args) -> 'bool &' | @@ -57529,52 +66986,74 @@ class boolvec_t(builtins.object) | | erase(self, *args) -> 'qvector< bool >::iterator' | erase(self, it) -> qvector< bool >::iterator + | it: qvector< bool >::iterator + | + | | erase(self, first, last) -> qvector< bool >::iterator + | first: qvector< bool >::iterator + | last: qvector< bool >::iterator | | extract(self, *args) -> 'bool *' | extract(self) -> bool * | | find(self, *args) -> 'qvector< bool >::const_iterator' | find(self, x) -> qvector< bool >::iterator + | x: bool const & + | + | | find(self, x) -> qvector< bool >::const_iterator + | x: bool const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=bool()) + | x: bool const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: bool const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: bool * + | len: size_t | | insert(self, *args) -> 'qvector< bool >::iterator' | insert(self, it, x) -> qvector< bool >::iterator + | it: qvector< bool >::iterator + | x: bool const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'bool &' | push_back(self, x) - | push_back(self) -> bool & + | x: bool const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: bool const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< bool > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -57653,26 +67132,28 @@ class channel_redir_t(builtins.object) 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 *) + check_process_exit(handle, exit_code, msecs=-1) -> int + @param handle: process handle to wait for (C++: void *) + @param exit_code: pointer to the buffer for the exit code (C++: int *) + msecs: int + @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 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) + clear_bits(bitmap, low, high) + @param bitmap (C++: uchar *) + @param low (C++: size_t) + @param high (C++: size_t) Help on class ea_array in module ida_pro: @@ -57683,14 +67164,18 @@ class ea_array(builtins.object) | | __getitem__(self, *args) -> 'ea_t' | __getitem__(self, index) -> ea_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> ea_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | index: size_t + | value: ea_t | | __swig_destroy__ = delete_ea_array(...) | delete_ea_array(self) @@ -57703,6 +67188,7 @@ class ea_array(builtins.object) | | frompointer(*args) -> 'ea_array *' | frompointer(t) -> ea_array + | t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57720,6 +67206,7 @@ Help on function ea_array_frompointer in module ida_pro: ea_array_frompointer(*args) -> 'ea_array *' ea_array_frompointer(t) -> ea_array + t: ea_t * Help on class ea_pointer in module ida_pro: @@ -57738,6 +67225,7 @@ class ea_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | value: ea_t | | cast(self, *args) -> 'ea_t *' | cast(self) -> ea_t * @@ -57750,6 +67238,7 @@ class ea_pointer(builtins.object) | | frompointer(*args) -> 'ea_pointer *' | frompointer(t) -> ea_pointer + | t: ea_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -57767,19 +67256,18 @@ Help on function ea_pointer_frompointer in module ida_pro: ea_pointer_frompointer(*args) -> 'ea_pointer *' ea_pointer_frompointer(t) -> ea_pointer + 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) + extend_sign(v, nbytes, sign_extend) -> uint64 + @param v (C++: uint64) + @param nbytes (C++: int) + @param sign_extend (C++: bool) Help on class instant_dbgopts_t in module ida_pro: @@ -57841,13 +67329,15 @@ class longlongvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< long long > const & | | __getitem__(self, *args) -> 'long long const &' | __getitem__(self, i) -> long long const & + | i: size_t | | __init__(self, *args) | __init__(self) -> longlongvec_t - | __init__(self, x) -> longlongvec_t + | x: qvector< long long > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -57856,20 +67346,25 @@ class longlongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: long long const & | | __swig_destroy__ = delete_longlongvec_t(...) | delete_longlongvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: long long const & | | append = push_back(self, *args) -> 'long long &' | @@ -57897,49 +67392,70 @@ class longlongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< long long >::iterator' | erase(self, it) -> qvector< long long >::iterator + | it: qvector< long long >::iterator + | + | | erase(self, first, last) -> qvector< long long >::iterator + | first: qvector< long long >::iterator + | 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 + | x: long long const & + | + | | find(self, x) -> qvector< long long >::const_iterator + | x: long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: long long * + | len: size_t | | insert(self, *args) -> 'qvector< long long >::iterator' | insert(self, it, x) -> qvector< long long >::iterator + | it: qvector< long long >::iterator + | x: long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'long long &' | push_back(self, x) - | push_back(self) -> long long & + | x: long long const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: long long const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -57978,6 +67494,7 @@ class int_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | value: int | | cast(self, *args) -> 'int *' | cast(self) -> int * @@ -57990,6 +67507,7 @@ class int_pointer(builtins.object) | | frompointer(*args) -> 'int_pointer *' | frompointer(t) -> int_pointer + | t: int * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58007,6 +67525,7 @@ Help on function int_pointer_frompointer in module ida_pro: int_pointer_frompointer(*args) -> 'int_pointer *' int_pointer_frompointer(t) -> int_pointer + t: int * Help on class intvec_t in module ida_pro: @@ -58017,13 +67536,15 @@ class intvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< int > const & | | __getitem__(self, *args) -> 'int const &' | __getitem__(self, i) -> int const & + | i: size_t | | __init__(self, *args) | __init__(self) -> intvec_t - | __init__(self, x) -> intvec_t + | x: qvector< int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58032,20 +67553,25 @@ class intvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: int const & | | __swig_destroy__ = delete_intvec_t(...) | delete_intvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: int const & | | append = push_back(self, *args) -> 'int &' | @@ -58073,49 +67599,70 @@ class intvec_t(builtins.object) | | erase(self, *args) -> 'qvector< int >::iterator' | erase(self, it) -> qvector< int >::iterator + | it: qvector< int >::iterator + | + | | erase(self, first, last) -> qvector< int >::iterator + | first: qvector< int >::iterator + | last: qvector< int >::iterator | | extract(self, *args) -> 'int *' | extract(self) -> int * | | find(self, *args) -> 'qvector< int >::const_iterator' | find(self, x) -> qvector< int >::iterator + | x: int const & + | + | | find(self, x) -> qvector< int >::const_iterator + | x: int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: int * + | len: size_t | | insert(self, *args) -> 'qvector< int >::iterator' | insert(self, it, x) -> qvector< int >::iterator + | it: qvector< int >::iterator + | x: int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'int &' | push_back(self, x) - | push_back(self) -> int & + | x: int const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -58140,71 +67687,58 @@ class intvec_t(builtins.object) 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) + is_control_tty(fd) -> enum tty_control_t + @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) + log2ceil(d64) -> int + @param d64 (C++: uint64) Help on function log2floor in module ida_pro: log2floor(*args) -> 'int' log2floor(d64) -> int + @param d64 (C++: 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 *) - @param r_switch (C++: const char *) - @return: true-ok, false-parse error + parse_dbgopts(ido, r_switch) -> bool + @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) -> 'int64' qatoll(nptr) -> int64 + @param nptr (C++: const char *) 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 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 @@ -58212,12 +67746,10 @@ qdetach_tty(*args) -> 'void' 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) + qexit(code) + @param code: exit code (C++: int) Help on class qmutex_locker_t in module ida_pro: @@ -58228,6 +67760,7 @@ class qmutex_locker_t(builtins.object) | | __init__(self, *args) | __init__(self, _lock) -> qmutex_locker_t + | _lock: qmutex_t | | __repr__ = _swig_repr(self) | @@ -58262,7 +67795,9 @@ class qrefcnt_obj_t(builtins.object) | 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: @@ -58283,21 +67818,29 @@ Help on function qstrvec_t_add in module ida_pro: qstrvec_t_add(*args) -> 'bool' qstrvec_t_add(_self, s) -> bool + self: PyObject * + s: char const * Help on function qstrvec_t_addressof in module ida_pro: qstrvec_t_addressof(*args) -> 'PyObject *' qstrvec_t_addressof(_self, idx) -> PyObject * + self: PyObject * + idx: size_t Help on function qstrvec_t_assign in module ida_pro: qstrvec_t_assign(*args) -> 'bool' qstrvec_t_assign(_self, other) -> bool + self: PyObject * + other: PyObject * Help on function qstrvec_t_clear in module ida_pro: qstrvec_t_clear(*args) -> 'bool' qstrvec_t_clear(_self, qclear) -> bool + self: PyObject * + qclear: bool Help on function qstrvec_t_create in module ida_pro: @@ -58308,97 +67851,123 @@ Help on function qstrvec_t_destroy in module ida_pro: qstrvec_t_destroy(*args) -> 'bool' qstrvec_t_destroy(py_obj) -> bool + 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 + self: PyObject * + py_list: PyObject * Help on function qstrvec_t_get in module ida_pro: qstrvec_t_get(*args) -> 'PyObject *' qstrvec_t_get(_self, idx) -> PyObject * + self: PyObject * + 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 * + 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 * + self: PyObject * Help on function qstrvec_t_insert in module ida_pro: qstrvec_t_insert(*args) -> 'bool' qstrvec_t_insert(_self, idx, s) -> bool + self: PyObject * + idx: size_t + s: char const * Help on function qstrvec_t_remove in module ida_pro: qstrvec_t_remove(*args) -> 'bool' qstrvec_t_remove(_self, idx) -> bool + self: PyObject * + 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 + self: PyObject * + idx: size_t + 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 + self: PyObject * + +Help on function qthread_equal in module ida_pro: + +qthread_equal(*args) -> 'bool' + Are two threads equal? + + qthread_equal(q1, q2) -> bool + @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' + quote_cmdline_arg(arg) -> bool + @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) - @return: a pointer to the newly allocated array + qvector_reserve(vec, old, cnt, elsize) -> void * + @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) -> '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) - @return: 0 on success, nonzero otherwise + readbytes(h, res, size, mf) -> int + @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) -> 'void' reloc_value(value, size, delta, mf) + @param value (C++: void *) + @param size (C++: int) + @param delta (C++: adiff_t) + @param mf (C++: bool) Help on function relocate_relobj in module ida_pro: relocate_relobj(*args) -> 'bool' relocate_relobj(_relobj, ea, mf) -> bool + @param _relobj (C++: struct relobj_t *) + @param ea (C++: ea_t) + @param mf (C++: bool) Help on class sel_array in module ida_pro: @@ -58409,14 +67978,18 @@ class sel_array(builtins.object) | | __getitem__(self, *args) -> 'sel_t' | __getitem__(self, index) -> sel_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> sel_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | index: size_t + | value: sel_t | | __swig_destroy__ = delete_sel_array(...) | delete_sel_array(self) @@ -58429,6 +68002,7 @@ class sel_array(builtins.object) | | frompointer(*args) -> 'sel_array *' | frompointer(t) -> sel_array + | t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58446,6 +68020,7 @@ Help on function sel_array_frompointer in module ida_pro: sel_array_frompointer(*args) -> 'sel_array *' sel_array_frompointer(t) -> sel_array + t: sel_t * Help on class sel_pointer in module ida_pro: @@ -58464,6 +68039,7 @@ class sel_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | value: sel_t | | cast(self, *args) -> 'sel_t *' | cast(self) -> sel_t * @@ -58476,6 +68052,7 @@ class sel_pointer(builtins.object) | | frompointer(*args) -> 'sel_pointer *' | frompointer(t) -> sel_pointer + | t: sel_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58493,19 +68070,17 @@ Help on function sel_pointer_frompointer in module ida_pro: sel_pointer_frompointer(*args) -> 'sel_pointer *' sel_pointer_frompointer(t) -> sel_pointer + t: sel_t * 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) + set_bits(bitmap, low, high) + @param bitmap (C++: uchar *) + @param low (C++: size_t) + @param high (C++: size_t) Help on class sizevec_t in module ida_pro: @@ -58516,13 +68091,15 @@ class sizevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< size_t > const & | | __getitem__(self, *args) -> 'size_t const &' | __getitem__(self, i) -> size_t const & + | i: size_t | | __init__(self, *args) | __init__(self) -> sizevec_t - | __init__(self, x) -> sizevec_t + | x: qvector< size_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58532,23 +68109,29 @@ class sizevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< size_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: size_t const & | | __swig_destroy__ = delete_sizevec_t(...) | delete_sizevec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: size_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: size_t const & | | at(self, *args) -> 'size_t const &' | at(self, _idx) -> size_t const & + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -58572,52 +68155,74 @@ class sizevec_t(builtins.object) | | erase(self, *args) -> 'qvector< size_t >::iterator' | erase(self, it) -> qvector< size_t >::iterator + | it: qvector< size_t >::iterator + | + | | erase(self, first, last) -> qvector< size_t >::iterator + | first: qvector< size_t >::iterator + | 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 + | x: size_t const & + | + | | find(self, x) -> qvector< size_t >::const_iterator + | x: size_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=size_t()) + | x: size_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: size_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: size_t * + | len: size_t | | insert(self, *args) -> 'qvector< size_t >::iterator' | insert(self, it, x) -> qvector< size_t >::iterator + | it: qvector< size_t >::iterator + | x: size_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'size_t &' | push_back(self, x) - | push_back(self) -> size_t & + | x: size_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: size_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< size_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -58643,8 +68248,6 @@ Help on function str2user in module ida_pro: str2user(*args) -> 'PyObject *' str2user(str) -> PyObject * - - Insert C-style escape characters to string @return: new string with escape characters inserted @@ -58658,10 +68261,11 @@ class strvec_t(builtins.object) | | __getitem__(self, *args) -> 'simpleline_t const &' | __getitem__(self, i) -> simpleline_t const & + | i: size_t | | __init__(self, *args) | __init__(self) -> strvec_t - | __init__(self, x) -> strvec_t + | x: qvector< simpleline_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -58672,6 +68276,8 @@ class strvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: simpleline_t const & | | __swig_destroy__ = delete_strvec_t(...) | delete_strvec_t(self) @@ -58702,7 +68308,12 @@ class strvec_t(builtins.object) | | erase(self, *args) -> 'qvector< simpleline_t >::iterator' | erase(self, it) -> qvector< simpleline_t >::iterator + | it: qvector< simpleline_t >::iterator + | + | | erase(self, first, last) -> qvector< simpleline_t >::iterator + | first: qvector< simpleline_t >::iterator + | last: qvector< simpleline_t >::iterator | | extract(self, *args) -> 'simpleline_t *' | extract(self) -> simpleline_t * @@ -58712,35 +68323,47 @@ class strvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=simpleline_t()) + | x: simpleline_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: simpleline_t * + | len: size_t | | insert(self, *args) -> 'qvector< simpleline_t >::iterator' | insert(self, it, x) -> qvector< simpleline_t >::iterator + | it: qvector< simpleline_t >::iterator + | x: simpleline_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'simpleline_t &' | push_back(self, x) - | push_back(self) -> simpleline_t & + | x: simpleline_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: simpleline_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< simpleline_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -58774,6 +68397,7 @@ class sval_pointer(builtins.object) | | assign(self, *args) -> 'void' | assign(self, value) + | value: sval_t | | cast(self, *args) -> 'sval_t *' | cast(self) -> sval_t * @@ -58786,6 +68410,7 @@ class sval_pointer(builtins.object) | | frompointer(*args) -> 'sval_pointer *' | frompointer(t) -> sval_pointer + | t: sval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58803,6 +68428,7 @@ Help on function sval_pointer_frompointer in module ida_pro: sval_pointer_frompointer(*args) -> 'sval_pointer *' sval_pointer_frompointer(t) -> sval_pointer + t: sval_t * Help on class tid_array in module ida_pro: @@ -58813,14 +68439,18 @@ class tid_array(builtins.object) | | __getitem__(self, *args) -> 'tid_t' | __getitem__(self, index) -> tid_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> tid_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | index: size_t + | value: tid_t | | __swig_destroy__ = delete_tid_array(...) | delete_tid_array(self) @@ -58833,6 +68463,7 @@ class tid_array(builtins.object) | | frompointer(*args) -> 'tid_array *' | frompointer(t) -> tid_array + | t: tid_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58850,6 +68481,7 @@ Help on function tid_array_frompointer in module ida_pro: tid_array_frompointer(*args) -> 'tid_array *' tid_array_frompointer(t) -> tid_array + t: tid_t * Help on class uchar_array in module ida_pro: @@ -58860,14 +68492,18 @@ class uchar_array(builtins.object) | | __getitem__(self, *args) -> 'uchar' | __getitem__(self, index) -> uchar + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uchar_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | index: size_t + | value: uchar | | __swig_destroy__ = delete_uchar_array(...) | delete_uchar_array(self) @@ -58880,6 +68516,7 @@ class uchar_array(builtins.object) | | frompointer(*args) -> 'uchar_array *' | frompointer(t) -> uchar_array + | t: uchar * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -58897,6 +68534,7 @@ Help on function uchar_array_frompointer in module ida_pro: uchar_array_frompointer(*args) -> 'uchar_array *' uchar_array_frompointer(t) -> uchar_array + t: uchar * Help on class ulonglongvec_t in module ida_pro: @@ -58907,13 +68545,15 @@ class ulonglongvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< unsigned long long > const & | | __getitem__(self, *args) -> 'unsigned long long const &' | __getitem__(self, i) -> unsigned long long const & + | i: size_t | | __init__(self, *args) | __init__(self) -> ulonglongvec_t - | __init__(self, x) -> ulonglongvec_t + | 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. @@ -58922,20 +68562,25 @@ class ulonglongvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< unsigned long long > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: unsigned long long const & | | __swig_destroy__ = delete_ulonglongvec_t(...) | delete_ulonglongvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: unsigned long long const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: unsigned long long const & | | append = push_back(self, *args) -> 'unsigned long long &' | @@ -58963,49 +68608,70 @@ class ulonglongvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned long long >::iterator' | erase(self, it) -> qvector< unsigned long long >::iterator + | it: qvector< unsigned long long >::iterator + | + | | erase(self, first, last) -> qvector< unsigned long long >::iterator + | first: qvector< unsigned long long >::iterator + | 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 + | x: unsigned long long const & + | + | | find(self, x) -> qvector< unsigned long long >::const_iterator + | x: unsigned long long const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: unsigned long long const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: unsigned long long * + | len: size_t | | insert(self, *args) -> 'qvector< unsigned long long >::iterator' | insert(self, it, x) -> qvector< unsigned long long >::iterator + | it: qvector< unsigned long long >::iterator + | x: unsigned long long const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned long long &' | push_back(self, x) - | push_back(self) -> unsigned long long & + | x: unsigned long long const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned long long const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< unsigned long long > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -59036,13 +68702,15 @@ class uintvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< unsigned int > const & | | __getitem__(self, *args) -> 'unsigned int const &' | __getitem__(self, i) -> unsigned int const & + | i: size_t | | __init__(self, *args) | __init__(self) -> uintvec_t - | __init__(self, x) -> uintvec_t + | x: qvector< unsigned int > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59051,20 +68719,25 @@ class uintvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< unsigned int > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: unsigned int const & | | __swig_destroy__ = delete_uintvec_t(...) | delete_uintvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: unsigned int const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: unsigned int const & | | append = push_back(self, *args) -> 'unsigned int &' | @@ -59092,49 +68765,70 @@ class uintvec_t(builtins.object) | | erase(self, *args) -> 'qvector< unsigned int >::iterator' | erase(self, it) -> qvector< unsigned int >::iterator + | it: qvector< unsigned int >::iterator + | + | | erase(self, first, last) -> qvector< unsigned int >::iterator + | first: qvector< unsigned int >::iterator + | 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 + | x: unsigned int const & + | + | | find(self, x) -> qvector< unsigned int >::const_iterator + | x: unsigned int const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: unsigned int const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: unsigned int * + | len: size_t | | insert(self, *args) -> 'qvector< unsigned int >::iterator' | insert(self, it, x) -> qvector< unsigned int >::iterator + | it: qvector< unsigned int >::iterator + | x: unsigned int const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'unsigned int &' | push_back(self, x) - | push_back(self) -> unsigned int & + | x: unsigned int const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: unsigned int const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< unsigned int > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -59165,14 +68859,18 @@ class uval_array(builtins.object) | | __getitem__(self, *args) -> 'uval_t' | __getitem__(self, index) -> uval_t + | index: size_t | | __init__(self, *args) | __init__(self, nelements) -> uval_array + | nelements: size_t | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, index, value) + | index: size_t + | value: uval_t | | __swig_destroy__ = delete_uval_array(...) | delete_uval_array(self) @@ -59185,6 +68883,7 @@ class uval_array(builtins.object) | | frompointer(*args) -> 'uval_array *' | frompointer(t) -> uval_array + | t: uval_t * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -59202,20 +68901,19 @@ Help on function uval_array_frompointer in module ida_pro: uval_array_frompointer(*args) -> 'uval_array *' uval_array_frompointer(t) -> uval_array + 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) - @return: 0 on success, nonzero otherwise + writebytes(h, l, size, mf) -> int + @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 @@ -59225,7 +68923,7 @@ UTF-16 codepage. ida_pro.IDA_SDK_VERSION """ -IDA SDK v7.4. +IDA SDK v7.5. """ ida_pro.IDBDEC_ESCAPE @@ -59272,86 +68970,73 @@ endian (Intel 80x86). 1: big endian (PowerPC). 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) - @return: success + forget_problem(type, ea) -> bool + @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) -> '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: 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 + get_problem(type, lowea) -> ea_t + @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) -> 'qstring *' - 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 + get_problem_desc(t, ea) -> str + @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) -> 'char const *' - get_problem_name(type, longname=True) -> char const * - - Get problem list description. - - @param type (C++: problist_id_t) - @param longname (C++: bool) + get_problem_name(type, longname=True) -> char const * + @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) + is_problem_present(t, ea) -> bool + @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: 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 *) + remember_problem(type, ea, msg=None) + @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) -> 'bool' was_ida_decision(ea) -> bool + @param ea (C++: ea_t) Help on class array_of_rangesets in module ida_range: @@ -59362,13 +69047,15 @@ class array_of_rangesets(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< rangeset_t > const & | | __getitem__(self, *args) -> 'rangeset_t const &' | __getitem__(self, i) -> rangeset_t + | i: size_t | | __init__(self, *args) | __init__(self) -> array_of_rangesets - | __init__(self, x) -> array_of_rangesets + | x: qvector< rangeset_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59378,23 +69065,29 @@ class array_of_rangesets(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< rangeset_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: rangeset_t const & | | __swig_destroy__ = delete_array_of_rangesets(...) | delete_array_of_rangesets(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: rangeset_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: rangeset_t const & | | at(self, *args) -> 'rangeset_t const &' | at(self, _idx) -> rangeset_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -59418,52 +69111,74 @@ class array_of_rangesets(builtins.object) | | erase(self, *args) -> 'qvector< rangeset_t >::iterator' | erase(self, it) -> rangeset_t + | it: qvector< rangeset_t >::iterator + | + | | erase(self, first, last) -> rangeset_t + | first: qvector< rangeset_t >::iterator + | 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 + | x: rangeset_t const & + | + | | find(self, x) -> rangeset_t + | x: rangeset_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=rangeset_t()) + | x: rangeset_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: rangeset_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: rangeset_t * + | len: size_t | | insert(self, *args) -> 'qvector< rangeset_t >::iterator' | insert(self, it, x) -> rangeset_t + | it: qvector< rangeset_t >::iterator + | x: rangeset_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'rangeset_t &' | push_back(self, x) - | push_back(self) -> rangeset_t + | x: rangeset_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: rangeset_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< rangeset_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -59494,19 +69209,24 @@ class range_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __init__(self, *args) | __init__(self) -> range_t - | __init__(self, ea1, ea2) -> range_t + | ea1: ea_t + | ea2: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: range_t const & | | __repr__ = _swig_repr(self) | @@ -59517,29 +69237,48 @@ class range_t(builtins.object) | _print(self) -> size_t | | clear(self, *args) -> 'void' - | clear(self) + | Set 'start_ea' , 'end_ea' to 0. | | compare(self, *args) -> 'int' + | Compare two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -59571,10 +69310,10 @@ class range_t(builtins.object) 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! + + range_t_print(cb) -> str + cb: range_t const * Help on class rangeset_t in module ida_range: @@ -59585,13 +69324,17 @@ class rangeset_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, aset) -> bool + | aset: rangeset_t const & | | __getitem__(self, idx) | | __init__(self, *args) | __init__(self) -> rangeset_t - | __init__(self, range) -> rangeset_t + | range: range_t const & + | + | | __init__(self, ivs) -> rangeset_t + | ivs: rangeset_t const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59600,6 +69343,7 @@ class rangeset_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, aset) -> bool + | aset: rangeset_t const & | | __repr__ = _swig_repr(self) | @@ -59610,78 +69354,160 @@ class rangeset_t(builtins.object) | _print(self) -> size_t | | add(self, *args) -> 'bool' + | Add an address range to the set. If 'range' intersects an existing + | element e, then e is extended to include 'range', and any superfluous + | elements (subsets of e) are removed. + | | add(self, range) -> bool + | @param range: address range to add. cannot be empty (C++: const + | range_t &) + | @return: false if no elements were added (the set was unchanged) + | + | | add(self, start, _end) -> bool + | start: ea_t + | _end: ea_t + | @return: false if no elements were added (the set was unchanged) + | + | | add(self, aset) -> bool + | aset: rangeset_t const & + | @return: false if no elements were added (the set was unchanged) | | 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. | | clear(self, *args) -> 'void' - | clear(self) + | Delete all elements from the set. See 'qvector::clear()' | | contains(self, *args) -> 'bool' + | Does an element of the rangeset contain 'ea'? See + | range_t::contains(ea_t) + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, aset) -> bool + | 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 *' + | Get the element from the set that contains 'ea'. + | | find_range(self, ea) -> range_t + | @param ea (C++: ea_t) + | @return: NULL if there is no such element | | getrange(self, *args) -> 'range_t const &' + | Get the 'range_t' at index 'idx'. + | | getrange(self, idx) -> range_t + | @param idx (C++: int) | | has_common(self, *args) -> 'bool' + | Is there an ea in 'range' that is also in the rangeset? + | | has_common(self, range) -> bool + | @param range (C++: const range_t &) + | + | | has_common(self, aset) -> bool + | aset: rangeset_t const & | | includes(self, *args) -> 'bool' + | Is every ea in 'range' contained in the rangeset? + | | includes(self, range) -> bool + | @param range (C++: const range_t &) | | intersect(self, *args) -> 'bool' + | Set the rangeset to its intersection with 'aset'. + | | intersect(self, aset) -> bool + | @param aset (C++: const rangeset_t &) + | @return: false if the set was unchanged | | is_equal(self, *args) -> 'bool' + | Do this rangeset and 'aset' have identical elements? + | | is_equal(self, aset) -> bool + | @param aset (C++: const rangeset_t &) | | is_subset_of(self, *args) -> 'bool' + | Is every element in the rangeset contained in an element of 'aset'? + | | is_subset_of(self, aset) -> bool + | @param aset (C++: const rangeset_t &) | | lastrange(self, *args) -> 'range_t const &' - | lastrange(self) -> range_t + | Get the last 'range_t' in the set. | | next_addr(self, *args) -> 'ea_t' + | Get the smallest ea_t value greater than 'ea' contained in the + | rangeset. + | | next_addr(self, ea) -> ea_t + | @param ea (C++: ea_t) | | next_range(self, *args) -> 'ea_t' + | Get the smallest ea_t value greater than 'ea' that is not in the same + | range as 'ea'. + | | next_range(self, ea) -> ea_t + | @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' + | Get the largest ea_t value less than 'ea' contained in the rangeset. + | | prev_addr(self, ea) -> ea_t + | @param ea (C++: ea_t) | | prev_range(self, *args) -> 'ea_t' + | Get the largest ea_t value less than 'ea' that is not in the same + | range as 'ea'. + | | prev_range(self, ea) -> ea_t + | @param ea (C++: ea_t) | | sub(self, *args) -> 'bool' + | Subtract an address range from the set. All subsets of 'range' will be + | removed, and all elements that intersect 'range' will be + | truncated/split so they do not include 'range'. + | | sub(self, range) -> bool + | @param range: address range to subtract. cannot be empty. (C++: const + | range_t &) + | @return: false if nothing was subtracted (the set was unchanged) + | + | | sub(self, ea) -> bool + | ea: ea_t + | @return: false if nothing was subtracted (the set was unchanged) + | + | | sub(self, aset) -> bool + | aset: rangeset_t const & + | @return: false if nothing was subtracted (the set was unchanged) | | swap(self, *args) -> 'void' + | Set this = 'r' and 'r' = this. See 'qvector::swap()' + | | swap(self, r) + | @param r (C++: rangeset_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -59709,13 +69535,15 @@ class rangevec_base_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __init__(self, *args) | __init__(self) -> rangevec_base_t - | __init__(self, x) -> rangevec_base_t + | x: qvector< range_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59725,23 +69553,29 @@ class rangevec_base_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | __swig_destroy__ = delete_rangevec_base_t(...) | delete_rangevec_base_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -59765,52 +69599,74 @@ class rangevec_base_t(builtins.object) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -59863,9 +69719,11 @@ class rangevec_t(rangevec_base_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -59875,18 +69733,24 @@ class rangevec_t(rangevec_base_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -59910,52 +69774,74 @@ class rangevec_t(rangevec_base_t) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -59977,59 +69863,47 @@ class rangevec_t(rangevec_base_t) 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 *) - @return: false if the [key+]value doesn't exist + reg_data_type(name, subkey=None) -> regval_type_t + @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) -> '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 *) - @return: success + reg_delete(name, subkey=None) -> bool + @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) -> 'bool' - reg_delete_subkey(name) -> bool - - Delete a key from the registry. - - @param name (C++: const char *) + reg_delete_subkey(name) -> bool + @param name (C++: const char *) 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 *) + reg_delete_tree(name) -> bool + @param name (C++: const char *) 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 *) + reg_exists(name, subkey=None) -> bool + @param name: value name (C++: const char *) + @param subkey: parent key (C++: const char *) Help on function reg_flush in module ida_registry: @@ -60044,176 +69918,146 @@ 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 * - - 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. + reg_read_binary(name, subkey=None) -> PyObject * + @param name: value name (C++: const char *) + @param subkey: key name (C++: const char *) + @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 *) - @return: boolean read from registry, or 'defval' if the read failed + reg_read_bool(name, defval, subkey=None) -> bool + @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) -> '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 + reg_read_int(name, defval, subkey=None) -> int + @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) -> 'PyObject *' - 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 + reg_read_string(name, subkey=None, _def=None) -> PyObject * + @param name: value name (C++: const char *) + @param subkey: key name (C++: const char *) + 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 *) + reg_read_strlist(subkey) + @param subkey (C++: const char *) 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 *) + reg_subkey_exists(name) -> bool + @param name (C++: const char *) Help on function reg_subkey_subkeys in module ida_registry: reg_subkey_subkeys(*args) -> 'PyObject *' - reg_subkey_subkeys(name) -> PyObject * - - Get all subkey names of given key. - - @param name (C++: const char *) + reg_subkey_subkeys(name) -> PyObject * + @param name (C++: const char *) Help on function reg_subkey_values in module ida_registry: reg_subkey_values(*args) -> 'PyObject *' - reg_subkey_values(name) -> PyObject * - - Get all value names under given key. - - @param name (C++: const char *) + reg_subkey_values(name) -> PyObject * + @param name (C++: const char *) 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.'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 *) + reg_update_filestrlist(subkey, add, maxrecs, rem=None) + @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) -> '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) + reg_update_strlist(subkey, add, maxrecs, rem=None, ignorecase=False) + @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) -> '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 *) + reg_write_binary(name, py_bytes, subkey=None) -> PyObject * + @param name: value name (C++: const char *) + py_bytes: PyObject * + @param subkey: key name (C++: const char *) 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 *) + reg_write_bool(name, value, subkey=None) + @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) -> '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 *) + reg_write_int(name, value, subkey=None) + @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) -> '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 *) + reg_write_string(name, utf8, subkey=None) + @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 @@ -60227,146 +70071,137 @@ 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. 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) + find_code(ea, sflag) -> ea_t + @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) + find_data(ea, sflag) -> ea_t + @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) + find_defined(ea, sflag) -> ea_t + @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) + find_error(ea, sflag) -> ea_t + @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 next immediate operand with the given value. - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) + find_imm(ea, sflag, search_value) -> ea_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) + find_not_func(ea, sflag) -> ea_t + @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. + find_notype(ea, sflag) -> ea_t + @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 access to a register.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. - @param ea (C++: ea_t) - @param sflag (C++: int) + find_reg_access(out, start_ea, end_ea, regname, sflag) -> ea_t + @param out: 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. (C++: + struct reg_access_t *) + @param start_ea: starting address (C++: ea_t) + @param end_ea: 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. (C++: + ea_t) + @param regname: the register to search for. (C++: const char *) + @param sflag: combination of Search flags bits. (C++: int) + @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) + find_suspop(ea, sflag) -> ea_t + @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 *) - @param sflag (C++: int) + find_text(start_ea, y, x, ustr, sflag) -> ea_t + @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) -> 'ea_t' - find_unknown(ea, sflag) -> ea_t - - Find next unexplored address. - - @param ea (C++: ea_t) - @param sflag (C++: int) + find_unknown(ea, sflag) -> ea_t + @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) + search_down(sflag) -> bool + @param sflag (C++: int) === ida_search EPYDOC INJECTIONS === ida_search.SEARCH_BRK """ -return 'BADADDR' if Ctrl-Break wass pressed during search +return 'BADADDR' if the search was cancelled. """ ida_search.SEARCH_CASE @@ -60374,6 +70209,11 @@ ida_search.SEARCH_CASE case-sensitive search (case-insensitive otherwise) """ +ida_search.SEARCH_DEF +""" +find_reg_access: search for a definition (write access) +""" + ida_search.SEARCH_DOWN """ search towards higher addresses @@ -60387,37 +70227,40 @@ 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(). +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. """ ida_search.SEARCH_NOBRK """ -don't test for ctrl-break to interrupt the search +do not test if the user clicked cancel to interrupt the search """ ida_search.SEARCH_NOSHOW """ -don't display the search progress/refresh screen +do not display the search progress/refresh screen """ ida_search.SEARCH_REGEX """ -regular expressions in search string (only supported for txt search) +regular expressions in search string (supported only for the text +search) """ ida_search.SEARCH_UP """ search towards lower addresses """ + +ida_search.SEARCH_USE +""" +find_reg_access: search for a use (read access) +""" === 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 @@ -60427,488 +70270,407 @@ add_segm(*args) -> 'bool' 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) + add_segm(para, start, end, name, sclass, flags=0) -> bool + @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) + @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 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) + add_segm_ex(s, name, sclass, flags) -> bool + @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) + @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) + add_segment_translation(segstart, mappedseg) -> bool + @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) + @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: a new segment base paragraph (C++: ea_t) - @return: the allocated selector number + allocate_selector(segbase) -> sel_t + @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) -> '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: segment to modify (C++: segment_t *) - @param is_deb_segm: new status of the segment (C++: bool) - @return: Change segment status result codes + change_segment_status(s, is_deb_segm) -> int + @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) -> '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) + del_segm(ea, flags) -> bool + @param ea: any address belonging to the segment (C++: ea_t) + @param flags: Segment modification flags (C++: int) + @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) + del_segment_translations(segstart) + @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) -> '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: number of selector to remove from the translation - table (C++: sel_t) + del_selector(selector) + @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) -> '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: paragraph to search in the translation table (C++: ea_t) - @return: selector value or base + find_selector(base) -> sel_t + @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) -> 'sel_t' get_defsr(s, reg) -> sel_t + s: segment_t * + 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 + get_group_selector(grpsel) -> sel_t + @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) -> '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) + get_next_seg(ea) -> segment_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) + get_prev_seg(ea) -> segment_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) - @param s: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, otherwise segment base linear address + get_segm_base(s) -> ea_t + @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) -> '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: segment name. may be NULL. (C++: const char *) - @return: NULL or pointer to segment structure + get_segm_by_name(name) -> segment_t + @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) -> '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: a segment with the specified selector will be - returned (C++: sel_t) - @return: pointer to segment or NULL + get_segm_by_sel(selector) -> segment_t + @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) -> '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) + get_segm_class(s) -> str + @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) -> '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) + get_segm_name(s, flags=0) -> str + @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) -> '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) + get_segm_num(ea) -> int + @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) -> '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: pointer to segment (C++: const segment_t *) - @return: 0 if s == NULL, the segment base paragraph + get_segm_para(s) -> ea_t + @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) -> '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. + get_segment_alignment(align) -> char const * + @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) - @return: size of comment or -1 + get_segment_cmt(s, repeatable) -> str + @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) -> '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. + get_segment_combination(comb) -> char const * + @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. + get_segment_translations(transmap, segstart) -> ssize_t + @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) -> 'int' - get_selector_qty() -> int - - +get_selector_qty(*args) -> '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) + get_visible_segm_name(s) -> str + @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) -> 'sel_t *, ea_t *' - getn_selector(n) -> bool - - Get description of selector (0.. 'get_selector_qty()' -1) - - @param n (C++: int) + getn_selector(n) -> bool + @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.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 + getnseg(n) -> segment_t + @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) -> '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 + getseg(ea) -> segment_t + @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) -> 'bool' - is_finally_visible_segm(s) -> bool - - See 'SFL_HIDDEN' , 'SCF_SHHID_SEGM' . - - @param s (C++: segment_t *) + is_finally_visible_segm(s) -> bool + @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 *) + is_segm_locked(segm) -> bool + @param segm (C++: const segment_t *) 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: linear address (C++: ea_t) + is_spec_ea(ea) -> bool + @param ea: linear address (C++: ea_t) 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) + is_spec_segm(seg_type) -> bool + @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 *) + is_visible_segm(s) -> bool + @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 *) - @param lock (C++: bool) + lock_segm(segm, lock) + @param segm (C++: const segment_t *) + @param lock (C++: bool) Help on class lock_segment in module ida_segment: @@ -60919,6 +70681,7 @@ class lock_segment(builtins.object) | | __init__(self, *args) | __init__(self, _segm) -> lock_segment + | _segm: segment_t const * | | __repr__ = _swig_repr(self) | @@ -60940,9 +70703,6 @@ class lock_segment(builtins.object) 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 @@ -60950,17 +70710,15 @@ move_segm(*args) -> 'int' 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 + move_segm(s, to, flags=0) -> int + @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) -> '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 @@ -60971,55 +70729,50 @@ move_segm_start(*args) -> 'bool' 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) + move_segm_start(ea, newstart, mode) -> bool + @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) + @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) - @return: Move segment result codes + rebase_program(delta, flags) -> int + @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) -> '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) + segm_adjust_diff(s, delta) -> adiff_t + @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) -> '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) + segm_adjust_ea(s, ea) -> ea_t + @param s (C++: const segment_t *) + @param ea (C++: ea_t) Help on class segment_t in module ida_segment: @@ -61042,10 +70795,10 @@ class segment_t(ida_range.range_t) | delete_segment_t(self) | | 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) @@ -61076,30 +70829,38 @@ class segment_t(ida_range.range_t) | | set_debugger_segm(self, *args) -> 'void' | set_debugger_segm(self, debseg) + | debseg: bool | | set_header_segm(self, *args) -> 'void' | set_header_segm(self, on) + | on: bool | | set_hidden_segtype(self, *args) -> 'void' | set_hidden_segtype(self, hide) + | hide: bool | | set_loader_segm(self, *args) -> 'void' | set_loader_segm(self, ldrseg) + | ldrseg: bool | | set_ob_ok(self, *args) -> 'void' | set_ob_ok(self) | | set_visible_segm(self, *args) -> 'void' | set_visible_segm(self, visible) + | 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. | | use32(self, *args) -> 'bool' - | use32(self) -> bool + | Use 32 bit segment addressing? | | use64(self, *args) -> 'bool' - | use64(self) -> bool + | Use 64 bit segment addressing? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -61154,43 +70915,66 @@ class segment_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -61213,221 +70997,202 @@ class segment_t(ida_range.range_t) 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' + segtype(ea) -> uchar + @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) -> '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); + sel2ea(selector) -> ea_t + @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) -> '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'. + sel2para(selector) -> ea_t + @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) -> 'void' set_defsr(s, reg, value) + s: segment_t * + reg: int + value: sel_t Help on function set_group_selector in module ida_segment: set_group_selector(*args) -> 'int' + Create a new group of segments (used OMF files). + 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 + @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) -> '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: 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 + set_segm_addressing(s, bitness) -> bool + @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) -> 'bool' - set_segm_base(s, newbase) -> bool - - Internal function. - - @param s (C++: segment_t *) - @param newbase (C++: ea_t) + set_segm_base(s, newbase) -> bool + @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) + set_segm_class(s, sclass, flags=0) -> int + @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) + @retval: 1 - ok, name is good and segment is renamed + @retval: 0 - failure, name is NULL or bad or segment is NULL 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: 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) + set_segm_end(ea, newend, flags) -> bool + @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) + @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: 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) + set_segm_name(s, name, flags=0) -> int + @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) + @retval: 1 - ok, name is good and segment is renamed + @retval: 0 - failure, name is bad or segment is NULL 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: 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) + set_segm_start(ea, newstart, flags) -> bool + @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) + @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) + set_segment_cmt(s, cmt, repeatable) + @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) -> '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 &) + set_segment_translations(segstart, transmap) -> bool + @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 &) + @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 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) + set_selector(selector, paragraph) -> int + @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) + @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) + set_visible_segm(s, visible) + @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 @@ -61435,38 +71200,36 @@ setup_selector(*args) -> 'sel_t' 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 + setup_selector(segbase) -> sel_t + @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) -> '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 &) - @param seg (C++: segment_t *) + std_out_segm_footer(ctx, seg) + @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) -> 'bool' - 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 + take_memory_snapshot(only_loader_segs) -> bool + @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) -> 'bool' update_segm(s) -> bool + @param s (C++: segment_t *) === ida_segment EPYDOC INJECTIONS === ida_segment.ADDSEG_FILLGAP @@ -61507,7 +71270,7 @@ they overlap. ida_segment.ADDSEG_OR_DIE """ - 'qexit()' if can't add a segment +'qexit()' if can't add a segment """ ida_segment.ADDSEG_QUIET @@ -61920,142 +71683,118 @@ Stack. Combine as for C=2. This combine type forces 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) + copy_sreg_ranges(dst_rg, src_rg, map_selector=False) + @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) -> '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: start_ea of the deleted range (C++: ea_t) - @param rg: the segment register number (C++: int) - @return: success + del_sreg_range(ea, rg) -> bool + @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) -> 'bool' - 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 + get_prev_sreg_range(out, ea, rg) -> bool + @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) -> '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: 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. + get_sreg(ea, rg) -> sel_t + @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) -> '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) - @return: success + get_sreg_range(out, ea, rg) -> bool + @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) -> '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) + get_sreg_range_num(ea, rg) -> int + @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) -> 'size_t' - get_sreg_ranges_qty(rg) -> size_t - - Get number of segment register ranges. - @param rg: the segment register number (C++: int) + get_sreg_ranges_qty(rg) -> size_t + @param rg: the segment register number (C++: int) 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) - @return: success + getn_sreg_range(out, rg, n) -> bool + @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) -> 'void' - set_default_dataseg(ds_sel) - - Set default value of DS register for all segments. - - @param ds_sel (C++: sel_t) + set_default_dataseg(ds_sel) + @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) - @return: success + set_default_sreg_value(sg, rg, value) -> bool + @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) -> '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 @@ -62063,30 +71802,29 @@ set_sreg_at_next_code(*args) -> 'void' 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) + set_sreg_at_next_code(ea1, ea2, rg, value) + @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) -> '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: 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 + split_sreg_range(ea, rg, v, tag, silent=False) -> bool + @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: @@ -62125,43 +71863,66 @@ class sreg_range_t(ida_range.range_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: range_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: range_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: range_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | 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 two 'range_t' instances, based on the start_ea. + | | compare(self, r) -> int + | @param r (C++: const range_t &) | | contains(self, *args) -> 'bool' + | Is 'ea' in the address range? + | | contains(self, ea) -> bool + | @param ea (C++: ea_t) + | + | | contains(self, r) -> bool + | r: range_t const & | | empty(self, *args) -> 'bool' - | empty(self) -> bool + | Is the size of the 'range_t' <= 0? | | extend(self, *args) -> 'void' + | Ensure that the 'range_t' includes 'ea'. + | | extend(self, ea) + | @param ea (C++: ea_t) | | intersect(self, *args) -> 'void' + | Assign the 'range_t' to the intersection between the 'range_t' and + | 'r'. + | | intersect(self, r) + | @param r (C++: const range_t &) | | overlaps(self, *args) -> 'bool' + | Is there an ea in 'r' that is also in this 'range_t' ? + | | overlaps(self, r) -> bool + | @param r (C++: const range_t &) | | size(self, *args) -> 'asize_t' - | size(self) -> asize_t + | Get 'end_ea' - 'start_ea' . | | ---------------------------------------------------------------------- | Data descriptors inherited from ida_range.range_t: @@ -62211,46 +71972,31 @@ the value is specified by the user 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. 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) + get_strlist_item(si, n) -> bool + @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() -> strwinsetup_t - - Get access to 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. Help on class string_info_t in module ida_strlist: @@ -62262,10 +72008,11 @@ class string_info_t(builtins.object) | | __init__(self, *args) | __init__(self) -> string_info_t - | __init__(self, _ea) -> string_info_t + | _ea: ea_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: string_info_t const & | | __repr__ = _swig_repr(self) | @@ -62313,6 +72060,7 @@ class strwinsetup_t(builtins.object) | | _set_strtypes(self, *args) -> 'PyObject *' | _set_strtypes(self, py_t) -> PyObject * + | py_t: PyObject * | | is_initialized(self, *args) -> 'bool' | is_initialized(self) -> bool @@ -62347,545 +72095,467 @@ class strwinsetup_t(builtins.object) 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==NULL then a name will be generated "struct_%d". - @param idx (C++: uval_t) - @param name (C++: const char *) - @param is_union (C++: bool) + add_struc(idx, name, is_union=False) -> tid_t + @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) -> '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) + add_struc_member(sptr, fieldname, offset, flag, mt, nbytes) -> struc_error_t + @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) -> 'bool' - del_member_tinfo(sptr, mptr) -> bool - - Delete tinfo for given member. - - @param sptr (C++: struc_t *) - @param mptr (C++: member_t *) + del_member_tinfo(sptr, mptr) -> bool + @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 *) + del_struc(sptr) -> bool + @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) + del_struc_member(sptr, offset) -> bool + @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 + del_struc_members(sptr, off1, off2) -> int + @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 + | i: size_t + | + | __init__(self, *args) + | __init__(self, _data, _count) -> dyn_member_ref_array + | _data: member_t * + | _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) + | i: size_t + | 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 + | dyn_member_ref_array_count_get(self) -> size_t + | + | data + | dyn_member_ref_array_data_get(self) -> member_t + | + | 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) + expand_struc(sptr, offset, delta, recalc=True) -> 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). - @param sptr (C++: const struc_t *) - @param offset (C++: asize_t) + get_best_fit_member(sptr, offset) -> member_t + @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) -> '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_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 *) + get_max_offset(sptr) -> ea_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) + get_member(sptr, offset) -> member_t + @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) -> 'struc_t **' - get_member_by_fullname(fullname) -> member_t - - Get a member by its fully qualified name, "struct.field". - - @param fullname (C++: const char *) + get_member_by_fullname(fullname) -> member_t + @param fullname (C++: const char *) 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. - - @param mid (C++: tid_t) + get_member_by_id(mid) -> member_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 *) + get_member_by_name(sptr, membername) -> member_t + @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) -> 'qstring *' - get_member_cmt(mid, repeatable) -> str - - Get comment of structure member. - - @param mid (C++: tid_t) - @param repeatable (C++: bool) + get_member_cmt(mid, repeatable) -> str + @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) + get_member_fullname(mid) -> str + @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) + get_member_id(sptr, offset) -> tid_t + @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) -> 'qstring *' - get_member_name(mid) -> str - - Get name of structure member. - - @param mid (C++: tid_t) + get_member_name(mid) -> str + @param mid (C++: 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 size of structure member. May return 0 for the last member of varstruct. For union members, returns 'member_t::eoff' . + + get_member_size(mptr) -> asize_t + @param mptr (C++: const member_t *) 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 *) + get_member_struc(fullname) -> struc_t + @param fullname (C++: const char *) 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 *) + get_member_tinfo(tif, mptr) -> bool + @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) -> '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) + get_next_member_idx(sptr, off) -> ssize_t + @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) -> '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++ + get_next_struc_idx(idx) -> uval_t + @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 *) + get_or_guess_member_tinfo(tif, mptr) -> bool + @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) -> '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) + get_prev_member_idx(sptr, off) -> ssize_t + @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) -> '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 + get_prev_struc_idx(idx) -> uval_t + @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 *) + get_sptr(mptr) -> struc_t + @param mptr (C++: const member_t *) 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) + get_struc(id) -> struc_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) + get_struc_by_idx(idx) -> tid_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) + get_struc_cmt(id, repeatable) -> str + @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 + get_struc_first_offset(sptr) -> ea_t + @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) -> 'tid_t' - get_struc_id(name) -> tid_t - - Get struct id by name. - - @param name (C++: const char *) + get_struc_id(name) -> tid_t + @param name (C++: const char *) 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) + get_struc_idx(id) -> uval_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 + get_struc_last_offset(sptr) -> ea_t + @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) -> '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) + get_struc_name(id, flags=0) -> str + @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) -> '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 + get_struc_next_offset(sptr, offset) -> ea_t + @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) -> '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 + get_struc_prev_offset(sptr, offset) -> ea_t + @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) -> '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_struc_size(id) -> asize_t - - Get struct size (also see 'get_struc_size(tid_t)' ) + get_struc_size(sptr) -> asize_t + @param sptr (C++: const struc_t *) - @param sptr (C++: const struc_t *) + + get_struc_size(id) -> asize_t + 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 *) + is_anonymous_member_name(name) -> bool + @param name (C++: const char *) 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 *) + is_dummy_member_name(name) -> bool + @param name (C++: const char *) 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) + is_member_id(mid) -> bool + @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) + is_special_member(id) -> bool + @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) + is_union(id) -> bool + @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 *) + is_varmember(mptr) -> bool + @param mptr (C++: const member_t *) 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) + is_varstr(id) -> bool + @param id (C++: tid_t) Help on class member_t in module ida_struct: @@ -62903,28 +72573,28 @@ class member_t(builtins.object) | delete_member_t(self) | | by_til(self, *args) -> 'bool' - | by_til(self) -> bool + | Was the member created due to the type system? | | 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: @@ -62956,167 +72626,130 @@ class member_t(builtins.object) 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 *) + retrieve_member_info(buf, mptr) -> opinfo_t + @param buf (C++: opinfo_t *) + @param mptr (C++: const member_t *) 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) + save_struc(sptr, may_update_ltypes=True) + @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) + set_member_cmt(mptr, cmt, repeatable) -> bool + @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) -> '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 *) + set_member_name(sptr, offset, name) -> bool + @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) -> '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) + set_member_tinfo(sptr, mptr, memoff, tif, flags) -> smt_code_t + @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) -> '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++: flags_t) - @param mt (C++: const opinfo_t *) - @param nbytes (C++: asize_t) + set_member_type(sptr, offset, flag, mt, nbytes) -> bool + @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) -> 'bool' - set_struc_align(sptr, shift) -> bool - - Set structure alignment ( 'SF_ALIGN' ) - - @param sptr (C++: struc_t *) - @param shift (C++: int) + set_struc_align(sptr, shift) -> bool + @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) + set_struc_cmt(id, cmt, repeatable) -> bool + @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) -> 'void' - set_struc_hidden(sptr, is_hidden) - - Hide/unhide a struct type. - - @param sptr (C++: struc_t *) - @param is_hidden (C++: bool) + set_struc_hidden(sptr, is_hidden) + @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 *) - @param idx (C++: uval_t) + set_struc_idx(sptr, idx) -> bool + @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) -> '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) + set_struc_listed(sptr, is_listed) + @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 *) + set_struc_name(id, name) -> bool + @param id (C++: tid_t) + @param name (C++: const char *) 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) + stroff_as_size(plen, sptr, value) -> bool + @param plen (C++: int) + @param sptr (C++: const struc_t *) + @param value (C++: asize_t) Help on class struc_t in module ida_struct: @@ -63125,6 +72758,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. | @@ -63134,40 +72770,45 @@ class struc_t(builtins.object) | 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_member(self, *args) -> 'member_t *' - | get_member(self, index) -> 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_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_union(self, *args) -> 'bool' - | is_union(self) -> bool + | Is a union? | | is_varstr(self, *args) -> 'bool' - | is_varstr(self) -> bool + | Is variable size structure? | | set_alignment(self, *args) -> 'void' + | Do not use; use 'set_struc_align()' + | | set_alignment(self, shift) + | @param shift (C++: int) | | set_ghost(self, *args) -> 'void' | set_ghost(self, _is_ghost) + | @param _is_ghost (C++: bool) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -63185,7 +72826,7 @@ class struc_t(builtins.object) | struc_t_id_get(self) -> tid_t | | members - | struc_t_members_get(self) -> member_t + | __get_members__(self) -> dyn_member_ref_array | | memqty | struc_t_memqty_get(self) -> uint32 @@ -63210,6 +72851,7 @@ class struct_field_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> struct_field_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -63218,6 +72860,8 @@ class struct_field_visitor_t(builtins.object) | | visit_field(self, *args) -> 'int' | visit_field(self, sptr, mptr) -> int + | @param sptr (C++: struc_t *) + | @param mptr (C++: member_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -63234,18 +72878,16 @@ 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 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) + visit_stroff_fields(sfv, path, disp, appzero) -> flags_t + @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 @@ -63375,13 +73017,11 @@ structname.fieldname 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 &) - @return: error code; 0 means good + add_tryblk(tb) -> int + @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: @@ -63437,9 +73077,11 @@ class catch_t(try_handler_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63449,18 +73091,24 @@ class catch_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -63481,52 +73129,74 @@ class catch_t(try_handler_t) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -63554,13 +73224,15 @@ class catchvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< catch_t > const & | | __getitem__(self, *args) -> 'catch_t const &' | __getitem__(self, i) -> catch_t + | i: size_t | | __init__(self, *args) | __init__(self) -> catchvec_t - | __init__(self, x) -> catchvec_t + | x: qvector< catch_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63570,23 +73242,29 @@ class catchvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< catch_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: catch_t const & | | __swig_destroy__ = delete_catchvec_t(...) | delete_catchvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: catch_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: catch_t const & | | at(self, *args) -> 'catch_t const &' | at(self, _idx) -> catch_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -63610,52 +73288,74 @@ class catchvec_t(builtins.object) | | erase(self, *args) -> 'qvector< catch_t >::iterator' | erase(self, it) -> catch_t + | it: qvector< catch_t >::iterator + | + | | erase(self, first, last) -> catch_t + | first: qvector< catch_t >::iterator + | 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 + | x: catch_t const & + | + | | find(self, x) -> catch_t + | x: catch_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=catch_t()) + | x: catch_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: catch_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: catch_t * + | len: size_t | | insert(self, *args) -> 'qvector< catch_t >::iterator' | insert(self, it, x) -> catch_t + | it: qvector< catch_t >::iterator + | x: catch_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'catch_t &' | push_back(self, x) - | push_back(self) -> catch_t + | x: catch_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: catch_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< catch_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -63680,37 +73380,31 @@ class catchvec_t(builtins.object) 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 &) + del_tryblks(range) + @param range: the range to be cleared (C++: const range_t &) 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) - @return: start address of surrounding tryblk, otherwise BADADDR + find_syseh(ea) -> ea_t + @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) -> '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: output buffer; may be NULL (C++: tryblks_t *) - @param range: address range to change (C++: const range_t &) - @return: number of found try blocks + get_tryblks(tbv, range) -> size_t + @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: @@ -63763,9 +73457,11 @@ class seh_t(try_handler_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63775,18 +73471,24 @@ class seh_t(try_handler_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -63807,52 +73509,74 @@ class seh_t(try_handler_t) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -63912,9 +73636,11 @@ class try_handler_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -63924,18 +73650,24 @@ class try_handler_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -63956,52 +73688,74 @@ class try_handler_t(ida_range.rangevec_t) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -64035,7 +73789,7 @@ class tryblk_t(ida_range.rangevec_t) | | __init__(self, *args) | __init__(self) -> tryblk_t - | __init__(self, r) -> tryblk_t + | r: tryblk_t const & | | __repr__ = _swig_repr(self) | @@ -64083,9 +73837,11 @@ class tryblk_t(ida_range.rangevec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< range_t > const & | | __getitem__(self, *args) -> 'range_t const &' | __getitem__(self, i) -> range_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64095,18 +73851,24 @@ class tryblk_t(ida_range.rangevec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< range_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: range_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: range_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: range_t const & | | at(self, *args) -> 'range_t const &' | at(self, _idx) -> range_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -64124,52 +73886,74 @@ class tryblk_t(ida_range.rangevec_t) | | erase(self, *args) -> 'qvector< range_t >::iterator' | erase(self, it) -> range_t + | it: qvector< range_t >::iterator + | + | | erase(self, first, last) -> range_t + | first: qvector< range_t >::iterator + | 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 + | x: range_t const & + | + | | find(self, x) -> range_t + | x: range_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=range_t()) + | x: range_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: range_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: range_t * + | len: size_t | | insert(self, *args) -> 'qvector< range_t >::iterator' | insert(self, it, x) -> range_t + | it: qvector< range_t >::iterator + | x: range_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'range_t &' | push_back(self, x) - | push_back(self) -> range_t + | x: range_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: range_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< range_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -64197,13 +73981,15 @@ class tryblks_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< tryblk_t > const & | | __getitem__(self, *args) -> 'tryblk_t const &' | __getitem__(self, i) -> tryblk_t + | i: size_t | | __init__(self, *args) | __init__(self) -> tryblks_t - | __init__(self, x) -> tryblks_t + | x: qvector< tryblk_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -64213,23 +73999,29 @@ class tryblks_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< tryblk_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: tryblk_t const & | | __swig_destroy__ = delete_tryblks_t(...) | delete_tryblks_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: tryblk_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: tryblk_t const & | | at(self, *args) -> 'tryblk_t const &' | at(self, _idx) -> tryblk_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -64253,52 +74045,74 @@ class tryblks_t(builtins.object) | | erase(self, *args) -> 'qvector< tryblk_t >::iterator' | erase(self, it) -> tryblk_t + | it: qvector< tryblk_t >::iterator + | + | | erase(self, first, last) -> tryblk_t + | first: qvector< tryblk_t >::iterator + | 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 + | x: tryblk_t const & + | + | | find(self, x) -> tryblk_t + | x: tryblk_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=tryblk_t()) + | x: tryblk_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: tryblk_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: tryblk_t * + | len: size_t | | insert(self, *args) -> 'qvector< tryblk_t >::iterator' | insert(self, it, x) -> tryblk_t + | it: qvector< tryblk_t >::iterator + | x: tryblk_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'tryblk_t &' | push_back(self, x) - | push_back(self) -> tryblk_t + | x: tryblk_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: tryblk_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< tryblk_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -64364,37 +74178,30 @@ bad start address Help on function add_til in module ida_typeinf: add_til(*args) -> 'int' - 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 + add_til(name, flags) -> int + @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) -> 'uint32' - alloc_type_ordinal(ti) -> uint32 - - \call2{alloc_type_ordinals,ti,1} - - @param ti (C++: til_t *) + alloc_type_ordinal(ti) -> uint32 + @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) - @return: the first ordinal. 0 means failure. + alloc_type_ordinals(ti, qty) -> uint32 + @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: @@ -64407,6 +74214,7 @@ class aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> aloc_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -64415,6 +74223,9 @@ class aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int + | @param v (C++: argloc_t &) + | @param off (C++: int) + | @param size (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64431,41 +74242,36 @@ class aloc_visitor_t(builtins.object) 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: - 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 + append_abi_opts(abi_opts, user_level=False) -> bool + @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) -> 'bool' - append_argloc(out, vloc) -> bool - - Serialize argument location. - - @param out (C++: qtype *) - @param vloc (C++: const argloc_t &) + append_argloc(out, vloc) -> bool + @param out (C++: qtype *) + @param vloc (C++: const argloc_t &) Help on function append_tinfo_covered in module ida_typeinf: append_tinfo_covered(*args) -> 'bool' append_tinfo_covered(out, typid, offset) -> bool + out: rangeset_t * + typid: uint32 + 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 @@ -64473,45 +74279,39 @@ apply_callee_tinfo(*args) -> 'bool' '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 + apply_callee_tinfo(caller, tif) -> bool + @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) -> '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: 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 + apply_cdecl(til, ea, decl, flags=0) -> bool + @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) -> '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 *) - @return: success + apply_named_type(ea, name) -> bool + @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) -> '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 typedoes not exist or the new type is 'better' than the old type, then thenew type will be @@ -64521,48 +74321,43 @@ apply_once_tinfo_and_name(*args) -> 'bool' 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 + apply_once_tinfo_and_name(dea, tif, name) -> bool + @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) -> '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: 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 + apply_tinfo(ea, tif, flags) -> bool + @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) -> '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} - @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 *) + apply_tinfo_to_stkarg(insn, x, v, tif, name) -> bool + @param insn - an ida_ua.insn_t, or an address (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) -> '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 @@ -64580,25 +74375,31 @@ class argloc_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: argloc_t const & | | __init__(self, *args) | __init__(self) -> argloc_t - | __init__(self, r) -> argloc_t + | r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: argloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: argloc_t const & | | __repr__ = _swig_repr(self) | @@ -64606,144 +74407,210 @@ class argloc_t(builtins.object) | delete_argloc_t(self) | | _consume_rrel(self, *args) -> 'bool' + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) -> 'bool' + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) -> 'void' - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) -> 'void' + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) -> 'void' + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) -> 'void' + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg1(self, *args) -> 'void' + | Use 'set_reg1()' + | | _set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | _set_reg2(self, *args) -> 'void' + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) -> 'void' + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) -> 'bool' + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | 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 + | r: argloc_t const & | | consume_rrel(self, *args) -> 'void' + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | 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. | | 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' . | | justify_reg_high(self, *args) -> 'void' + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) -> 'void' + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | 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 static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg1(self, *args) -> 'void' + | Set register location. + | | set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | set_reg2(self, *args) -> 'void' + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) -> 'void' + | Set stack offset location. + | | set_stkoff(self, off) + | @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' + | Assign this == r and r == this. + | | swap(self, r) + | @param r (C++: argloc_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64776,10 +74643,11 @@ class argpart_t(argloc_t) | | __init__(self, *args) | __init__(self, a) -> argpart_t - | __init__(self) -> argpart_t + | a: argloc_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: argpart_t const & | | __repr__ = _swig_repr(self) | @@ -64787,13 +74655,16 @@ class argpart_t(argloc_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' + | Assign this = r and r = this. + | | swap(self, r) + | @param r (C++: argpart_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -64812,155 +74683,223 @@ class argpart_t(argloc_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: argloc_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: argloc_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: argloc_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: argloc_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: argloc_t const & | | _consume_rrel(self, *args) -> 'bool' + | Use 'consume_rrel()' + | | _consume_rrel(self, p) -> bool + | @param p (C++: rrel_t *) | | _consume_scattered(self, *args) -> 'bool' + | Use 'consume_scattered()' + | | _consume_scattered(self, p) -> bool + | @param p (C++: scattered_aloc_t *) | | _set_badloc(self, *args) -> 'void' - | _set_badloc(self) + | Use 'set_badloc()' | | _set_biggest(self, *args) -> 'void' + | Set biggest element in internal union (careful - this function does + | not clean up!) + | | _set_biggest(self, ct, data) + | @param ct (C++: argloc_type_t) + | @param data (C++: biggest_t) | | _set_custom(self, *args) -> 'void' + | Set custom argument location (careful - this function does not clean + | up!) + | | _set_custom(self, ct, pdata) + | @param ct (C++: argloc_type_t) + | @param pdata (C++: void *) | | _set_ea(self, *args) -> 'void' + | Use set_ea + | | _set_ea(self, _ea) + | @param _ea (C++: ea_t) | | _set_reg1(self, *args) -> 'void' + | Use 'set_reg1()' + | | _set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | _set_reg2(self, *args) -> 'void' + | Use 'set_reg2()' + | | _set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | _set_stkoff(self, *args) -> 'void' + | Use 'set_stkoff()' + | | _set_stkoff(self, off) + | @param off (C++: sval_t) | | advance(self, *args) -> 'bool' + | Move the location to point 'delta' bytes further. + | | advance(self, delta) -> bool + | @param delta (C++: int) | | 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 + | r: argloc_t const & | | consume_rrel(self, *args) -> 'void' + | Set register-relative location - can't be NULL. + | | consume_rrel(self, p) + | @param p (C++: rrel_t *) | | consume_scattered(self, *args) -> 'void' + | Set distributed argument location. + | | consume_scattered(self, p) + | @param p (C++: scattered_aloc_t *) | | 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. | | 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' . | | justify_reg_high(self, *args) -> 'void' + | Set register offset to justify it to the upper part of _SLOTSIZE. + | | justify_reg_high(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | justify_stkoff_right(self, *args) -> 'void' + | Set stack offset to right-justify it in _SLOTSIZE. + | | justify_stkoff_right(self, size, _slotsize) + | @param size (C++: size_t) + | @param _slotsize (C++: size_t) | | 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 static ea location. + | | set_ea(self, _ea) + | @param _ea (C++: ea_t) | | set_reg1(self, *args) -> 'void' + | Set register location. + | | set_reg1(self, reg, off=0) + | @param reg (C++: int) + | @param off (C++: int) | | set_reg2(self, *args) -> 'void' + | Set secondary register location. + | | set_reg2(self, _reg1, _reg2) + | @param _reg1 (C++: int) + | @param _reg2 (C++: int) | | set_stkoff(self, *args) -> 'void' + | Set stack offset location. + | | set_stkoff(self, off) + | @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: @@ -64985,13 +74924,15 @@ class argpartvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t + | i: size_t | | __init__(self, *args) | __init__(self) -> argpartvec_t - | __init__(self, x) -> argpartvec_t + | x: qvector< argpart_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65001,23 +74942,29 @@ class argpartvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< argpart_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: argpart_t const & | | __swig_destroy__ = delete_argpartvec_t(...) | delete_argpartvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -65041,52 +74988,74 @@ class argpartvec_t(builtins.object) | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t + | it: qvector< argpart_t >::iterator + | + | | erase(self, first, last) -> argpart_t + | first: qvector< argpart_t >::iterator + | 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 + | x: argpart_t const & + | + | | find(self, x) -> argpart_t + | x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) + | x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: argpart_t * + | len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t + | it: qvector< argpart_t >::iterator + | x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) - | push_back(self) -> argpart_t + | x: argpart_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: argpart_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -65108,6 +75077,74 @@ 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 + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_argtinfo_helper_t(...) + | delete_argtinfo_helper_t(self) + | + | has_delay_slot(self, *args) -> 'bool' + | The call instruction with a delay slot?. + | + | has_delay_slot(self, arg0) -> bool + | arg0: ea_t + | + | is_stkarg_load(self, *args) -> '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 + | + | is_stkarg_load(self, insn, src, dst) -> bool + | @param insn - 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 the operand type as specified. + | + | set_op_tinfo(self, insn, x, tif, name) -> bool + | @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + | @param x (C++: const op_t &) + | @param tif (C++: const tinfo_t &) + | @param name (C++: const char *) + | + | use_arg_tinfos(self, *args) -> 'void' + | This function is to be called by the processor module in response to + | ev_use_arg_types. + | + | use_arg_tinfos(self, caller, fti, rargs) + | @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 + | argtinfo_helper_t_reserved_get(self) -> size_t + | + | thisown + | The membership flag + Help on class array_type_data_t in module ida_typeinf: class array_type_data_t(builtins.object) @@ -65117,6 +75154,8 @@ class array_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, b=0, n=0) -> array_type_data_t + | b: size_t + | n: size_t | | __repr__ = _swig_repr(self) | @@ -65124,7 +75163,10 @@ class array_type_data_t(builtins.object) | delete_array_type_data_t(self) | | swap(self, *args) -> 'void' + | set this = r and r = this + | | swap(self, r) + | @param r (C++: array_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65150,14 +75192,12 @@ class array_type_data_t(builtins.object) 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) + begin_type_updating(utp) + @param utp (C++: update_type_t) Help on class bitfield_type_data_t in module ida_typeinf: @@ -65168,24 +75208,33 @@ class bitfield_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: bitfield_type_data_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: bitfield_type_data_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: bitfield_type_data_t const & | | __init__(self, *args) | __init__(self, _nbytes=0, _width=0, _is_unsigned=False) -> bitfield_type_data_t + | _nbytes: uchar + | _width: uchar + | _is_unsigned: bool | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: bitfield_type_data_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: bitfield_type_data_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: bitfield_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -65194,9 +75243,11 @@ class bitfield_type_data_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: bitfield_type_data_t const & | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: bitfield_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65227,41 +75278,40 @@ class bitfield_type_data_t(builtins.object) 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) + calc_c_cpp_name(name, type, ccn_flags) -> str + @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) -> '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: 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) + calc_number_of_children(loc, tif, dont_deref_ptr=False) -> int + @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) + @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 + out: rangeset_t * + 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 @@ -65278,30 +75328,48 @@ class callregs_t(builtins.object) | | __init__(self, *args) | __init__(self) -> callregs_t - | __init__(self, cc) -> callregs_t + | 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 policy & registers for given CC. + | | init_regs(self, cc) + | @param cc (C++: cm_t) | | reginds(self, *args) -> 'bool' + | Get register indexes within GP/FP arrays. (-1 -> is not present in the + | corresponding array) + | | reginds(self, gp_ind, fp_ind, r) -> bool + | @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' + | Init policy & registers (arrays are -1-terminated) + | | set(self, _policy, gprs, fprs) + | @param _policy (C++: argreg_policy_t) + | @param gprs (C++: const int *) + | @param fprs (C++: const int *) | | ---------------------------------------------------------------------- | Static methods defined here: | | regcount(*args) -> 'int' | regcount(cc) -> int + | cc: cm_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65331,80 +75399,77 @@ Help on function callregs_t_regcount in module ida_typeinf: callregs_t_regcount(*args) -> 'int' callregs_t_regcount(cc) -> int + 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 *) - @return: == 0 means nothing is chosen, otherwise an ordinal number + choose_local_tinfo(ti, title, func=None, def_ord=0, ud=None) -> uint32 + @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) -> '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: 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 + choose_local_tinfo_and_delta(delta, ti, title, func=None, def_ord=0, ud=None) -> uint32 + @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) -> '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 *) - @return: false if nothing is chosen, otherwise true + choose_named_type(out_sym, root_til, title, ntf_flags, predicate=None) -> bool + @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) -> 'void' clear_tinfo_t(_this) + _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 + compact_til(ti) -> bool + @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 + t1: uint32 + t2: uint32 + tcflags: int Help on class const_aloc_visitor_t in module ida_typeinf: @@ -65417,6 +75482,7 @@ class const_aloc_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self) -> const_aloc_visitor_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -65425,6 +75491,9 @@ class const_aloc_visitor_t(builtins.object) | | visit_location(self, *args) -> 'int' | visit_location(self, v, off, size) -> int + | @param v (C++: const argloc_t &) + | @param off (C++: int) + | @param size (C++: int) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65441,150 +75510,140 @@ class const_aloc_visitor_t(builtins.object) 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) + convert_pt_flags_to_hti(pt_flags) -> 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. - @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 + copy_named_type(dsttil, srctil, name) -> uint32 + @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) -> 'void' copy_tinfo_t(_this, r) + _this: tinfo_t * + 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) + create_numbered_type_name(ord) -> str + @param ord (C++: int32) Help on function create_tinfo in module ida_typeinf: create_tinfo(*args) -> 'bool' create_tinfo(_this, bt, bt2, ptr) -> bool + _this: tinfo_t * + bt: type_t + bt2: type_t + 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}. 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) - @return: success + del_named_type(ti, name, ntf_flags) -> bool + @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) -> 'bool' - del_numbered_type(ti, ordinal) -> bool - - Delete a numbered type. - - @param ti (C++: til_t *) - @param ordinal (C++: uint32) + del_numbered_type(ti, ordinal) -> bool + @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 *) + del_til(name) -> bool + @param name (C++: const char *) Help on function del_tinfo_attr in module ida_typeinf: del_tinfo_attr(*args) -> 'bool' del_tinfo_attr(tif, key, make_copy) -> bool + tif: tinfo_t * + key: qstring const & + make_copy: bool 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 *) - @return: success + deref_ptr(ptr_ea, tif, closure_obj=None) -> bool + @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) -> 'bool' deserialize_tinfo(tif, til, ptype, pfields, pfldcmts) -> bool + tif: tinfo_t * + til: til_t const * + ptype: type_t const ** + pfields: p_list const ** + pfldcmts: p_list const ** Help on function dstr_tinfo in module ida_typeinf: dstr_tinfo(*args) -> 'char const *' dstr_tinfo(tif) -> char const * + 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 &) - @param praloc_bits (C++: int) + dump_func_type_data(fti, praloc_bits) -> str + @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) -> '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) + end_type_updating(utp) + @param utp (C++: update_type_t) Help on class enum_member_t in module ida_typeinf: @@ -65595,12 +75654,14 @@ class enum_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: enum_member_t const & | | __init__(self, *args) | __init__(self) -> enum_member_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: enum_member_t const & | | __repr__ = _swig_repr(self) | @@ -65609,6 +75670,7 @@ class enum_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: enum_member_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65645,13 +75707,15 @@ class enum_member_vec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t + | i: size_t | | __init__(self, *args) | __init__(self) -> enum_member_vec_t - | __init__(self, x) -> enum_member_vec_t + | 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. @@ -65661,23 +75725,29 @@ class enum_member_vec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -65701,52 +75771,74 @@ class enum_member_vec_t(builtins.object) | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | + | | erase(self, first, last) -> enum_member_t + | first: qvector< enum_member_t >::iterator + | 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 + | x: enum_member_t const & + | + | | find(self, x) -> enum_member_t + | x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) + | x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: enum_member_t * + | len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) - | push_back(self) -> enum_member_t + | x: enum_member_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: enum_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< enum_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -65782,6 +75874,7 @@ class enum_type_data_t(enum_member_vec_t) | | __init__(self, *args) | __init__(self, _bte=BTE_ALWAYS|BTE_HEX) -> enum_type_data_t + | _bte: bte_t | | __repr__ = _swig_repr(self) | @@ -65810,7 +75903,10 @@ class enum_type_data_t(enum_member_vec_t) | is_udec(self) -> bool | | swap(self, *args) -> 'void' + | swap two instances + | | swap(self, r) + | @param r (C++: enum_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -65832,9 +75928,11 @@ class enum_type_data_t(enum_member_vec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __getitem__(self, *args) -> 'enum_member_t const &' | __getitem__(self, i) -> enum_member_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -65844,18 +75942,24 @@ class enum_type_data_t(enum_member_vec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< enum_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: enum_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: enum_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: enum_member_t const & | | at(self, *args) -> 'enum_member_t const &' | at(self, _idx) -> enum_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -65879,46 +75983,67 @@ class enum_type_data_t(enum_member_vec_t) | | erase(self, *args) -> 'qvector< enum_member_t >::iterator' | erase(self, it) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | + | | erase(self, first, last) -> enum_member_t + | first: qvector< enum_member_t >::iterator + | 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 + | x: enum_member_t const & + | + | | find(self, x) -> enum_member_t + | x: enum_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=enum_member_t()) + | x: enum_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: enum_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: enum_member_t * + | len: size_t | | insert(self, *args) -> 'qvector< enum_member_t >::iterator' | insert(self, it, x) -> enum_member_t + | it: qvector< enum_member_t >::iterator + | x: enum_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'enum_member_t &' | push_back(self, x) - | push_back(self) -> enum_member_t + | x: enum_member_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: enum_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -65943,84 +76068,71 @@ 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 - - Deserialize argument location. - - @param vloc (C++: argloc_t *) - @param ptype (C++: const type_t **) - @param is_retval (C++: bool) + extract_argloc(vloc, ptype, is_retval) -> bool + @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) -> 'int' find_tinfo_udt_member(udm, typid, strmem_flags) -> int + udm: udt_member_t * + typid: uint32 + 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. 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) + first_named_type(ti, ntf_flags) -> char const * + @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) -> '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) + for_all_arglocs(vv, vloc, size, off=0) -> 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()' - - @param vv (C++: const_aloc_visitor_t &) - @param vloc (C++: const argloc_t &) - @param size (C++: int) - @param off (C++: int) + for_all_const_arglocs(vv, vloc, size, off=0) -> int + @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) -> 'void' - free_til(ti) - - Free memory allocated by til. - - @param ti (C++: til_t *) + free_til(ti) + @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_has_stkframe_hole(ea, fti) -> bool + @param ea (C++: ea_t) + @param fti (C++: const func_type_data_t &) Help on class func_type_data_t in module ida_typeinf: @@ -66043,13 +76155,22 @@ class func_type_data_t(funcargvec_t) | delete_func_type_data_t(self) | | dump(self, *args) -> 'bool' + | Dump information that is not always visible in the function prototype. + | (argument locations, return location, total stkarg size) + | | dump(self, praloc_bits=0x02) -> bool + | @param praloc_bits (C++: int) | | get_call_method(self, *args) -> 'int' | get_call_method(self) -> int | | guess_cc(self, *args) -> 'cm_t' + | Guess function calling convention use the following info: argument + | locations and 'stkargs' + | | guess_cc(self, purged, cc_flags) -> cm_t + | @param purged (C++: int) + | @param cc_flags (C++: int) | | is_high(self, *args) -> 'bool' | is_high(self) -> bool @@ -66065,6 +76186,7 @@ class func_type_data_t(funcargvec_t) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: func_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66095,9 +76217,11 @@ class func_type_data_t(funcargvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66107,18 +76231,24 @@ class func_type_data_t(funcargvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: funcarg_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66142,46 +76272,67 @@ class func_type_data_t(funcargvec_t) | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | + | | erase(self, first, last) -> funcarg_t + | first: qvector< funcarg_t >::iterator + | 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 + | x: funcarg_t const & + | + | | find(self, x) -> funcarg_t + | x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) + | x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: funcarg_t * + | len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) - | push_back(self) -> funcarg_t + | x: funcarg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: funcarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -66212,12 +76363,14 @@ class funcarg_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: funcarg_t const & | | __init__(self, *args) | __init__(self) -> funcarg_t | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: funcarg_t const & | | __repr__ = _swig_repr(self) | @@ -66265,13 +76418,15 @@ class funcargvec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __getitem__(self, *args) -> 'funcarg_t const &' | __getitem__(self, i) -> funcarg_t + | i: size_t | | __init__(self, *args) | __init__(self) -> funcargvec_t - | __init__(self, x) -> funcargvec_t + | x: qvector< funcarg_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -66281,23 +76436,29 @@ class funcargvec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< funcarg_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: funcarg_t const & | | __swig_destroy__ = delete_funcargvec_t(...) | delete_funcargvec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: funcarg_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: funcarg_t const & | | at(self, *args) -> 'funcarg_t const &' | at(self, _idx) -> funcarg_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -66321,52 +76482,74 @@ class funcargvec_t(builtins.object) | | erase(self, *args) -> 'qvector< funcarg_t >::iterator' | erase(self, it) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | + | | erase(self, first, last) -> funcarg_t + | first: qvector< funcarg_t >::iterator + | 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 + | x: funcarg_t const & + | + | | find(self, x) -> funcarg_t + | x: funcarg_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=funcarg_t()) + | x: funcarg_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: funcarg_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: funcarg_t * + | len: size_t | | insert(self, *args) -> 'qvector< funcarg_t >::iterator' | insert(self, it, x) -> funcarg_t + | it: qvector< funcarg_t >::iterator + | x: funcarg_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'funcarg_t &' | push_back(self, x) - | push_back(self) -> funcarg_t + | x: funcarg_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: funcarg_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< funcarg_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -66391,69 +76574,60 @@ class funcargvec_t(builtins.object) 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 *) - @param mangle (C++: bool) - @param cc (C++: cm_t) - @param type (C++: const tinfo_t *) + gen_decorate_name(name, mangle, cc, type) -> str + @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) -> 'void' gen_use_arg_tinfos(caller, fti, rargs, set_optype, is_stkarg_load, has_delay_slot) + @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 gen_use_arg_tinfos2 in module ida_typeinf: + +gen_use_arg_tinfos2(*args) -> 'void' + 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 *) + gen_use_arg_tinfos2(_this, caller, fti, rargs) + @param _this (C++: struct 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 *) - @param ordinal (C++: uint32) + get_alias_target(ti, ordinal) -> uint32 + @param ti (C++: const til_t *) + @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 @@ -66462,122 +76636,91 @@ get_arg_addrs(*args) -> 'PyObject *' 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) + get_base_type(t) -> 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) + get_comp(comp) -> 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) + get_compiler_abbr(id) -> char const * + @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) + get_compiler_name(id) -> char const * + @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 *) + get_compilers(ids, names, abbrs) + @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: 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 + get_enum_member_expr(tif, serial, value) -> str + @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) -> 'type_t' - get_full_type(t) -> type_t - - Get basic type bits + type flags ( 'TYPE_FULL_MASK' ) - - @param t (C++: type_t) + get_full_type(t) -> type_t + @param t (C++: type_t) 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: the type to inspect (C++: const tinfo_t &) + get_idainfo_by_type(tif) -> bool + @param tif: the type to inspect (C++: const tinfo_t &) 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. @@ -66586,8 +76729,6 @@ Help on function get_named_type in module ida_typeinf: get_named_type(*args) -> 'PyObject *' 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 @@ -66599,152 +76740,153 @@ get_named_type(*args) -> 'PyObject *' Help on function get_named_type64 in module ida_typeinf: get_named_type64(*args) -> 'PyObject *' - 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) + get_named_type64(til, name, ntf_flags) -> PyObject * + til: til_t const * + @param name (C++: const char *) + @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 * - - Retrieve a type by its ordinal number. - - @param ordinal (C++: uint32) + get_numbered_type(til, ordinal) -> PyObject * + 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 NULL - @param ti (C++: const til_t *) - @param ordinal (C++: uint32) + get_numbered_type_name(ti, ordinal) -> char const * + @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) -> '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 *) - @param type (C++: const type_t *) + get_ordinal_from_idb_type(name, type) -> int + @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) -> 'uint32' - get_ordinal_qty(ti) -> uint32 - - Get number of allocated ordinals. - @param ti (C++: const til_t *) - @return: uint32(-1) if failed + get_ordinal_qty(ti) -> uint32 + @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) -> 'type_t' get_scalar_bt(size) -> type_t + @param size (C++: int) Help on function get_stock_tinfo in module ida_typeinf: get_stock_tinfo(*args) -> 'bool' get_stock_tinfo(tif, id) -> bool + tif: tinfo_t * + 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 + typid: uint32 + key: qstring const & + bv: bytevec_t * + 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 + typid: uint32 + tav: type_attrs_t * + 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 + typid: uint32 + bt2: type_t + 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 + outptr: void * + typid: uint32 + 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 + typid: uint32 + 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 + p_effalign: uint32 * + typid: uint32 + 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) + get_type_flags(t) -> 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 *) - @param name (C++: const char *) + get_type_ordinal(ti, name) -> int32 + @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) -> '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 &) - @param npurged (C++: int) - @param cc_flags (C++: int) + guess_func_cc(fti, npurged, cc_flags) -> cm_t + @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) -> '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 + guess_tinfo(tif, id) -> int + @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: @@ -66760,6 +76902,9 @@ class ida_lowertype_helper_t(lowertype_helper_t) | | __init__(self, *args) | __init__(self, _tif, _ea, _pb) -> ida_lowertype_helper_t + | _tif: tinfo_t const & + | _ea: ea_t + | _pb: int | | __repr__ = _swig_repr(self) | @@ -66768,9 +76913,13 @@ 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 (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, arg3) -> int + | @param candidate (C++: const tinfo_t &) + | arg3: func_type_data_t const & | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -66791,187 +76940,190 @@ 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 + ordinal: int + flags: int + buf: char * + maxsize: size_t 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 + 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 * + ordinal: int Help on function idc_get_type in module ida_typeinf: idc_get_type(*args) -> 'size_t' idc_get_type(ea) -> str + 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 * + ea: ea_t Help on function idc_guess_type in module ida_typeinf: idc_guess_type(*args) -> 'size_t' idc_guess_type(ea) -> str + 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 * + ti: til_t * + decl: char const * + flags: int Help on function idc_parse_types in module ida_typeinf: idc_parse_types(*args) -> 'int' idc_parse_types(input, flags) -> int + input: char const * + 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 * + type: type_t const * + fields: p_list const * + name: char const * + 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 + ordinal: int + dcl: char const * + 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 + import_type(til, idx, name, flags=0) -> tid_t + @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) -> 'bool' - is_autosync(name, type) -> bool - is_autosync(name, tif) -> bool - - Is the specified idb type automatically synchronized? + is_autosync(name, type) -> bool + @param name (C++: const char *) + @param type (C++: const type_t *) - @param name (C++: const char *) - @param type (C++: const type_t *) + + is_autosync(name, tif) -> bool + @param name (C++: const char *) + 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) + is_code_far(cm) -> bool + @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) + is_comp_unsure(comp) -> 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) + is_data_far(cm) -> bool + @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_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 *) - @param ord (C++: uint32 *) + is_ordinal_name(name, ord=None) -> bool + @param name (C++: const char *) + @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?.this function is valid only for x86 code - @param cm (C++: cm_t) + is_purging_cc(cm) -> bool + @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 (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_struct in module ida_typeinf: is_restype_struct(*args) -> 'bool' is_restype_struct(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_struni in module ida_typeinf: is_restype_struni(*args) -> 'bool' is_restype_struni(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) Help on function is_restype_void in module ida_typeinf: is_restype_void(*args) -> 'bool' is_restype_void(til, type) -> bool + @param til (C++: const til_t *) + @param type (C++: const type_t *) 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 @@ -66980,539 +77132,405 @@ is_sdacl_byte(*args) -> 'bool' in udt headers and as udt field postfixes. (see "sdacl-typeattrs" in the type bit definitions) - @param t (C++: type_t) + is_sdacl_byte(t) -> bool + @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) + is_tah_byte(t) -> bool + @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) + is_type_arithmetic(t) -> bool + @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) + is_type_array(t) -> bool + @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) + is_type_bitfld(t) -> bool + @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) + is_type_bool(t) -> 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) + is_type_char(t) -> bool + @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) + is_type_complex(t) -> bool + @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) + is_type_const(t) -> bool + @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) + is_type_double(t) -> bool + @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) + is_type_enum(t) -> bool + @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) + is_type_ext_arithmetic(t) -> bool + @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) + is_type_ext_integral(t) -> bool + @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) + is_type_float(t) -> bool + @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) + is_type_floating(t) -> bool + @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) + is_type_func(t) -> bool + @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) + is_type_int(bt) -> bool + @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) + is_type_int128(t) -> bool + @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) + is_type_int16(t) -> bool + @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) + is_type_int32(t) -> bool + @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) + is_type_int64(t) -> bool + @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) + is_type_integral(t) -> 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) + is_type_ldouble(t) -> bool + @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) + is_type_paf(t) -> bool + @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) + is_type_partial(t) -> bool + @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) + is_type_ptr(t) -> bool + @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) + is_type_ptr_or_array(t) -> bool + @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) + is_type_struct(t) -> bool + @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) + is_type_struni(t) -> bool + @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) + is_type_sue(t) -> bool + @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) + is_type_tbyte(t) -> bool + @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) + is_type_typedef(t) -> bool + @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) + is_type_uchar(t) -> bool + @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) + is_type_uint(t) -> bool + @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) + is_type_uint128(t) -> bool + @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) + is_type_uint16(t) -> bool + @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) + is_type_uint32(t) -> bool + @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) + is_type_uint64(t) -> bool + @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) + is_type_union(t) -> bool + @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) + is_type_unknown(t) -> bool + @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) + is_type_void(t) -> bool + @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) + is_type_volatile(t) -> bool + @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) + is_typeid_last(t) -> bool + @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) + is_user_cc(cm) -> bool + @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) + is_vararg_cc(cm) -> bool + @param cm (C++: cm_t) Help on function lexcompare_tinfo in module ida_typeinf: lexcompare_tinfo(*args) -> 'int' lexcompare_tinfo(t1, t2, arg3) -> int + t1: uint32 + t2: uint32 + 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. 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 + load_til(name, tildir=None) -> til_t + @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) -> 'qstring *' - load_til_header(tildir, name) -> til_t - - Get human-readable til description. - - @param tildir (C++: const char *) - @param name (C++: const char *) + load_til_header(tildir, name) -> til_t + @param tildir (C++: const char *) + @param name (C++: const char *) 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, @@ -67523,10 +77541,14 @@ lower_type(*args) -> 'int' 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 *) + lower_type(til, tif, name=None, _helper=None) -> int + @param til (C++: til_t *) + @param tif (C++: tinfo_t *) + @param name (C++: const char *) + @param _helper (C++: lowertype_helper_t *) + @retval: 1 - removed FTI_HIGH , + @retval: 2 - made substantial changes + @retval: -1 - failure Help on class lowertype_helper_t in module ida_typeinf: @@ -67545,9 +77567,13 @@ class lowertype_helper_t(builtins.object) | | func_has_stkframe_hole(self, *args) -> 'bool' | func_has_stkframe_hole(self, candidate, candidate_data) -> bool + | @param candidate (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | get_func_purged_bytes(self, *args) -> 'int' | get_func_purged_bytes(self, candidate, candidate_data) -> int + | @param candidate (C++: const tinfo_t &) + | @param candidate_data (C++: const func_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67564,76 +77590,64 @@ class lowertype_helper_t(builtins.object) 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 *) + new_til(name, desc) -> til_t + @param name (C++: const char *) + @param desc (C++: const char *) 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. 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) + next_named_type(ti, name, ntf_flags) -> char const * + @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) -> 'bool' - 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 *) + optimize_argloc(vloc, size, gaps) -> bool + @param vloc (C++: argloc_t *) + @param size (C++: int) + @param gaps (C++: const rangeset_t *) + @retval: true - success + @retval: false - the input argloc was illegal 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 *) - @param tif (C++: const tinfo_t &) - @param bytes (C++: relobj_t *) - @param objoff (C++: void *) - @param pio_flags (C++: int) + pack_idcobj_to_bv(obj, tif, bytes, objoff, pio_flags=0) -> error_t + @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) -> '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) + pack_idcobj_to_idb(obj, tif, ea, pio_flags=0) -> error_t + @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) -> 'PyObject *' 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 @@ -67648,8 +77662,6 @@ 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 @@ -67662,37 +77674,36 @@ pack_object_to_idb(*args) -> 'PyObject *' 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.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) + parse_decl(tif, til, decl, flags) -> str + @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) + @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: 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. + parse_decls(til, input, printer, hti_flags) -> int + @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: @@ -67705,6 +77716,7 @@ class predicate_t(builtins.object) | | __init__(self, *args) | __init__(self) -> predicate_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -67713,6 +77725,10 @@ class predicate_t(builtins.object) | | should_display(self, *args) -> 'bool' | should_display(self, til, name, type, fields) -> bool + | @param til (C++: const til_t *) + | @param name (C++: const char *) + | @param type (C++: const type_t *) + | @param fields (C++: const p_list *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67729,46 +77745,51 @@ class predicate_t(builtins.object) 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) + print_argloc(vloc, size=0, vflags=0) -> str + @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) -> 'PyObject *' - 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) + print_decls(printer, til, py_ordinals, flags) -> PyObject * + @param printer: a handler for printing text (C++: text_sink_t &) + @param til: the type library holding the ordinals (C++: til_t *) + py_ordinals: PyObject * + @param flags: flags for the algorithm. A combination of PDF_* + constants (C++: uint32) + @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 + prefix: char const * + indent: int + cmtindent: int + flags: int + tif: tinfo_t const * + name: char const * + 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) - @return: success + print_type(ea, prtype_flags) -> str + @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: @@ -67779,12 +77800,18 @@ class ptr_type_data_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | 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 + | c: tinfo_t + | bps: uchar + | p: tinfo_t + | d: int32 | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: ptr_type_data_t const & | | __repr__ = _swig_repr(self) | @@ -67792,13 +77819,16 @@ class ptr_type_data_t(builtins.object) | 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' + | Set this = r and r = this. + | | swap(self, r) + | @param r (C++: ptr_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -67839,6 +77869,9 @@ 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 + typid: uint32 + v: uint64 + bitoff: int Help on class reginfovec_t in module ida_typeinf: @@ -67849,13 +77882,15 @@ class reginfovec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< reg_info_t > const & | | __getitem__(self, *args) -> 'reg_info_t const &' | __getitem__(self, i) -> reg_info_t + | i: size_t | | __init__(self, *args) | __init__(self) -> reginfovec_t - | __init__(self, x) -> reginfovec_t + | 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. @@ -67864,20 +77899,25 @@ class reginfovec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< reg_info_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: reg_info_t const & | | __swig_destroy__ = delete_reginfovec_t(...) | delete_reginfovec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: reg_info_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: reg_info_t const & | | append = push_back(self, *args) -> 'reg_info_t &' | @@ -67905,52 +77945,74 @@ class reginfovec_t(builtins.object) | | erase(self, *args) -> 'qvector< reg_info_t >::iterator' | erase(self, it) -> reg_info_t + | it: qvector< reg_info_t >::iterator + | + | | erase(self, first, last) -> reg_info_t + | first: qvector< reg_info_t >::iterator + | 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 + | x: reg_info_t const & + | + | | find(self, x) -> reg_info_t + | x: reg_info_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=reg_info_t()) + | x: reg_info_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: reg_info_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: reg_info_t * + | len: size_t | | insert(self, *args) -> 'qvector< reg_info_t >::iterator' | insert(self, it, x) -> reg_info_t + | it: qvector< reg_info_t >::iterator + | x: reg_info_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'reg_info_t &' | push_back(self, x) - | push_back(self) -> reg_info_t + | x: reg_info_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: reg_info_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< reg_info_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68042,6 +78104,7 @@ class regobjs_t(regobjvec_t) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68051,9 +78114,12 @@ class regobjs_t(regobjvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: regobj_t const & | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -68077,7 +78143,12 @@ class regobjs_t(regobjvec_t) | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t + | it: qvector< regobj_t >::iterator + | + | | erase(self, first, last) -> regobj_t + | first: qvector< regobj_t >::iterator + | last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -68087,35 +78158,47 @@ class regobjs_t(regobjvec_t) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) + | x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: regobj_t * + | len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t + | it: qvector< regobj_t >::iterator + | x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) - | push_back(self) -> regobj_t + | x: regobj_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: regobj_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68138,10 +78221,11 @@ class regobjvec_t(builtins.object) | | __getitem__(self, *args) -> 'regobj_t const &' | __getitem__(self, i) -> regobj_t + | i: size_t | | __init__(self, *args) | __init__(self) -> regobjvec_t - | __init__(self, x) -> regobjvec_t + | x: qvector< regobj_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68153,12 +78237,15 @@ class regobjvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: regobj_t const & | | __swig_destroy__ = delete_regobjvec_t(...) | delete_regobjvec_t(self) | | at(self, *args) -> 'regobj_t const &' | at(self, _idx) -> regobj_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -68182,7 +78269,12 @@ class regobjvec_t(builtins.object) | | erase(self, *args) -> 'qvector< regobj_t >::iterator' | erase(self, it) -> regobj_t + | it: qvector< regobj_t >::iterator + | + | | erase(self, first, last) -> regobj_t + | first: qvector< regobj_t >::iterator + | last: qvector< regobj_t >::iterator | | extract(self, *args) -> 'regobj_t *' | extract(self) -> regobj_t @@ -68192,35 +78284,47 @@ class regobjvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=regobj_t()) + | x: regobj_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: regobj_t * + | len: size_t | | insert(self, *args) -> 'qvector< regobj_t >::iterator' | insert(self, it, x) -> regobj_t + | it: qvector< regobj_t >::iterator + | x: regobj_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'regobj_t &' | push_back(self, x) - | push_back(self) -> regobj_t + | x: regobj_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: regobj_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< regobj_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68241,49 +78345,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 (C++: const char *) + @param user_level (C++: 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 + '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 &) + remove_pointer(tif) -> tinfo_t + @param tif (C++: const tinfo_t &) Help on function remove_tinfo_pointer in module ida_typeinf: remove_tinfo_pointer(*args) -> 'PyObject *' - 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 *) + remove_tinfo_pointer(tif, name, til) -> PyObject * + @param tif (C++: tinfo_t *) + name: char const * + @param til (C++: const til_t *) 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: type library to use. may be NULL. (C++: til_t *) - @param tif: type to modify (in/out) (C++: tinfo_t *) + replace_ordinal_typerefs(til, tif) -> int + @param til: type library to use. may be NULL. (C++: til_t *) + @param tif: type to modify (in/out) (C++: tinfo_t *) + @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 (C++: const til_t *) + @param type (C++: const type_t *) Help on class rrel_t in module ida_typeinf: @@ -68322,6 +78426,11 @@ 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 + tif: tinfo_t * + til: til_t * + ord: size_t + name: char const * + ntf_flags: int Help on class scattered_aloc_t in module ida_typeinf: @@ -68354,9 +78463,11 @@ class scattered_aloc_t(argpartvec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< argpart_t > const & | | __getitem__(self, *args) -> 'argpart_t const &' | __getitem__(self, i) -> argpart_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -68366,18 +78477,24 @@ class scattered_aloc_t(argpartvec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< argpart_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: argpart_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: argpart_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: argpart_t const & | | at(self, *args) -> 'argpart_t const &' | at(self, _idx) -> argpart_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -68401,52 +78518,74 @@ class scattered_aloc_t(argpartvec_t) | | erase(self, *args) -> 'qvector< argpart_t >::iterator' | erase(self, it) -> argpart_t + | it: qvector< argpart_t >::iterator + | + | | erase(self, first, last) -> argpart_t + | first: qvector< argpart_t >::iterator + | 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 + | x: argpart_t const & + | + | | find(self, x) -> argpart_t + | x: argpart_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=argpart_t()) + | x: argpart_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: argpart_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: argpart_t * + | len: size_t | | insert(self, *args) -> 'qvector< argpart_t >::iterator' | insert(self, it, x) -> argpart_t + | it: qvector< argpart_t >::iterator + | x: argpart_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'argpart_t &' | push_back(self, x) - | push_back(self) -> argpart_t + | x: argpart_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: argpart_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< argpart_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -68469,124 +78608,124 @@ Help on function score_tinfo in module ida_typeinf: score_tinfo(*args) -> 'uint32' score_tinfo(tif) -> uint32 + 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 + type: qtype * + fields: qtype * + fldcmts: qtype * + tif: tinfo_t const * + 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 *) - @param user_level (C++: bool) + set_abi_name(abiname, user_level=False) -> bool + @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) -> 'void' - set_c_header_path(incdir) - - Set include directory path the target compiler. - - @param incdir (C++: const char *) + set_c_header_path(incdir) + @param incdir (C++: const char *) 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 *) + set_c_macros(macros) + @param macros (C++: const char *) 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 *) - @return: success + set_compiler(cc, flags, abiname=None) -> bool + @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) -> '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 *) + set_compiler_id(id, abiname=None) -> bool + @param id (C++: comp_t) + @param abiname (C++: const char *) Help on function set_compiler_string in module ida_typeinf: set_compiler_string(*args) -> 'bool' set_compiler_string(compstr, user_level) -> bool + @param compstr: - compiler description in form : (C++: + const char *) + @param user_level: - initiated by user if TRUE (C++: bool) + @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 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 *) + set_numbered_type(ti, ordinal, ntf_flags, name, type, fields=None, cmt=None, fldcmts=None, sclass=None) -> tinfo_code_t + @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) -> 'bool' set_tinfo_attr(tif, ta, may_overwrite) -> bool + tif: tinfo_t * + ta: type_attr_t const & + may_overwrite: bool Help on function set_tinfo_attrs in module ida_typeinf: set_tinfo_attrs(*args) -> 'bool' set_tinfo_attrs(tif, ta) -> bool + tif: tinfo_t * + 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 + tif: tinfo_t * + sta_prop: int + 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) + set_type_alias(ti, src_ordinal, dst_ordinal) -> bool + @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: @@ -68597,6 +78736,9 @@ class simd_info_t(builtins.object) | | __init__(self, *args) | __init__(self, nm=None, sz=0, memt=BTF_UNK) -> simd_info_t + | nm: char const * + | sz: uint16 + | memt: type_t | | __repr__ = _swig_repr(self) | @@ -68605,6 +78747,7 @@ class simd_info_t(builtins.object) | | match_pattern(self, *args) -> 'bool' | match_pattern(self, pattern) -> bool + | @param pattern (C++: const simd_info_t *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68633,20 +78776,18 @@ class simd_info_t(builtins.object) 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: 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 + store_til(ti, tildir, name) -> bool + @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: @@ -68659,6 +78800,7 @@ class text_sink_t(builtins.object) | | __init__(self, *args) | __init__(self) -> text_sink_t + | self: PyObject * | | __repr__ = _swig_repr(self) | @@ -68667,6 +78809,7 @@ class text_sink_t(builtins.object) | | _print(self, *args) -> 'int' | _print(self, str) -> int + | str: char const * | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -68689,6 +78832,8 @@ class til_symbol_t(builtins.object) | | __init__(self, *args) | __init__(self, n=None, t=None) -> til_symbol_t + | n: char const * + | t: til_t const * | | __repr__ = _swig_repr(self) | @@ -68730,12 +78875,13 @@ class til_t(builtins.object) | | base(self, *args) -> 'til_t *' | base(self, n) -> til_t + | 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: @@ -68782,26 +78928,35 @@ class tinfo_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: tinfo_t const & | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: tinfo_t const & | | __gt__(self, *args) -> 'bool' | __gt__(self, r) -> bool + | r: tinfo_t const & | | __init__(self, *args) | __init__(self) -> tinfo_t - | __init__(self, decl_type) -> tinfo_t + | decl_type: type_t + | + | | __init__(self, r) -> tinfo_t + | r: tinfo_t const & | | __le__(self, *args) -> 'bool' | __le__(self, r) -> bool + | r: tinfo_t const & | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: tinfo_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: tinfo_t const & | | __repr__ = _swig_repr(self) | @@ -68813,27 +78968,49 @@ 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 + | name: char const * + | prtype_flags: int + | indent: int + | cmtindent: int + | prefix: char const * + | cmt: char const * | | append_covered(self, *args) -> 'bool' + | Calculate set of covered bytes for the type + | | append_covered(self, out, offset=0) -> bool + | @param out: pointer to the output buffer. covered bytes will be + | appended to it. (C++: rangeset_t *) + | @param offset (C++: uint64) | | calc_gaps(self, *args) -> 'bool' + | Calculate set of padding bytes for the type + | | calc_gaps(self, out) -> bool + | @param out: pointer to the output buffer; old buffer contents will be + | lost. (C++: rangeset_t *) | | calc_purged_bytes(self, *args) -> 'int' - | calc_purged_bytes(self) -> int + | 'BT_FUNC' : Calculate number of purged bytes | | 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' + | Calculate the udt alignments using the field offsets/sizes and the + | total udt size This function does not work on typerefs + | | calc_udt_aligns(self, sudt_flags=0x0004) -> bool + | @param sudt_flags (C++: int) | | change_sign(self, *args) -> 'bool' + | Change the type sign. Works only for the types that may have sign. + | | change_sign(self, sign) -> bool + | @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) @@ -68846,528 +79023,764 @@ class tinfo_t(builtins.object) | | compare(self, *args) -> 'int' | compare(self, r) -> int + | r: tinfo_t const & | | compare_with(self, *args) -> 'bool' + | Compare two types, based on given flags (see 'tinfo_t comparison + | flags' ) + | | compare_with(self, r, tcflags=0) -> bool + | @param r (C++: const tinfo_t &) + | @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 (C++: const array_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_array(self, tif, nelems=0, base=0, decl_type=BT_ARRAY) -> bool + | tif: tinfo_t const & + | nelems: uint32 + | base: uint32 + | @param decl_type (C++: type_t) | | create_bitfield(self, *args) -> 'bool' | create_bitfield(self, p, decl_type=BT_BITFIELD) -> bool + | @param p (C++: const bitfield_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_bitfield(self, nbytes, width, is_unsigned=False, decl_type=BT_BITFIELD) -> bool + | nbytes: uchar + | width: uchar + | is_unsigned: bool + | @param decl_type (C++: type_t) | | create_enum(self, *args) -> 'bool' | create_enum(self, p, decl_type=BTF_ENUM) -> bool + | p: enum_type_data_t & + | decl_type: type_t | | create_forward_decl(self, *args) -> 'tinfo_code_t' + | Create a forward declaration. decl_type: 'BTF_STRUCT' , 'BTF_UNION' , + | or 'BTF_ENUM' + | | create_forward_decl(self, til, decl_type, name, ntf_flags=0) -> tinfo_code_t + | @param til (C++: til_t *) + | @param decl_type (C++: type_t) + | @param name (C++: const char *) + | @param ntf_flags (C++: int) | | create_func(self, *args) -> 'bool' | create_func(self, p, decl_type=BT_FUNC) -> bool + | p: func_type_data_t & + | decl_type: type_t | | create_ptr(self, *args) -> 'bool' | create_ptr(self, p, decl_type=BT_PTR) -> bool + | @param p (C++: const ptr_type_data_t &) + | @param decl_type (C++: type_t) + | + | | create_ptr(self, tif, bps=0, decl_type=BT_PTR) -> bool + | tif: tinfo_t const & + | bps: uchar + | @param decl_type (C++: type_t) | | create_simple_type(self, *args) -> 'bool' | create_simple_type(self, decl_type) -> bool + | @param decl_type (C++: type_t) | | create_typedef(self, *args) -> 'void' | create_typedef(self, p, decl_type=BTF_TYPEDEF, try_ordinal=True) -> bool + | @param p (C++: const typedef_type_data_t &) + | @param decl_type (C++: type_t) + | @param try_ordinal (C++: bool) + | + | | create_typedef(self, til, name, decl_type=BTF_TYPEDEF, try_ordinal=True) + | til: til_t const * + | name: char const * + | @param decl_type (C++: type_t) + | @param try_ordinal (C++: bool) + | + | | create_typedef(self, til, ord, decl_type=BTF_TYPEDEF) + | til: til_t const * + | ord: uint + | @param decl_type (C++: type_t) | | create_udt(self, *args) -> 'bool' | create_udt(self, p, decl_type) -> bool + | p: udt_type_data_t & + | decl_type: type_t | | del_attr(self, *args) -> 'bool' + | Del a type attribute. typerefs cannot be modified by this function. + | | del_attr(self, key, make_copy=True) -> bool + | @param key (C++: const qstring &) + | @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 a type string into a 'tinfo_t' object. + | | deserialize(self, til, ptype, pfields=None, pfldcmts=None) -> bool + | @param til (C++: const til_t *) + | @param ptype (C++: const type_t **) + | @param pfields (C++: const p_list **) + | @param pfldcmts (C++: const p_list **) + | + | | deserialize(self, til, type, fields, cmts=None) -> bool + | @param til (C++: const til_t *) + | type: type_t const * + | fields: p_list const * + | 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 (C++: const tinfo_t &) | | find_udt_member(self, *args) -> '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' ) + | | find_udt_member(self, udm, strmem_flags) -> int + | @param udm (C++: struct udt_member_t *) + | @param strmem_flags (C++: int) + | @return: the index of the found member or -1 | | get_array_details(self, *args) -> 'bool' + | Get the array specific info. + | | get_array_details(self, ai) -> bool + | @param ai (C++: array_type_data_t *) | | get_array_element(self, *args) -> 'tinfo_t' - | get_array_element(self) -> tinfo_t + | 'BT_ARRAY' : get type of array element. See also + | 'get_ptrarr_object()' | | get_array_nelems(self, *args) -> 'int' - | get_array_nelems(self) -> int + | 'BT_ARRAY' : get number of elements (-1 means error) | | get_attr(self, *args) -> 'PyObject *' + | Get a type attribute. + | | get_attr(self, key, all_attrs=True) -> PyObject * + | @param key (C++: const qstring &) + | @param all_attrs (C++: bool) | | get_attrs(self, *args) -> 'bool' + | Get type attributes (all_attrs: include attributes of referenced + | types, if any) + | | get_attrs(self, tav, all_attrs=False) -> bool + | @param tav (C++: type_attrs_t *) + | @param all_attrs (C++: bool) | | get_bitfield_details(self, *args) -> 'bool' + | Get the bitfield specific info. + | | get_bitfield_details(self, bi) -> bool + | @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 the enum specific info. + | | get_enum_details(self, ei) -> bool + | @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). | | get_func_details(self, *args) -> 'bool' + | Get only the function specific info for this 'tinfo_t' . + | | get_func_details(self, fi, gtd=GTD_CALC_ARGLOCS) -> bool + | @param fi (C++: func_type_data_t *) + | @param gtd (C++: gtd_func_t) | | get_modifiers(self, *args) -> 'type_t' | get_modifiers(self) -> type_t | | get_named_type(self, *args) -> 'bool' + | Create a 'tinfo_t' object for an existing named type. + | | get_named_type(self, til, name, decl_type=BTF_TYPEDEF, resolve=True, try_ordinal=True) -> bool + | @param til: type library to use (C++: const til_t *) + | @param name: name of the type to link to (C++: const char *) + | @param decl_type: 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 (C++: type_t) + | @param resolve: true: immediately resolve the type and return success + | code. false: return true but do not immediately + | resolve the type (C++: bool) + | @param try_ordinal: true: try to replace name reference by an ordinal + | reference (C++: bool) | | 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). | | get_nth_arg(self, *args) -> 'tinfo_t' + | 'BT_FUNC' or 'BT_PTR' 'BT_FUNC' : Get type of n-th arg (-1 means + | return type, see 'get_rettype()' ) + | | get_nth_arg(self, n) -> tinfo_t + | @param n (C++: int) | | get_numbered_type(self, *args) -> 'bool' + | Create a 'tinfo_t' object for an existing ordinal type. + | | get_numbered_type(self, til, ordinal, decl_type=BTF_TYPEDEF, resolve=True) -> bool + | @param til: type library to use (C++: const til_t *) + | @param ordinal: number of the type to link to (C++: uint32) + | @param decl_type: 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 (C++: type_t) + | @param resolve: true: immediately resolve the type and return success + | code false: return true but do not immediately resolve + | the type (C++: bool) | | 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 + | 'BT_PTR' : get type of pointed object. If the current type is not a + | pointer, return empty type info. See also 'get_ptrarr_object()' and + | 'remove_pointer()' | | get_ptr_details(self, *args) -> 'bool' + | Get the pointer info. + | | get_ptr_details(self, pi) -> bool + | @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 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 + | | get_realtype(self, full=False) -> type_t + | @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 the type size in bytes. + | | get_size(self, p_effalign=None, gts_code=0) -> size_t + | @param p_effalign: buffer for the alignment value (C++: uint32 *) + | @param gts_code: combination of GTS_... constants (C++: int) + | @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 the udt specific info. + | | get_udt_details(self, udt, gtd=GTD_CALC_LAYOUT) -> bool + | @param udt (C++: udt_type_data_t *) + | @param gtd (C++: 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 + | \isreal{is_type_arithmetic} | | is_array(self, *args) -> 'bool' - | is_array(self) -> bool + | \isreal{is_type_array} | | is_bitfield(self, *args) -> 'bool' - | is_bitfield(self) -> bool + | \isreal{is_type_bitfld} | | is_bool(self, *args) -> 'bool' - | is_bool(self) -> bool + | \isreal{is_type_bool} | | is_castable_to(self, *args) -> 'bool' | is_castable_to(self, target) -> bool + | @param target (C++: const tinfo_t &) | | is_char(self, *args) -> 'bool' - | is_char(self) -> bool + | \isreal{is_type_char} | | is_complex(self, *args) -> 'bool' - | is_complex(self) -> bool + | \isreal{is_type_complex} | | is_const(self, *args) -> 'bool' - | is_const(self) -> bool + | \isreal{is_type_const} | | 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 + | \isdecl{is_type_array} | | is_decl_bitfield(self, *args) -> 'bool' - | is_decl_bitfield(self) -> bool + | \isdecl{is_type_bitfld} | | is_decl_bool(self, *args) -> 'bool' - | is_decl_bool(self) -> bool + | \isdecl{is_type_bool} | | is_decl_char(self, *args) -> 'bool' - | is_decl_char(self) -> bool + | \isdecl{is_type_char} | | is_decl_complex(self, *args) -> 'bool' - | is_decl_complex(self) -> bool + | \isdecl{is_type_complex} | | is_decl_const(self, *args) -> 'bool' - | is_decl_const(self) -> bool + | \isdecl{is_type_const} | | is_decl_double(self, *args) -> 'bool' - | is_decl_double(self) -> bool + | \isdecl{is_type_double} | | is_decl_enum(self, *args) -> 'bool' - | is_decl_enum(self) -> bool + | \isdecl{is_type_enum} | | is_decl_float(self, *args) -> 'bool' - | is_decl_float(self) -> bool + | \isdecl{is_type_float} | | is_decl_floating(self, *args) -> 'bool' - | is_decl_floating(self) -> bool + | \isdecl{is_type_floating} | | is_decl_func(self, *args) -> 'bool' - | is_decl_func(self) -> bool + | \isdecl{is_type_func} | | is_decl_int(self, *args) -> 'bool' - | is_decl_int(self) -> bool + | \isdecl{is_type_int} | | is_decl_int128(self, *args) -> 'bool' - | is_decl_int128(self) -> bool + | \isdecl{is_type_int128} | | is_decl_int16(self, *args) -> 'bool' - | is_decl_int16(self) -> bool + | \isdecl{is_type_int16} | | is_decl_int32(self, *args) -> 'bool' - | is_decl_int32(self) -> bool + | \isdecl{is_type_int32} | | is_decl_int64(self, *args) -> 'bool' - | is_decl_int64(self) -> bool + | \isdecl{is_type_int64} | | is_decl_last(self, *args) -> 'bool' - | is_decl_last(self) -> bool + | \isdecl{is_typeid_last} | | is_decl_ldouble(self, *args) -> 'bool' - | is_decl_ldouble(self) -> bool + | \isdecl{is_type_ldouble} | | is_decl_paf(self, *args) -> 'bool' - | is_decl_paf(self) -> bool + | \isdecl{is_type_paf} | | is_decl_partial(self, *args) -> 'bool' - | is_decl_partial(self) -> bool + | \isdecl{is_type_partial} | | is_decl_ptr(self, *args) -> 'bool' - | is_decl_ptr(self) -> bool + | \isdecl{is_type_ptr} | | is_decl_struct(self, *args) -> 'bool' - | is_decl_struct(self) -> bool + | \isdecl{is_type_struct} | | is_decl_sue(self, *args) -> 'bool' - | is_decl_sue(self) -> bool + | \isdecl{is_type_sue} | | is_decl_tbyte(self, *args) -> 'bool' - | is_decl_tbyte(self) -> bool + | \isdecl{is_type_tbyte} | | is_decl_typedef(self, *args) -> 'bool' - | is_decl_typedef(self) -> bool + | \isdecl{is_type_typedef} | | is_decl_uchar(self, *args) -> 'bool' - | is_decl_uchar(self) -> bool + | \isdecl{is_type_uchar} | | is_decl_udt(self, *args) -> 'bool' - | is_decl_udt(self) -> bool + | \isdecl{is_type_struni} | | is_decl_uint(self, *args) -> 'bool' - | is_decl_uint(self) -> bool + | \isdecl{is_type_uint} | | is_decl_uint128(self, *args) -> 'bool' - | is_decl_uint128(self) -> bool + | \isdecl{is_type_uint128} | | is_decl_uint16(self, *args) -> 'bool' - | is_decl_uint16(self) -> bool + | \isdecl{is_type_uint16} | | is_decl_uint32(self, *args) -> 'bool' - | is_decl_uint32(self) -> bool + | \isdecl{is_type_uint32} | | is_decl_uint64(self, *args) -> 'bool' - | is_decl_uint64(self) -> bool + | \isdecl{is_type_uint64} | | is_decl_union(self, *args) -> 'bool' - | is_decl_union(self) -> bool + | \isdecl{is_type_union} | | is_decl_unknown(self, *args) -> 'bool' - | is_decl_unknown(self) -> bool + | \isdecl{is_type_unknown} | | is_decl_void(self, *args) -> 'bool' - | is_decl_void(self) -> bool + | \isdecl{is_type_void} | | is_decl_volatile(self, *args) -> 'bool' - | is_decl_volatile(self) -> bool + | \isdecl{is_type_volatile} | | is_double(self, *args) -> 'bool' - | is_double(self) -> bool + | \isreal{is_type_double} | | 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 + | \isreal{is_type_enum} | | is_ext_arithmetic(self, *args) -> 'bool' - | is_ext_arithmetic(self) -> bool + | \isreal{is_type_ext_arithmetic} | | is_ext_integral(self, *args) -> 'bool' - | is_ext_integral(self) -> bool + | \isreal{is_type_ext_integral} | | is_float(self, *args) -> 'bool' - | is_float(self) -> bool + | \isreal{is_type_float} | | is_floating(self, *args) -> 'bool' - | is_floating(self) -> bool + | \isreal{is_type_floating} | | 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 + | \isreal{is_type_func} | | 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 + | 'BT_FUNC' : Is high level type? | | is_int(self, *args) -> 'bool' - | is_int(self) -> bool + | \isreal{is_type_int} | | is_int128(self, *args) -> 'bool' - | is_int128(self) -> bool + | \isreal{is_type_int128} | | is_int16(self, *args) -> 'bool' - | is_int16(self) -> bool + | \isreal{is_type_int16} | | is_int32(self, *args) -> 'bool' - | is_int32(self) -> bool + | \isreal{is_type_int32} | | is_int64(self, *args) -> 'bool' - | is_int64(self) -> bool + | \isreal{is_type_int64} | | is_integral(self, *args) -> 'bool' - | is_integral(self) -> bool + | \isreal{is_type_integral} | | is_ldouble(self, *args) -> 'bool' - | is_ldouble(self) -> bool + | \isreal{is_type_ldouble} | | is_manually_castable_to(self, *args) -> 'bool' | is_manually_castable_to(self, target) -> bool + | @param target (C++: const tinfo_t &) | | 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 + | \isreal{is_type_paf} | | is_partial(self, *args) -> 'bool' - | is_partial(self) -> bool + | \isreal{is_type_partial} | | is_ptr(self, *args) -> 'bool' - | is_ptr(self) -> bool + | \isreal{is_type_ptr} | | is_ptr_or_array(self, *args) -> 'bool' - | is_ptr_or_array(self) -> bool + | \isreal{is_type_ptr_or_array} | | is_purging_cc(self, *args) -> 'bool' - | is_purging_cc(self) -> bool + | \tinfocc{is_purging_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 + | \isreal{is_type_struct} | | is_sue(self, *args) -> 'bool' - | is_sue(self) -> bool + | \isreal{is_type_sue} | | is_tbyte(self, *args) -> 'bool' - | is_tbyte(self) -> bool + | \isreal{is_type_tbyte} | | 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 + | \isreal{is_type_uchar} | | is_udt(self, *args) -> 'bool' - | is_udt(self) -> bool + | \isreal{is_type_struni} | | is_uint(self, *args) -> 'bool' - | is_uint(self) -> bool + | \isreal{is_type_uint} | | is_uint128(self, *args) -> 'bool' - | is_uint128(self) -> bool + | \isreal{is_type_uint128} | | is_uint16(self, *args) -> 'bool' - | is_uint16(self) -> bool + | \isreal{is_type_uint16} | | is_uint32(self, *args) -> 'bool' - | is_uint32(self) -> bool + | \isreal{is_type_uint32} | | is_uint64(self, *args) -> 'bool' - | is_uint64(self) -> bool + | \isreal{is_type_uint64} | | is_union(self, *args) -> 'bool' - | is_union(self) -> bool + | \isreal{is_type_union} | | is_unknown(self, *args) -> 'bool' - | is_unknown(self) -> bool + | \isreal{is_type_unknown} | | 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 + | \tinfocc{is_user_cc} | | is_vararg_cc(self, *args) -> 'bool' - | is_vararg_cc(self) -> bool + | \tinfocc{is_vararg_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 + | \isreal{is_type_void} | | is_volatile(self, *args) -> 'bool' - | is_volatile(self) -> bool + | \isreal{is_type_volatile} | | 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 + | v: uint64 + | 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[] => typetype* + | => type If the conversion is performed successfully, return true | | requires_qualifier(self, *args) -> 'bool' + | Requires full qualifier? (name is not unique) + | | requires_qualifier(self, name, offset) -> bool + | @param name: field name (C++: const char *) + | @param offset (C++: uint64) + | @return: if the name is not unique, returns true | | serialize(self, *args) -> 'PyObject *' + | Serialize 'tinfo_t' object into a type string. + | | serialize(self, sudt_flags=SUDT_FAST|SUDT_TRUNC) -> PyObject * + | @param sudt_flags (C++: int) | | set_attr(self, *args) -> 'bool' + | Set a type attribute. If necessary, a new typid will be created. + | | set_attr(self, ta, may_overwrite=True) -> bool + | @param ta (C++: const type_attr_t &) + | @param may_overwrite (C++: bool) | | set_attrs(self, *args) -> 'bool' + | Set type attributes. If necessary, a new typid will be created. this + | function modifies tav! (returns old attributes, if any) + | | set_attrs(self, tav) -> bool + | @param tav (C++: type_attrs_t *) + | @return: false: bad attributes | | set_const(self, *args) -> 'void' | set_const(self) | | set_declalign(self, *args) -> 'bool' + | Set declared alignment of the type. + | | set_declalign(self, declalign) -> bool + | @param declalign (C++: uchar) | | set_modifiers(self, *args) -> 'void' | set_modifiers(self, mod) + | mod: type_t | | set_named_type(self, *args) -> 'tinfo_code_t' | set_named_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | til: til_t * + | name: char const * + | 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 + | til: til_t * + | ord: uint32 + | ntf_flags: int + | name: char const * | | set_symbol_type(self, *args) -> 'tinfo_code_t' | set_symbol_type(self, til, name, ntf_flags=0) -> tinfo_code_t + | til: til_t * + | name: char const * + | ntf_flags: int | | set_volatile(self, *args) -> 'void' | set_volatile(self) | | swap(self, *args) -> 'void' + | Assign this = r and r = this. + | | swap(self, r) + | @param r (C++: tinfo_t &) | | write_bitfield_value(self, *args) -> 'uint64' | write_bitfield_value(self, dst, v, bitoff) -> uint64 + | dst: uint64 + | v: uint64 + | bitoff: int | | ---------------------------------------------------------------------- | Static methods defined here: | | get_stock(*args) -> 'tinfo_t' | get_stock(id) -> tinfo_t + | id: enum stock_type_id_t | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69390,6 +79803,7 @@ 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 + id: enum stock_type_id_t Help on class tinfo_visitor_t in module ida_typeinf: @@ -69402,6 +79816,7 @@ class tinfo_visitor_t(builtins.object) | | __init__(self, *args) | __init__(self, s=0) -> tinfo_visitor_t + | s: int | | __repr__ = _swig_repr(self) | @@ -69409,13 +79824,29 @@ class tinfo_visitor_t(builtins.object) | delete_tinfo_visitor_t(self) | | apply_to(self, *args) -> 'int' + | Call this function to initiate the traversal. + | | apply_to(self, tif, out=None, name=None, cmt=None) -> int + | @param tif (C++: const tinfo_t &) + | @param out (C++: type_mods_t *) + | @param name (C++: const char *) + | @param cmt (C++: const char *) | | 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 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 NULL) return 0 to continue the traversal. return !=0 to + | stop the traversal. + | | visit_type(self, out, tif, name, cmt) -> int + | @param out (C++: type_mods_t *) + | @param tif (C++: const tinfo_t &) + | @param name (C++: const char *) + | @param cmt (C++: const char *) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69441,12 +79872,14 @@ class type_attr_t(builtins.object) | | __ge__(self, *args) -> 'bool' | __ge__(self, r) -> bool + | r: type_attr_t const & | | __init__(self, *args) | __init__(self) -> type_attr_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: type_attr_t const & | | __repr__ = _swig_repr(self) | @@ -69480,10 +79913,11 @@ class type_attrs_t(builtins.object) | | __getitem__(self, *args) -> 'type_attr_t const &' | __getitem__(self, i) -> type_attr_t + | i: size_t | | __init__(self, *args) | __init__(self) -> type_attrs_t - | __init__(self, x) -> type_attrs_t + | 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. @@ -69495,12 +79929,15 @@ class type_attrs_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -69524,7 +79961,12 @@ class type_attrs_t(builtins.object) | | erase(self, *args) -> 'qvector< type_attr_t >::iterator' | erase(self, it) -> type_attr_t + | it: qvector< type_attr_t >::iterator + | + | | erase(self, first, last) -> type_attr_t + | first: qvector< type_attr_t >::iterator + | last: qvector< type_attr_t >::iterator | | extract(self, *args) -> 'type_attr_t *' | extract(self) -> type_attr_t @@ -69534,35 +79976,47 @@ class type_attrs_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=type_attr_t()) + | x: type_attr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: type_attr_t * + | len: size_t | | insert(self, *args) -> 'qvector< type_attr_t >::iterator' | insert(self, it, x) -> type_attr_t + | it: qvector< type_attr_t >::iterator + | x: type_attr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'type_attr_t &' | push_back(self, x) - | push_back(self) -> type_attr_t + | x: type_attr_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: type_attr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< type_attr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -69611,12 +80065,19 @@ class type_mods_t(builtins.object) | | set_new_cmt(self, *args) -> 'void' | set_new_cmt(self, c) + | @param c (C++: const qstring &) | | set_new_name(self, *args) -> 'void' | set_new_name(self, n) + | @param n (C++: const qstring &) | | set_new_type(self, *args) -> 'void' + | 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. + | | set_new_type(self, t) + | @param t (C++: const tinfo_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69651,7 +80112,15 @@ class typedef_type_data_t(builtins.object) | | __init__(self, *args) | __init__(self, _til, _name, _resolve=False) -> typedef_type_data_t + | _til: til_t const * + | _name: char const * + | _resolve: bool + | + | | __init__(self, _til, ord, _resolve=False) -> typedef_type_data_t + | _til: til_t const * + | ord: uint32 + | _resolve: bool | | __repr__ = _swig_repr(self) | @@ -69660,6 +80129,7 @@ class typedef_type_data_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: typedef_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69691,15 +80161,18 @@ class udt_member_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: udt_member_t const & | | __init__(self, *args) | __init__(self) -> udt_member_t | | __lt__(self, *args) -> 'bool' | __lt__(self, r) -> bool + | r: udt_member_t const & | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: udt_member_t const & | | __repr__ = _swig_repr(self) | @@ -69759,6 +80232,7 @@ class udt_member_t(builtins.object) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: udt_member_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69826,6 +80300,7 @@ class udt_type_data_t(udtmembervec_t) | | is_last_baseclass(self, *args) -> 'bool' | is_last_baseclass(self, idx) -> bool + | @param idx (C++: size_t) | | is_msstruct(self, *args) -> 'bool' | is_msstruct(self) -> bool @@ -69838,6 +80313,7 @@ class udt_type_data_t(udtmembervec_t) | | swap(self, *args) -> 'void' | swap(self, r) + | @param r (C++: udt_type_data_t &) | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -69871,9 +80347,11 @@ class udt_type_data_t(udtmembervec_t) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -69883,18 +80361,24 @@ class udt_type_data_t(udtmembervec_t) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: udt_member_t const & | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -69918,46 +80402,67 @@ class udt_type_data_t(udtmembervec_t) | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | + | | erase(self, first, last) -> udt_member_t + | first: qvector< udt_member_t >::iterator + | 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 + | x: udt_member_t const & + | + | | find(self, x) -> udt_member_t + | x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) + | x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: udt_member_t * + | len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) - | push_back(self) -> udt_member_t + | x: udt_member_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: udt_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t @@ -69988,13 +80493,15 @@ class udtmembervec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __getitem__(self, *args) -> 'udt_member_t const &' | __getitem__(self, i) -> udt_member_t + | i: size_t | | __init__(self, *args) | __init__(self) -> udtmembervec_t - | __init__(self, x) -> udtmembervec_t + | 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. @@ -70004,23 +80511,29 @@ class udtmembervec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< udt_member_t > const & | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: udt_member_t const & | | __swig_destroy__ = delete_udtmembervec_t(...) | delete_udtmembervec_t(self) | | _del(self, *args) -> 'bool' | _del(self, x) -> bool + | x: udt_member_t const & | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: udt_member_t const & | | at(self, *args) -> 'udt_member_t const &' | at(self, _idx) -> udt_member_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -70044,52 +80557,74 @@ class udtmembervec_t(builtins.object) | | erase(self, *args) -> 'qvector< udt_member_t >::iterator' | erase(self, it) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | + | | erase(self, first, last) -> udt_member_t + | first: qvector< udt_member_t >::iterator + | 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 + | x: udt_member_t const & + | + | | find(self, x) -> udt_member_t + | x: udt_member_t const & | | front = _qvector_front(self) | # ----------------------------------------------------------------------- | | grow(self, *args) -> 'void' | grow(self, x=udt_member_t()) + | x: udt_member_t const & | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: udt_member_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: udt_member_t * + | len: size_t | | insert(self, *args) -> 'qvector< udt_member_t >::iterator' | insert(self, it, x) -> udt_member_t + | it: qvector< udt_member_t >::iterator + | x: udt_member_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'udt_member_t &' | push_back(self, x) - | push_back(self) -> udt_member_t + | x: udt_member_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: udt_member_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< udt_member_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -70114,39 +80649,32 @@ class udtmembervec_t(builtins.object) 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) + unpack_idcobj_from_bv(obj, tif, bytes, pio_flags=0) -> error_t + @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) -> '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) + unpack_idcobj_from_idb(obj, tif, ea, off0, pio_flags=0) -> error_t + @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) -> '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. @@ -70162,6 +80690,11 @@ 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 * + ti: til_t * + type: type_t const * + fields: p_list const * + ea: ea_t + pio_flags: int Help on class valstr_t in module ida_typeinf: @@ -70236,6 +80769,7 @@ class valstrs_t(valstrvec_t) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t + | i: size_t | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70245,9 +80779,12 @@ class valstrs_t(valstrvec_t) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: valstr_t const & | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -70271,7 +80808,12 @@ class valstrs_t(valstrvec_t) | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t + | it: qvector< valstr_t >::iterator + | + | | erase(self, first, last) -> valstr_t + | first: qvector< valstr_t >::iterator + | last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -70281,35 +80823,47 @@ class valstrs_t(valstrvec_t) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) + | x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: valstr_t * + | len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t + | it: qvector< valstr_t >::iterator + | x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) - | push_back(self) -> valstr_t + | x: valstr_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: valstr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -70332,10 +80886,11 @@ class valstrvec_t(builtins.object) | | __getitem__(self, *args) -> 'valstr_t const &' | __getitem__(self, i) -> valstr_t + | i: size_t | | __init__(self, *args) | __init__(self) -> valstrvec_t - | __init__(self, x) -> valstrvec_t + | x: qvector< valstr_t > const & | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -70347,12 +80902,15 @@ class valstrvec_t(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: valstr_t const & | | __swig_destroy__ = delete_valstrvec_t(...) | delete_valstrvec_t(self) | | at(self, *args) -> 'valstr_t const &' | at(self, _idx) -> valstr_t + | _idx: size_t | | back = _qvector_back(self) | # ----------------------------------------------------------------------- @@ -70376,7 +80934,12 @@ class valstrvec_t(builtins.object) | | erase(self, *args) -> 'qvector< valstr_t >::iterator' | erase(self, it) -> valstr_t + | it: qvector< valstr_t >::iterator + | + | | erase(self, first, last) -> valstr_t + | first: qvector< valstr_t >::iterator + | last: qvector< valstr_t >::iterator | | extract(self, *args) -> 'valstr_t *' | extract(self) -> valstr_t @@ -70386,35 +80949,47 @@ class valstrvec_t(builtins.object) | | grow(self, *args) -> 'void' | grow(self, x=valstr_t()) + | x: valstr_t const & | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: valstr_t * + | len: size_t | | insert(self, *args) -> 'qvector< valstr_t >::iterator' | insert(self, it, x) -> valstr_t + | it: qvector< valstr_t >::iterator + | x: valstr_t const & | | pop_back(self, *args) -> 'void' | pop_back(self) | | push_back(self, *args) -> 'valstr_t &' | push_back(self, x) - | push_back(self) -> valstr_t + | x: valstr_t const & | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: valstr_t const & + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< valstr_t > & | | truncate(self, *args) -> 'void' | truncate(self) @@ -70434,32 +81009,40 @@ class valstrvec_t(builtins.object) 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 &) - @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. + verify_argloc(vloc, size, gaps) -> int + @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) -> 'int' verify_tinfo(typid) -> int + typid: uint32 Help on function visit_subtypes in module ida_typeinf: visit_subtypes(*args) -> 'int' visit_subtypes(visitor, out, tif, name, cmt) -> int + visitor: tinfo_visitor_t * + out: type_mods_t * + tif: tinfo_t const & + name: char const * + 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 + typid: uint32 + dst: uint64 + v: uint64 + bitoff: int === ida_typeinf EPYDOC INJECTIONS === ida_typeinf.ADDTIL_ABORTED @@ -70932,7 +81515,7 @@ use c++ name (only for 'print_type()' ) ida_typeinf.PRTYPE_DEF """ - 'tinfo_t' : print definition, if available +'tinfo_t' : print definition, if available """ ida_typeinf.PRTYPE_MULTI @@ -70942,12 +81525,12 @@ print to many lines ida_typeinf.PRTYPE_NOARGS """ - 'tinfo_t' : do not print function argument names +'tinfo_t' : do not print function argument names """ ida_typeinf.PRTYPE_NOARRS """ - 'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers +'tinfo_t' : print arguments with 'FAI_ARRAY' as pointers """ ida_typeinf.PRTYPE_NOREGEX @@ -70957,7 +81540,7 @@ do not apply regular expressions to beautify name ida_typeinf.PRTYPE_NORES """ - 'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) +'tinfo_t' : never resolve types (meaningful with PRTYPE_DEF) """ ida_typeinf.PRTYPE_PRAGMA @@ -70967,7 +81550,7 @@ print pragmas for alignment ida_typeinf.PRTYPE_RESTORE """ - 'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' +'tinfo_t' : print restored types for 'FAI_ARRAY' and 'FAI_STRUCT' """ ida_typeinf.PRTYPE_SEMI @@ -71431,84 +82014,78 @@ printed opening curly brace '{' 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 &) - @param n (C++: int) - @param rgnum (C++: int) + calc_dataseg(insn, n=-1, rgnum=-1) -> ea_t + @param insn - 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) - @return: whether or not the contents at that address could be a valid - instruction + can_decode(ea) -> bool + @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) -> 'bool' construct_macro(insn, enable, build_macro) -> bool - - See ua.hpp's construct_macro(). +Help on function construct_macro2 in module ida_ua: + +construct_macro2(*args) -> 'bool' + construct_macro2(_this, insn, enable) -> bool + @param _this (C++: macro_constructor_t *) + @param insn (C++: insn_t *) + @param enable (C++: 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: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + create_insn(ea, out=None) -> int + @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) -> '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) + create_outctx(ea, F=0, suspop=0) -> outctx_base_t + @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) -> '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: the resulting instruction (C++: insn_t *) - @param ea: linear address (C++: ea_t) - @return: the length of the (possible) instruction or 0 + decode_insn(out, ea) -> int + @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) -> 'PyObject *' 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 @@ -71517,55 +82094,41 @@ decode_preceding_insn(*args) -> 'PyObject *' 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) + decode_prev_insn(out, ea) -> ea_t + @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) -> 'int' - get_dtype_by_size(size) -> int - - Get 'op_t::dtype' from size. - - @param size (C++: asize_t) + get_dtype_by_size(size) -> int + @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 flags for 'op_t::dtype' field. - - @param dtype (C++: op_dtype_t) + get_dtype_flag(dtype) -> flags_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) + get_dtype_size(dtype) -> size_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 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 @@ -71573,18 +82136,16 @@ get_immvals(*args) -> 'PyObject *' 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 ) + get_immvals(ea, n, F=0) -> PyObject * + @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) -> '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 = . IDP may use it as you like it. (TMS module uses it) @@ -71592,59 +82153,67 @@ get_lookback(*args) -> 'int' 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 ) + get_printable_immvals(ea, n, F=0) -> PyObject * + @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 &) + guess_table_address(insn) -> ea_t + @param insn - an ida_ua.insn_t, or an address (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) + guess_table_size(insn, jump_table) -> asize_t + @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + @param jump_table (C++: ea_t) Help on function insn_add_cref in module ida_ua: insn_add_cref(*args) -> 'void' insn_add_cref(insn, to, opoff, type) + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + to: ea_t + opoff: int + 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) + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + to: ea_t + opoff: int + 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 + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + type: enum dref_t + 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 + insn: an ida_ua.insn_t, or an address (C++: const insn_t &) + x: op_t const & + v: adiff_t + flags: int Help on class insn_t in module ida_ua: @@ -71658,6 +82227,7 @@ class insn_t(builtins.object) | | __get_operand__(self, *args) -> 'op_t *' | __get_operand__(self, n) -> op_t + | n: int | | __get_ops__(self, *args) -> 'wrapped_array_t< op_t,8 >' | __get_ops__(self) -> operands_array @@ -71675,34 +82245,77 @@ class insn_t(builtins.object) | | __set_auxpref__(self, *args) -> 'void' | __set_auxpref__(self, v) + | v: uint32 | | __swig_destroy__ = delete_insn_t(...) | delete_insn_t(self) | | add_cref(self, *args) -> 'void' + | Add a code cross-reference from the instruction. + | | add_cref(self, to, opoff, type) + | @param to: target linear address (C++: ea_t) + | @param opoff: offset of the operand from the start of instruction. if + | the offset is unknown, then 0. (C++: int) + | @param type: type of xref (C++: cref_t) | | add_dref(self, *args) -> 'void' + | Add a data cross-reference from the instruction. See 'add_off_drefs()' + | - usually it can be used in most cases. + | | add_dref(self, to, opoff, type) + | @param to: target linear address (C++: ea_t) + | @param opoff: offset of the operand from the start of instruction if + | the offset is unknown, then 0 (C++: int) + | @param type: type of xref (C++: dref_t) | | add_off_drefs(self, *args) -> '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. + | | add_off_drefs(self, x, type, outf) -> ea_t + | @param x: reference to operand (C++: const op_t &) + | @param type: type of xref (C++: dref_t) + | @param outf: out_value() flags. These flags should match the flags + | used to output the operand (C++: int) + | @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) + | 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 + | ea_: ea_t + | opoff: int + | dtype: op_dtype_t + | + | | create_op_data(self, ea_, op) -> bool + | ea_: ea_t + | op: op_t const & | | create_stkvar(self, *args) -> 'bool' | create_stkvar(self, x, v, flags_) -> bool + | x: op_t const & + | v: adiff_t + | flags_: int | | get_canon_feature(self, *args) -> 'uint32' - | get_canon_feature(self) -> uint32 + | see 'instruc_t::feature' + | + | get_canon_feature(self, ph) -> uint32 + | @param ph (C++: const processor_t &) | | get_canon_mnem(self, *args) -> 'char const *' - | get_canon_mnem(self) -> char const * + | see 'instruc_t::name' + | + | get_canon_mnem(self, ph) -> char const + | @param ph (C++: const processor_t &) | | get_next_byte(self, *args) -> 'uint8' | get_next_byte(self) -> uint8 @@ -71717,13 +82330,16 @@ class insn_t(builtins.object) | 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) -> bool + | see \ph{ 'is_canon_insn()' } + | + | is_canon_insn(self, ph) -> bool + | @param ph (C++: const processor_t &) | | is_macro(self, *args) -> 'bool' - | is_macro(self) -> bool + | Is a macro instruction? | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -71783,50 +82399,117 @@ 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 + 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) + is_floating_dtype(dtype) -> bool + @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 + | self: PyObject * + | + | __repr__ = _swig_repr(self) + | + | __swig_destroy__ = delete_macro_constructor_t(...) + | delete_macro_constructor_t(self) + | + | build_macro(self, *args) -> 'bool' + | Try to extend the instruction. + | + | build_macro(self, insn, may_go_forward) -> bool + | @param insn: Instruction to modify, usually the first instruction of + | the macro (C++: insn_t *) + | @param may_go_forward: 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. (C++: bool) + | @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 + | macro_constructor_t_reserved_get(self) -> size_t + | + | 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 - 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) + map_code_ea(insn, addr, opnum) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + @param addr: the referenced address to map (C++: ea_t) + @param opnum: operand number (C++: int) + + + map_code_ea(insn, op) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + 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 - 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) + map_data_ea(insn, addr, opnum=-1) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + @param addr: the referenced address to map (C++: ea_t) + @param opnum: operand number (C++: int) + + + map_data_ea(insn, op) -> ea_t + @param insn: the current instruction - an ida_ua.insn_t, or an + address (C++: const insn_t &) + 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 (C++: const op_t &) + @param iscode (C++: bool) + + map_ea(insn, addr, opnum, iscode) -> ea_t + @param insn - an ida_ua.insn_t, or an address (C++: const insn_t &) + addr: ea_t + opnum: int + @param iscode (C++: bool) Help on class op_t in module ida_ua: @@ -71854,39 +82537,50 @@ class op_t(builtins.object) | | __set_addr__(self, *args) -> 'void' | __set_addr__(self, v) + | v: ea_t | | __set_reg_phrase__(self, *args) -> 'void' | __set_reg_phrase__(self, r) + | r: uint16 | | __set_specval__(self, *args) -> 'void' | __set_specval__(self, v) + | v: ea_t | | __set_value__(self, *args) -> 'void' | __set_value__(self, v) + | v: ea_t | | __swig_destroy__ = delete_op_t(...) | delete_op_t(self) | | assign(self, *args) -> 'void' | assign(self, other) + | 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 immediate operand? + | | is_imm(self, v) -> bool + | @param v (C++: uval_t) | | is_reg(self, *args) -> 'bool' + | Is register operand? + | | is_reg(self, r) -> bool + | @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: @@ -71949,6 +82643,7 @@ 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 + ptrval: size_t Help on class operands_array in module ida_ua: @@ -71959,9 +82654,11 @@ class operands_array(builtins.object) | | __getitem__(self, *args) -> 'op_t const &' | __getitem__(self, i) -> op_t + | i: size_t | | __init__(self, *args) | __init__(self, data) -> operands_array + | data: op_t (&)[8] | | __iter__ = _bounded_getitem_iterator(self) | Helper function, to be set as __iter__ method for qvector-, or array-based classes. @@ -71973,6 +82670,8 @@ class operands_array(builtins.object) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | v: op_t const & | | __swig_destroy__ = delete_operands_array(...) | delete_operands_array(self) @@ -72014,10 +82713,21 @@ class outctx_base_t(builtins.object) | display_voids(self) -> bool | | flush_buf(self, *args) -> 'bool' + | Append contents of 'buf' to the line array. Behaves like flush_outbuf + | but accepts an arbitrary buffer + | | flush_buf(self, buf, indent=-1) -> bool + | @param buf (C++: const char *) + | @param indent (C++: int) | | flush_outbuf(self, *args) -> '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. + | | flush_outbuf(self, indent=-1) -> bool + | @param indent (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -72026,34 +82736,84 @@ class outctx_base_t(builtins.object) | force_code(self) -> bool | | gen_block_cmt(self, *args) -> 'bool' + | Generate big non-indented comment lines. + | | gen_block_cmt(self, cmt, color) -> bool + | @param cmt: comment text. may contain \n characters to denote new + | lines. should not contain comment character (;) (C++: + | const char *) + | @param color: color of comment text (one of Color tags ) (C++: + | color_t) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' + | Generate thin border line. This function does nothing if generation of + | border lines is disabled. + | | gen_border_line(self, solid=False) -> bool + | @param solid: generate solid border line (with =), otherwise with - + | (C++: bool) + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' + | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . + | | gen_cmt_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' + | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' + | . + | | gen_collapsed_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @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. | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' + | printf-like function to add lines to the line array. + | | gen_printf(self, indent, format) -> bool + | @param indent: indention of the line. if indent == -1, the kernel will + | indent the line at \inf{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. (C++: + | int) + | @param format: printf style colored line to generate (C++: const char + | *) + | @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 * + | arg2: op_t const & + | arg3: uval_t + | arg4: sval_t * + | arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) + | @param answers (C++: qstrvec_t *) + | @param maxsize (C++: int) | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -72062,73 +82822,153 @@ class outctx_base_t(builtins.object) | only_main_line(self) -> bool | | out_addr_tag(self, *args) -> 'void' + | Output "address" escape sequence. + | | out_addr_tag(self, ea) + | @param ea (C++: ea_t) | | out_btoa(self, *args) -> 'void' + | Output a number with the specified base (binary, octal, decimal, hex) + | The number is output without color codes. see also 'out_long()' + | | out_btoa(self, Word, radix=0) + | @param Word (C++: uval_t) + | @param radix (C++: char) | | out_char(self, *args) -> 'void' + | Output one character. The character is output without color codes. see + | also 'out_symbol()' + | | out_char(self, c) + | @param c (C++: char) | | out_chars(self, *args) -> 'void' + | Append a character multiple times. + | | out_chars(self, c, n) + | @param c (C++: char) + | @param n (C++: int) | | out_colored_register_line(self, *args) -> 'void' + | 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) + | | out_colored_register_line(self, str) + | @param str (C++: const char *) | | out_keyword(self, *args) -> 'void' + | Output a string with 'COLOR_KEYWORD' color. + | | out_keyword(self, str) + | @param str (C++: const char *) | | out_line(self, *args) -> 'void' + | Output a string with the specified color. + | | out_line(self, str, color=0) + | @param str (C++: const char *) + | @param color (C++: color_t) | | out_long(self, *args) -> 'void' + | 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 \ph{d_out()}) + | | out_long(self, v, radix) + | @param v (C++: sval_t) + | @param radix (C++: char) | | out_name_expr(self, *args) -> 'bool' + | Output a name expression. + | | out_name_expr(self, x, ea, off=BADADDR) -> bool + | @param x: instruction operand referencing the name expression (C++: + | const op_t &) + | @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. You may pass BADADDR for this parameter but I + | discourage it because it prohibits checks. (C++: adiff_t) + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' + | Functions to append text to the current output buffer (outbuf) Append + | a formatted string to the output string. + | | out_printf(self, format) + | @param format (C++: const char *) + | @return: the number of characters appended | | out_register(self, *args) -> 'void' + | Output a character with 'COLOR_REG' color. + | | out_register(self, str) + | @param str (C++: const char *) | | out_spaces(self, *args) -> 'void' + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | | out_spaces(self, len) + | @param len (C++: ssize_t) | | out_symbol(self, *args) -> 'void' + | Output a character with 'COLOR_SYMBOL' color. + | | out_symbol(self, c) + | @param c (C++: char) | | out_tagoff(self, *args) -> 'void' + | Output "turn color off" escape sequence. + | | out_tagoff(self, tag) + | @param tag (C++: color_t) | | out_tagon(self, *args) -> 'void' + | Output "turn color on" escape sequence. + | | out_tagon(self, tag) + | @param tag (C++: color_t) | | out_value(self, *args) -> 'flags_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 + | | out_value(self, x, outf=0) -> flags_t + | @param x (C++: const op_t &) + | @param outf (C++: int) + | @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 (C++: 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 + | arg2: qstring * + | arg3: color_t * | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) + | @param ea (C++: 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 (C++: bool) | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -72138,15 +82978,24 @@ class outctx_base_t(builtins.object) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) + | @param on (C++: bool) | | setup_outctx(self, *args) -> 'void' + | Initialization; normally used only by the kernel. + | | setup_outctx(self, prefix, makeline_flags) + | @param prefix (C++: const char *) + | @param makeline_flags (C++: int) | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' + | Finalize the output context. + | | term_outctx(self, prefix=None) -> int + | @param prefix (C++: const char *) + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -72173,6 +83022,7 @@ 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 + ptrval: size_t Help on class outctx_t in module ida_ua: @@ -72193,12 +83043,17 @@ class outctx_t(outctx_base_t) | | gen_func_footer(self, *args) -> 'void' | gen_func_footer(self, pfn) + | @param pfn (C++: const func_t *) | | gen_func_header(self, *args) -> 'void' | gen_func_header(self, pfn) + | @param pfn (C++: func_t *) | | gen_header(self, *args) -> 'void' | gen_header(self, flags=((1 << 0)|(1 << 1)), proc_name=None, proc_flavour=None) + | @param flags (C++: int) + | @param proc_name (C++: const char *) + | @param proc_flavour (C++: const char *) | | gen_header_extra(self, *args) -> 'void' | gen_header_extra(self) @@ -72207,41 +83062,86 @@ class outctx_t(outctx_base_t) | gen_xref_lines(self) -> bool | | out_custom_mnem(self, *args) -> 'void' + | 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' + | | out_custom_mnem(self, mnem, width=8, postfix=None) + | @param mnem: custom mnemonic (C++: const char *) + | @param width: width of field with mnemonic. if < 0, then 'postfix' + | will be output before the mnemonic, i.e. as a prefix + | (C++: int) + | @param postfix: optional postfix added to 'mnem' (C++: const char *) | | out_data(self, *args) -> 'void' | out_data(self, analyze_only) + | @param analyze_only (C++: 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' + | Output instruction mnemonic for 'insn' using information in + | 'ph.instruc' array. This function outputs a colored text. It should be + | called from \ph{ev_out_insn()} or \ph{ev_out_mnem()} handler. It will + | output at least one space after the instruction. mnemonic even if the + | specified 'width' is not enough. + | | out_mnem(self, width=8, postfix=None) + | @param width: width of field with mnemonic. if < 0, then 'postfix' + | will be output before the mnemonic, i.e. as a prefix + | (C++: int) + | @param postfix: optional postfix added to the instruction mnemonic + | (C++: const char *) | | out_mnemonic(self, *args) -> 'void' - | out_mnemonic(self) + | Output instruction mnemonic using information in 'insn'. It should be + | called from \ph{ev_out_insn()} and it will call \ph{ev_out_mnem()} or + | 'out_mnem' . This function outputs a colored text. | | out_one_operand(self, *args) -> '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 + | \ph{ev_out_insn()} and it will call \ph{ev_out_operand()}. This + | function outputs a colored text. + | | out_one_operand(self, n) -> bool + | @param n: number of operand (C++: int) + | @retval: 1 - operand is displayed + | @retval: 0 - operand is hidden | | out_specea(self, *args) -> 'bool' | out_specea(self, segtype) -> bool + | @param segtype (C++: 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 + | arg2: qstring * + | arg3: color_t * | | set_bin_state(self, *args) -> 'void' | set_bin_state(self, value) + | @param value (C++: int) | | setup_outctx(self, *args) -> 'void' + | Initialization; normally used only by the kernel. + | | setup_outctx(self, prefix, flags) + | @param prefix (C++: const char *) + | flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: | + | ash + | outctx_t_ash_get(self) -> asm_t + | | bin_ea | outctx_t_bin_ea_get(self) -> ea_t | @@ -72260,6 +83160,12 @@ class outctx_t(outctx_base_t) | insn | outctx_t_insn_get(self) -> insn_t | + | ph + | outctx_t_ph_get(self) -> processor_t + | + | procmod + | outctx_t_procmod_get(self) -> procmod_t + | | thisown | The membership flag | @@ -72279,10 +83185,21 @@ class outctx_t(outctx_base_t) | display_voids(self) -> bool | | flush_buf(self, *args) -> 'bool' + | Append contents of 'buf' to the line array. Behaves like flush_outbuf + | but accepts an arbitrary buffer + | | flush_buf(self, buf, indent=-1) -> bool + | @param buf (C++: const char *) + | @param indent (C++: int) | | flush_outbuf(self, *args) -> '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. + | | flush_outbuf(self, indent=-1) -> bool + | @param indent (C++: int) | | forbid_annotations(self, *args) -> 'int' | forbid_annotations(self) -> int @@ -72291,31 +83208,81 @@ class outctx_t(outctx_base_t) | force_code(self) -> bool | | gen_block_cmt(self, *args) -> 'bool' + | Generate big non-indented comment lines. + | | gen_block_cmt(self, cmt, color) -> bool + | @param cmt: comment text. may contain \n characters to denote new + | lines. should not contain comment character (;) (C++: + | const char *) + | @param color: color of comment text (one of Color tags ) (C++: + | color_t) + | @return: overflow, lnar_maxsize has been reached | | gen_border_line(self, *args) -> 'bool' + | Generate thin border line. This function does nothing if generation of + | border lines is disabled. + | | gen_border_line(self, solid=False) -> bool + | @param solid: generate solid border line (with =), otherwise with - + | (C++: bool) + | @return: overflow, lnar_maxsize has been reached | | gen_cmt_line(self, *args) -> 'bool' + | Generate one non-indented comment line, colored with 'COLOR_AUTOCMT' . + | | gen_cmt_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @return: overflow, lnar_maxsize has been reached | | gen_collapsed_line(self, *args) -> 'bool' + | Generate one non-indented comment line, colored with 'COLOR_COLLAPSED' + | . + | | gen_collapsed_line(self, format) -> bool + | @param format: printf() style format line. The resulting comment line + | should not include comment character (;) (C++: const + | char *) + | @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. | | gen_empty_line_without_annotations(self, *args) -> 'void' | gen_empty_line_without_annotations(self) | | gen_printf(self, *args) -> 'bool' + | printf-like function to add lines to the line array. + | | gen_printf(self, indent, format) -> bool + | @param indent: indention of the line. if indent == -1, the kernel will + | indent the line at \inf{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. (C++: + | int) + | @param format: printf style colored line to generate (C++: const char + | *) + | @return: overflow, lnar_maxsize has been reached | | get_stkvar(self, *args) -> 'member_t *' | get_stkvar(self, arg2, arg3, arg4, arg5) -> member_t * + | arg2: op_t const & + | arg3: uval_t + | arg4: sval_t * + | arg5: int * | | init_lines_array(self, *args) -> 'void' | init_lines_array(self, answers, maxsize) + | @param answers (C++: qstrvec_t *) + | @param maxsize (C++: int) | | multiline(self, *args) -> 'bool' | multiline(self) -> bool @@ -72324,67 +83291,145 @@ class outctx_t(outctx_base_t) | only_main_line(self) -> bool | | out_addr_tag(self, *args) -> 'void' + | Output "address" escape sequence. + | | out_addr_tag(self, ea) + | @param ea (C++: ea_t) | | out_btoa(self, *args) -> 'void' + | Output a number with the specified base (binary, octal, decimal, hex) + | The number is output without color codes. see also 'out_long()' + | | out_btoa(self, Word, radix=0) + | @param Word (C++: uval_t) + | @param radix (C++: char) | | out_char(self, *args) -> 'void' + | Output one character. The character is output without color codes. see + | also 'out_symbol()' + | | out_char(self, c) + | @param c (C++: char) | | out_chars(self, *args) -> 'void' + | Append a character multiple times. + | | out_chars(self, c, n) + | @param c (C++: char) + | @param n (C++: int) | | out_colored_register_line(self, *args) -> 'void' + | 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) + | | out_colored_register_line(self, str) + | @param str (C++: const char *) | | out_keyword(self, *args) -> 'void' + | Output a string with 'COLOR_KEYWORD' color. + | | out_keyword(self, str) + | @param str (C++: const char *) | | out_line(self, *args) -> 'void' + | Output a string with the specified color. + | | out_line(self, str, color=0) + | @param str (C++: const char *) + | @param color (C++: color_t) | | out_long(self, *args) -> 'void' + | 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 \ph{d_out()}) + | | out_long(self, v, radix) + | @param v (C++: sval_t) + | @param radix (C++: char) | | out_name_expr(self, *args) -> 'bool' + | Output a name expression. + | | out_name_expr(self, x, ea, off=BADADDR) -> bool + | @param x: instruction operand referencing the name expression (C++: + | const op_t &) + | @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. You may pass BADADDR for this parameter but I + | discourage it because it prohibits checks. (C++: adiff_t) + | @return: true if the name expression has been produced | | out_printf(self, *args) -> 'void' + | Functions to append text to the current output buffer (outbuf) Append + | a formatted string to the output string. + | | out_printf(self, format) + | @param format (C++: const char *) + | @return: the number of characters appended | | out_register(self, *args) -> 'void' + | Output a character with 'COLOR_REG' color. + | | out_register(self, str) + | @param str (C++: const char *) | | out_spaces(self, *args) -> 'void' + | Appends spaces to outbuf until its tag_strlen becomes 'len'. + | | out_spaces(self, len) + | @param len (C++: ssize_t) | | out_symbol(self, *args) -> 'void' + | Output a character with 'COLOR_SYMBOL' color. + | | out_symbol(self, c) + | @param c (C++: char) | | out_tagoff(self, *args) -> 'void' + | Output "turn color off" escape sequence. + | | out_tagoff(self, tag) + | @param tag (C++: color_t) | | out_tagon(self, *args) -> 'void' + | Output "turn color on" escape sequence. + | | out_tagon(self, tag) + | @param tag (C++: color_t) | | out_value(self, *args) -> 'flags_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 + | | out_value(self, x, outf=0) -> flags_t + | @param x (C++: const op_t &) + | @param outf (C++: int) + | @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 (C++: int) | | set_comment_addr(self, *args) -> 'void' | set_comment_addr(self, ea) + | @param ea (C++: 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 (C++: bool) | | set_gen_demangled_label(self, *args) -> 'void' | set_gen_demangled_label(self) @@ -72394,12 +83439,17 @@ class outctx_t(outctx_base_t) | | set_gen_xrefs(self, *args) -> 'void' | set_gen_xrefs(self, on=True) + | @param on (C++: bool) | | stack_view(self, *args) -> 'bool' | stack_view(self) -> bool | | term_outctx(self, *args) -> 'int' + | Finalize the output context. + | | term_outctx(self, prefix=None) -> int + | @param prefix (C++: const char *) + | @return: the number of generated lines. | | ---------------------------------------------------------------------- | Data descriptors inherited from outctx_base_t: @@ -72423,35 +83473,32 @@ 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 + 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) - @return: success + print_insn_mnem(ea) -> str + @param ea: linear address of the instruction (C++: ea_t) + @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: 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 + print_operand(ea, n, getn_flags=0, newtype=None) -> str + @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 @@ -72721,33 +83768,30 @@ ida_ua.dt_word 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) - @return: success + add_cref(frm, to, type) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) -> '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) - @return: success (may fail if user-defined xref exists from->to) + add_dref(frm, to, type) -> bool + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) -> '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: @@ -72805,13 +83849,15 @@ class casevec_t(builtins.object) | | __eq__(self, *args) -> 'bool' | __eq__(self, r) -> bool + | 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 &↗ + | i: size_t | | __init__(self, *args) | __init__(self) -> casevec_t - | __init__(self, x) -> casevec_t + | 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. @@ -72820,20 +83866,25 @@ class casevec_t(builtins.object) | | __ne__(self, *args) -> 'bool' | __ne__(self, r) -> bool + | r: qvector< qvector< signed-ea-like-numeric-type > > const &↗ | | __repr__ = _swig_repr(self) | | __setitem__(self, *args) -> 'void' | __setitem__(self, i, v) + | i: size_t + | 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 + | x: qvector< signed-ea-like-numeric-type > const &↗ | | add_unique(self, *args) -> 'bool' | add_unique(self, x) -> bool + | x: qvector< signed-ea-like-numeric-type > const &↗ | | append = push_back(self, *args) -> 'qvector< signed-ea-like-numeric-type > &'↗ | @@ -72861,52 +83912,74 @@ 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↗ + | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | + | | erase(self, first, last) -> qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | first: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | 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↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | | find(self, x) -> qvector< qvector< signed-ea-like-numeric-type > >::const_iterator↗ + | 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 >())↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | has(self, *args) -> 'bool' | has(self, x) -> bool + | x: qvector< signed-ea-like-numeric-type > const &↗ | | inject(self, *args) -> 'void' | inject(self, s, len) + | s: qvector< signed-ea-like-numeric-type > *↗ + | 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↗ + | it: qvector< qvector< signed-ea-like-numeric-type > >::iterator↗ + | 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) - | push_back(self) -> qvector< signed-ea-like-numeric-type > &↗ + | x: qvector< signed-ea-like-numeric-type > const &↗ | | qclear(self, *args) -> 'void' | qclear(self) | | reserve(self, *args) -> 'void' | reserve(self, cnt) + | cnt: size_t | | resize(self, *args) -> 'void' | resize(self, _newsize, x) + | _newsize: size_t + | x: qvector< signed-ea-like-numeric-type > const &↗ + | + | | resize(self, _newsize) + | _newsize: size_t | | size(self, *args) -> 'size_t' | size(self) -> size_t | | swap(self, *args) -> 'void' | swap(self, r) + | r: qvector< qvector< signed-ea-like-numeric-type > > &↗ | | truncate(self, *args) -> 'void' | truncate(self) @@ -72932,8 +84005,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 @@ -72945,8 +84016,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 @@ -72961,184 +84030,172 @@ 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' 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) + del_cref(frm, to, expand) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) + @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) + del_dref(frm, to) + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @param to: linear address of referenced data (C++: ea_t) Help on function delete_switch_table in module ida_xref: delete_switch_table(*args) -> 'void' delete_switch_table(jump_ea, si) + jump_ea: ea_t + 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!). - @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 . + get_first_cref_from(frm) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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: 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. + get_first_cref_to(to) -> ea_t + @param to: linear address of referenced instruction (C++: ea_t) + @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. + get_first_dref_from(frm) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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. + get_first_dref_to(to) -> ea_t + @param to: linear address of referencing instruction or data (C++: + ea_t) + @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 frm (C++: 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 (C++: 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. + get_next_cref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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 . 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. + get_next_cref_to(to, current) -> ea_t + @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 . 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 + get_next_dref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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 . 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. + get_next_dref_to(to, current) -> ea_t + @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. 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 frm (C++: ea_t) + @param current (C++: 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 (C++: ea_t) + @param current (C++: ea_t) Help on function has_external_refs in module ida_xref: has_external_refs(*args) -> 'bool' - has_external_refs(pfn, ea) -> bool - - Has a location external to the function references? - - @param pfn (C++: func_t *) - @param ea (C++: ea_t) + has_external_refs(pfn, ea) -> bool + @param pfn (C++: func_t *) + @param ea (C++: ea_t) Help on class xrefblk_t in module ida_xref: @@ -73157,17 +84214,25 @@ class xrefblk_t(builtins.object) | | first_from(self, *args) -> 'bool' | first_from(self, _from, flags) -> bool + | _from: ea_t + | flags: int | | first_to(self, *args) -> 'bool' | first_to(self, _to, flags) -> bool + | _to: ea_t + | flags: int | | next_from(self, *args) -> 'bool' | next_from(self) -> bool - | next_from(self, _from, _to, flags) -> bool + | _from: ea_t + | _to: ea_t + | flags: int | | next_to(self, *args) -> 'bool' | next_to(self) -> bool - | next_to(self, _from, _to, flags) -> bool + | _from: ea_t + | _to: ea_t + | flags: int | | ---------------------------------------------------------------------- | Data descriptors defined here: @@ -73199,13 +84264,11 @@ class xrefblk_t(builtins.object) 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) + xrefchar(xrtype) -> char + @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 @@ -73342,15 +84405,13 @@ EVAL_FAILURE(code) 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) - @return: size of comment or -1 + get_cmt(ea, rptble) -> str + @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: @@ -73592,40 +84653,40 @@ add_auto_stkpnt(func_ea, ea, delta) Help on function add_bpt in module ida_dbg: add_bpt(*args) -> 'bool' - 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) + add_bpt(ea, size=0, type=BPT_DEFAULT) -> bool + @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) + + + add_bpt(bpt) -> bool + 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) - @return: success + add_cref(frm, to, type) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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: @@ -73638,34 +84699,32 @@ add_default_til(name) 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) - @return: success (may fail if user-defined xref exists from->to) + add_dref(frm, to, type) -> bool + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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) -> '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) - @return: success (currently always true) + add_entry(ord, ea, name, makecode, flags=0) -> bool + @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: @@ -73706,45 +84765,39 @@ add_enum_member(enum_id, name, value, bmask) 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: start address (C++: ea_t) - @param ea2: end address (C++: ea_t) - @return: success + add_func(ea1, ea2=BADADDR) -> bool + @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) -> 'bool' - 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 + add_hidden_range(ea1, ea2, description, header, footer, color) -> bool + @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) -> 'int' - 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 + add_idc_hotkey(hotkey, idcfunc) -> int + @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: @@ -73769,18 +84822,16 @@ add_segm_ex(startea, endea, base, use32, align, comb, flags) 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: 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 + add_sourcefile(ea1, ea2, filename) -> bool + @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: @@ -73837,15 +84888,13 @@ add_struc_member(sid, name, offset, flag, typeid, nbytes, target=-1, tdelta=0, r 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) - @return: success + add_user_stkpnt(ea, delta) -> bool + @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: @@ -73882,16 +84931,14 @@ ask_seg(defval, format) 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 . + ask_yn(deflt, format) -> int + @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: @@ -73909,57 +84956,53 @@ 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' }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) + attach_process(pid=pid_t(-1), event_id=-1) -> int + @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) + @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) + auto_mark_range(start, end, type) + @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) + auto_unmark(start, end, type) + @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: @@ -74014,13 +85057,11 @@ can_exc_continue() 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 + check_bpt(ea) -> int + @param ea (C++: ea_t) + @return: one of Breakpoint status codes Help on function choose_func in module idc: @@ -74042,15 +85083,12 @@ clear_trace(filename) Help on function create_align in module ida_bytes: create_align(*args) -> 'bool' - 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) + create_align(ea, length, alignment) -> bool + @param ea (C++: ea_t) + @param length (C++: asize_t) + @param alignment (C++: int) Help on function create_array in module idc: @@ -74073,37 +85111,32 @@ create_byte(ea) 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) + create_custdata(ea, length, dtid, fid, force=False) -> 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. - @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 + create_data(ea, dataflag, size, tid) -> bool + @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: @@ -74135,18 +85168,16 @@ create_float(ea) 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: linear address (C++: ea_t) - @param out: the resulting instruction (C++: insn_t *) - @return: the length of the instruction or 0 + create_insn(ea, out=None) -> int + @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: @@ -74234,18 +85265,16 @@ create_yword(ea) 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 + define_exception(code, name, desc, flags) -> char const * + @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: @@ -74279,51 +85308,49 @@ del_array_element(tag, array_id, idx) Help on function del_bpt in module ida_dbg: del_bpt(*args) -> 'bool' - 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) + del_bpt(ea) -> bool + @param ea: any address in the breakpoint range (C++: ea_t) + + + del_bpt(bptloc) -> bool + 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' 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) + del_cref(frm, to, expand) -> bool + @param frm: linear address of referencing instruction (C++: ea_t) + @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) + @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) + del_dref(frm, to) + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @param to: linear address of referenced data (C++: ea_t) 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) + del_enum(id) + @param id (C++: enum_t) Help on function del_enum_member in module idc: @@ -74343,28 +85370,25 @@ Help on function del_extra_cmt in module ida_lines: del_extra_cmt(*args) -> 'void' del_extra_cmt(ea, what) + ea: ea_t + 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) + del_fixup(source) + @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) - @return: success + del_func(ea) -> bool + @param ea: any address in the function entry chunk (C++: ea_t) + @return: success Help on function del_hash_string in module idc: @@ -74379,83 +85403,76 @@ del_hash_string(hash_id, key) 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) - @return: success + del_hidden_range(ea) -> bool + @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) -> 'bool' - del_idc_hotkey(hotkey) -> bool - - Delete IDC function hotkey ( 'ui_del_idckey' ). - @param hotkey: hotkey name (C++: const char *) + del_idc_hotkey(hotkey) -> bool + @param hotkey: hotkey name (C++: const char *) + @retval: 1 - ok + @retval: 0 - failed 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: 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 + del_items(ea, flags=0, nbytes=1, may_destroy=None) -> bool + @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) -> '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) + del_segm(ea, flags) -> bool + @param ea: any address belonging to the segment (C++: ea_t) + @param flags: Segment modification flags (C++: int) + @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: number of selector to remove from the translation - table (C++: sel_t) + del_selector(selector) + @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) -> 'void' del_source_linnum(ea) + @param ea (C++: 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) - @return: success + del_sourcefile(ea) -> bool + @param ea: linear address (C++: ea_t) + @return: success Help on function del_stkpnt in module idc: @@ -74522,25 +85539,28 @@ demangle_name(name, disable_mask) 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(nonnul_filename) -> bool - - Show difference between the current trace and the one from 'filename'. + + diff_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function enable_bpt in module ida_dbg: enable_bpt(*args) -> 'bool' enable_bpt(ea, enable=True) -> bool + @param ea (C++: ea_t) + @param enable (C++: bool) + + enable_bpt(bptloc, enable=True) -> bool + bptloc: bpt_location_t const & + @param enable (C++: bool) Help on function enable_tracing in module idc: @@ -74556,8 +85576,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 @@ -74577,9 +85595,6 @@ eval_idc(expr) 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' } @@ -74613,38 +85628,29 @@ find_binary(ea, flag, searchstr, radix=16, from_bc695=False) 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) + find_code(ea, sflag) -> ea_t + @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) + find_data(ea, sflag) -> ea_t + @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) + find_defined(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function find_func_end in module idc: @@ -74660,15 +85666,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 next immediate operand with the given value. - - @param newEA (C++: ea_t) - @param sflag (C++: int) - @param srchValue (C++: uval_t) + find_imm(ea, sflag, search_value) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) + @param search_value (C++: uval_t) Help on function find_selector in module idc: @@ -74685,14 +85688,11 @@ find_selector(val) 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) + find_suspop(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function find_text in module idc: @@ -74701,14 +85701,11 @@ find_text(ea, flag, y, x, searchstr, from_bc695=False) 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) + find_unknown(ea, sflag) -> ea_t + @param ea (C++: ea_t) + @param sflag (C++: int) Help on function first_func_chunk in module idc: @@ -74882,11 +85879,13 @@ Help on function get_marked_pos in module ida_idc: get_marked_pos(*args) -> 'ea_t' get_marked_pos(slot) -> ea_t + slot: int32 Help on function get_mark_comment in module ida_idc: get_mark_comment(*args) -> 'PyObject *' get_mark_comment(slot) -> PyObject * + slot: int32 Help on function get_bpt_attr in module idc: @@ -74910,18 +85909,12 @@ get_bpt_ea(n) 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)}Usually, a breakpoint is associated with a read, read/write @@ -74930,9 +85923,10 @@ get_bpt_tev_ea(*args) -> 'ea_t' 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. + get_bpt_tev_ea(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -74951,15 +85945,13 @@ get_bytes(ea, size, use_dbg=False) 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: 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. + get_call_tev_callee(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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: @@ -74981,24 +85973,19 @@ get_curline() 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) + get_db_byte(ea) -> uchar + @param ea (C++: ea_t) Help on function get_debugger_event_cond in module ida_dbg: @@ -75008,89 +85995,69 @@ get_debugger_event_cond(*args) -> '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: ordinal number of entry point (C++: uval_t) - @return: address or BADADDR + get_entry(ord) -> ea_t + @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) -> '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) - @return: size of entry name or -1 + get_entry_name(ord) -> str + @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) -> '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) - @return: ordinal number or 0. + get_entry_ordinal(idx) -> uval_t + @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) -> '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 *) + get_enum(name) -> enum_t + @param name (C++: const char *) 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) + get_enum_cmt(id, repeatable) -> str + @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 flags determining the representation of the enum. (currently they define the numeric base: octal, decimal, hex, bin) and signness. - @param id (C++: enum_t) + get_enum_flag(id) -> flags_t + @param id (C++: enum_t) Help on function get_enum_idx in module ida_enum: get_enum_idx(*args) -> 'uval_t' + Get the index in the list of enums. + 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) + @param id (C++: enum_t) Help on function get_enum_member in module idc: @@ -75109,24 +86076,18 @@ get_enum_member(enum_id, value, serial, bmask) 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) + get_enum_member_bmask(id) -> bmask_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 *) + get_enum_member_by_name(name) -> const_t + @param name (C++: const char *) Help on function get_enum_member_cmt in module idc: @@ -75141,13 +86102,10 @@ get_enum_member_cmt(const_id, repeatable) 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) + get_enum_member_enum(id) -> enum_t + @param id (C++: const_t) Help on function get_enum_member_name in module idc: @@ -75161,54 +86119,40 @@ get_enum_member_name(const_id) 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) + get_enum_member_value(id) -> uval_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) + get_enum_name(id) -> str + @param id (C++: 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) + get_enum_size(id) -> size_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 - @param id (C++: enum_t) + get_enum_width(id) -> size_t + @param id (C++: enum_t) Help on function get_event_bpt_hea in module idc: @@ -75307,6 +86251,8 @@ Help on function get_extra_cmt in module ida_lines: get_extra_cmt(*args) -> 'int' get_extra_cmt(ea, what) -> ssize_t + ea: ea_t + what: int Help on function get_fchunk_attr in module idc: @@ -75322,75 +86268,67 @@ Help on function get_fchunk_referer in module ida_funcs: get_fchunk_referer(*args) -> 'ea_t' get_fchunk_referer(ea, idx) -> ea_t + ea: ea_t + 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 bitmask in the enum (bitfield) - @param id (C++: enum_t) - @return: the smallest bitmask for enum, or DEFMASK + get_first_bmask(id) -> bmask_t + @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) -> '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!). - @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 . + get_first_cref_from(frm) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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: 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. + get_first_cref_to(to) -> ea_t + @param to: linear address of referenced instruction (C++: ea_t) + @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. + get_first_dref_from(frm) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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. + get_first_dref_to(to) -> ea_t + @param to: linear address of referencing instruction or data (C++: + ea_t) + @return: BADADDR if nobody refers to the specified data. Help on function get_first_enum_member in module idc: @@ -75407,11 +86345,13 @@ 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 frm (C++: 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 (C++: ea_t) Help on function get_first_hash_key in module idc: @@ -75470,12 +86410,7 @@ get_first_seg() 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: @@ -75530,14 +86465,12 @@ get_fixup_target_type(ea) 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) - @return: size of forced operand or -1 + get_forced_operand(ea, n) -> str + @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: @@ -75601,13 +86534,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 flags value for address 'ea'. - @param ea (C++: ea_t) - @return: 0 if address is not present in the program + get_full_flags(ea) -> flags_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: @@ -75697,34 +86628,27 @@ get_inf_attr(attr) 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) + get_item_end(ea) -> 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) - @param ea (C++: ea_t) + get_item_head(ea) -> ea_t + @param ea (C++: ea_t) Help on function get_item_size in module idc: @@ -75738,13 +86662,11 @@ 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 bitmask in the enum (bitfield) - @param id (C++: enum_t) - @return: the biggest bitmask for enum, or DEFMASK + get_last_bmask(id) -> bmask_t + @param id (C++: enum_t) + @return: the biggest bitmask for enum, or DEFMASK Help on function get_last_enum_member in module idc: @@ -75800,13 +86722,7 @@ get_last_member(sid) 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: @@ -75819,13 +86735,11 @@ get_local_tinfo(ordinal) 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) - @return: size of manual instruction or -1 + get_manual_insn(ea) -> str + @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: @@ -75998,18 +86912,16 @@ get_name(ea, gtn_flags=0) Help on function get_name_ea in module ida_name: get_name_ea(*args) -> 'ea_t' - 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 + get_name_ea(_from, name) -> ea_t + @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: @@ -76024,76 +86936,65 @@ 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 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 + get_next_bmask(id, bmask) -> bmask_t + @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) -> '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. + get_next_cref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction (C++: ea_t) + @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 . 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. + get_next_cref_to(to, current) -> ea_t + @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 . 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 + get_next_dref_from(frm, current) -> ea_t + @param frm: linear address of referencing instruction or data (C++: + ea_t) + @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 . 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. + get_next_dref_to(to, current) -> ea_t + @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. Help on function get_next_enum_member in module idc: @@ -76123,22 +87024,24 @@ 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 frm (C++: ea_t) + @param current (C++: 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 (C++: ea_t) + @param current (C++: 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) - @return: the next address with fixup information, or BADADDR + get_next_fixup_ea(ea) -> ea_t + @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: @@ -76217,13 +87120,11 @@ get_next_seg(ea) 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++ + get_next_struc_idx(idx) -> uval_t + @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: @@ -76274,26 +87175,22 @@ get_ordinal_qty() 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) + get_original_byte(ea) -> uint64 + @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 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 + get_prev_bmask(id, bmask) -> bmask_t + @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: @@ -76323,13 +87220,11 @@ get_prev_fchunk(ea) 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) - @return: the previous address with fixup information, or BADADDR + get_prev_fixup_ea(ea) -> ea_t + @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: @@ -76389,91 +87284,77 @@ get_prev_offset(sid, offset) 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 + get_prev_struc_idx(idx) -> uval_t + @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 *) - @return: number of processes or -1 on error + get_processes(proclist) -> ssize_t + @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) -> '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 \inf{is_be()} This function works only for 8bit byte processors. - @param ea (C++: ea_t) + get_qword(ea) -> uint64 + @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 *' + Read a register value from the current thread. \sq{Type, Synchronous + function, Notification, none (synchronous function)} - @param name: the register name + get_reg_val(regname, regval) -> bool + @param regname (C++: const char *) + @param regval (C++: 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. - @return: register value (integer or floating point) + get_reg_val(regname, ival) -> bool + @param regname (C++: const char *) + ival: uint64 * + + + get_reg_val(regname) -> PyObject * + @param regname (C++: const char *) 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: 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. + get_ret_tev_return(n) -> ea_t + @param n: number of trace event, is in range 0.. get_tev_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) -> '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: @@ -76527,20 +87408,19 @@ Help on function get_source_linnum in module ida_nalt: get_source_linnum(*args) -> 'uval_t' get_source_linnum(ea) -> uval_t + @param ea (C++: 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 + get_sourcefile(ea, bounds=None) -> char const * + @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: @@ -76582,13 +87462,8 @@ get_sreg(ea, reg) 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: @@ -76612,83 +87487,67 @@ get_strlit_contents(ea, length=-1, strtype=0) 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) + get_struc_by_idx(idx) -> tid_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) + get_struc_cmt(id, repeatable) -> str + @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 *) + get_struc_id(name) -> tid_t + @param name (C++: const char *) 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) + get_struc_idx(id) -> uval_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) + get_struc_name(id, flags=0) -> str + @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) -> '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_struc_size(id) -> asize_t - - Get struct size (also see 'get_struc_size(tid_t)' ) + get_struc_size(sptr) -> asize_t + @param sptr (C++: const struc_t *) - @param sptr (C++: const struc_t *) + + get_struc_size(id) -> asize_t + 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 (C++: int) Help on function get_tev_reg_mem in module ida_dbg: @@ -76705,9 +87564,6 @@ 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)} @@ -76719,18 +87575,17 @@ Help on function get_tev_tid in module ida_dbg: get_tev_tid(*args) -> 'int' get_tev_tid(n) -> int + @param n (C++: int) Help on function get_tev_type in module ida_dbg: get_tev_type(*args) -> 'int' get_tev_type(n) -> int + @param n (C++: 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)} @@ -76745,13 +87600,10 @@ get_tinfo(ea) 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 *) + get_trace_file_desc(filename) -> str + @param filename (C++: const char *) Help on function get_type in module idc: @@ -76765,41 +87617,35 @@ get_type(ea) 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) + get_wide_byte(ea) -> uint64 + @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 \inf{is_be()}this function works incorrectly if \ph{nbits} > 16 - @param ea (C++: ea_t) + get_wide_dword(ea) -> uint64 + @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 \inf{is_be()} - @param ea (C++: ea_t) + get_wide_word(ea) -> uint64 + @param ea (C++: ea_t) Help on function get_xref_type in module idc: @@ -76812,39 +87658,32 @@ get_xref_type() Help on function getn_enum in module ida_enum: getn_enum(*args) -> 'enum_t' - getn_enum(n) -> 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) + getn_enum(idx) -> enum_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)} - @param n: number of thread, is in range 0.. get_thread_qty() -1 (C++: - int) - @return: NO_THREAD if the thread doesn't exist. + getn_thread(n) -> thid_t + @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) -> 'char const *' - 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. + getn_thread_name(n) -> char const * + @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: @@ -76939,13 +87778,11 @@ 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) + is_bf(id) -> bool + @param id (C++: enum_t) Help on function is_byte in module idc: @@ -77106,13 +87943,10 @@ 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 *) + is_valid_trace_file(filename) -> bool + @param filename (C++: const char *) Help on function is_word in module idc: @@ -77121,45 +87955,47 @@ is_word(F) Help on function jumpto in module ida_kernwin: jumpto(*args) -> 'bool' - 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 + jumpto(ea, opnum=-1, uijmp_flags=0x0001) -> bool + @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 + + + jumpto(custom_viewer, place, x, y) -> bool + custom_viewer: TWidget * + place: place_t * + x: int + y: int + @return: success 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) + load_and_run_plugin(name, arg) -> bool + @param name (C++: const char *) + @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 (C++: const char *) + @param use_remote (C++: 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 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 *) + load_trace_file(filename) -> str + @param filename (C++: const char *) Help on function loadfile in module idc: @@ -77199,8 +88035,6 @@ Help on function msg in module ida_kernwin: msg(*args) -> 'PyObject *' msg(o) -> PyObject * - - Display an UTF-8 string in the message window The result of the stringification of the arguments @@ -77213,13 +88047,11 @@ msg(*args) -> 'PyObject *' 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. + next_addr(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if no such address exist. Help on function next_func_chunk in module idc: @@ -77247,145 +88079,115 @@ next_head(ea, maxea=BADADDR)↗ 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. + next_not_tail(ea) -> ea_t + @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) + op_bin(ea, n) -> bool + @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) + op_chr(ea, n) -> bool + @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) + op_dec(ea, n) -> bool + @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: 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 + op_enum(ea, n, id, serial) -> bool + @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) -> 'bool' - op_flt(ea, n) -> bool - - set op type to 'flt_flag()' - - @param ea (C++: ea_t) - @param n (C++: int) + op_flt(ea, n) -> bool + @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) + op_hex(ea, n) -> bool + @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 *) - @return: success + set_forced_operand(ea, n, op) -> bool + @param ea: linear address (C++: ea_t) + @param n: number of operand (0, 1, 2) (C++: int) + @param op: text of operand nullptr: do nothing (return 0) "" : + delete forced operand (C++: const char *) + @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) + op_num(ea, n) -> bool + @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) + op_oct(ea, n) -> bool + @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' 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) + op_offset(ea, n, type, target=BADADDR, base=0, tdelta=0) -> bool + @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: @@ -77445,29 +88247,25 @@ op_plain_offset(ea, n, base) 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: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + op_seg(ea, n) -> bool + @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) -> '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: linear address (C++: ea_t) - @param n: number of operand (0, 1, -1) (C++: int) - @return: success + op_stkvar(ea, n) -> bool + @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: @@ -77506,69 +88304,79 @@ parse_decls(inputtype, flags=0) 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. - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_byte(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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) - @return: true if the process memory has been modified + put_dbg_byte(ea, x) -> bool + @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) -> '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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_dword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_qword(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. 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 \inf{is_be()} - @param ea (C++: ea_t) - @param x (C++: uint64) + patch_word(ea, x) -> bool + @param ea (C++: ea_t) + @param x (C++: uint64) + @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. Help on function plan_and_wait in module idc: @@ -77584,26 +88392,22 @@ plan_and_wait(sEA, eEA, final_pass=True) 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 + plan_to_apply_idasgn(fname) -> int + @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) -> '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. + prev_addr(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if no such address exist. Help on function prev_head in module idc: @@ -77619,13 +88423,11 @@ prev_head(ea, minea=0) 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. + prev_not_tail(ea) -> ea_t + @param ea (C++: ea_t) + @return: BADADDR if none exists. Help on function print_decls in module idc: @@ -77695,11 +88497,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: @@ -77714,16 +88512,20 @@ Help on function mark_position in module ida_idc: mark_position(*args) -> 'void' mark_position(ea, lnnum, x, y, slot, comment) + ea: ea_t + lnnum: int + x: short + y: short + slot: int32 + 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) + qexit(code) + @param code: exit code (C++: int) Help on function qsleep in module idc: @@ -77753,8 +88555,6 @@ 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) @@ -77804,23 +88604,18 @@ 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: 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 + rebase_program(delta, flags) -> int + @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) -> '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 @@ -77829,23 +88624,21 @@ recalc_spd(*args) -> 'bool' current instruction doesn't pass the execution flow to the next instruction. - @param cur_ea: linear address of the current instruction (C++: ea_t) + recalc_spd(cur_ea) -> bool + @param cur_ea: linear address of the current instruction (C++: ea_t) + @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 @@ -77877,17 +88670,15 @@ rename_array(array_id, newname) 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) - @return: success + rename_entry(ord, name, flags=0) -> bool + @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: @@ -77896,20 +88687,18 @@ 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: thread id (C++: thid_t) + resume_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @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: @@ -77941,9 +88730,6 @@ 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) @@ -77951,11 +88737,12 @@ run_to(*args) -> 'bool' 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) + run_to(ea, pid=pid_t(-1), tid=0) -> bool + @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: @@ -77969,14 +88756,11 @@ save_database(idbname, flags=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 *) - @param description (C++: const char *) + save_trace_file(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) Help on function savefile in module idc: @@ -77997,16 +88781,14 @@ sel2para(sel) 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: ID of the thread to select (C++: thid_t) - @return: false if the thread doesn't exist. + select_thread(tid) -> bool + @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: @@ -78110,16 +88892,14 @@ set_bpt_cond(ea, cnd, is_lowcnd=0) 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) - @return: success + set_cmt(ea, comm, rptble) -> bool + @param ea: linear address (C++: ea_t) + @param comm: comment string nullptr: 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: @@ -78135,19 +88915,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(evcond) + @param evcond (C++: const char *) 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 + set_debugger_options(options) -> uint + @param options (C++: uint) + @return: the old debugger options Help on function set_default_sreg_value in module idc: @@ -78163,99 +88942,76 @@ set_default_sreg_value(ea, reg, value) 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) + set_enum_bf(id, bf) -> 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) + set_enum_cmt(id, cmt, repeatable) -> bool + @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) -> 'bool' - set_enum_flag(id, flag) -> bool - - Set data representation flags. - - @param id (C++: enum_t) - @param flag (C++: flags_t) + set_enum_flag(id, flag) -> bool + @param id (C++: enum_t) + @param flag (C++: flags_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) + set_enum_idx(id, idx) -> bool + @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) + set_enum_member_cmt(id, cmt, repeatable) -> bool + @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) -> 'bool' - set_enum_member_name(id, name) -> bool - - Set name of enum member. - - @param id (C++: const_t) - @param name (C++: const char *) + set_enum_member_name(id, name) -> bool + @param id (C++: const_t) + @param name (C++: const char *) 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 *) + set_enum_name(id, name) -> bool + @param id (C++: enum_t) + @param name (C++: const char *) 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) + set_enum_width(id, width) -> bool + @param id (C++: enum_t) + @param width (C++: int) Help on function set_fchunk_attr in module idc: @@ -78327,14 +89083,12 @@ set_func_cmt(ea, cmt, repeatable) 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) - @return: success + set_func_end(ea, newend) -> bool + @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: @@ -78371,13 +89125,11 @@ set_hash_string(hash_id, key, value) 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) - @return: old indicator status + set_ida_state(st) -> idastate_t + @param st: - new indicator status (C++: idastate_t) + @return: old indicator status Help on function set_inf_attr in module idc: @@ -78400,14 +89152,12 @@ set_local_type(ordinal, input, flags) 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 *) + set_manual_insn(ea, manual_insn) + @param ea: linear address of the instruction or data item (C++: ea_t) + @param manual_insn: "" - delete manual string. nullptr - do nothing + (C++: const char *) Help on function set_member_cmt in module idc: @@ -78475,16 +89225,14 @@ set_name(ea, name, flags=0) 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: name of processor type (one of names present in - \ph{psnames}) (C++: const char *) - @param level: SETPROC_ (C++: setproc_level_t) - @return: success + set_processor_type(procname, level) -> bool + @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: @@ -78501,26 +89249,22 @@ set_reg_value(value, name) 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: 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) + set_remote_debugger(host, _pass, port=-1) + @param host: If empty, IDA will use local debugger. If NULL, the host + will not be set. (C++: const char *) + pass: char const * + @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) -> 'void' - set_root_filename(file) - - Set full path of the input file. - - @param file (C++: const char *) + set_root_filename(file) + @param file (C++: const char *) Help on function set_segm_addressing in module idc: @@ -78609,62 +89353,57 @@ set_segment_bounds(ea, startea, endea, flags) 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 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) + set_selector(selector, paragraph) -> int + @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) + @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 (C++: ea_t) + @param lnnum (C++: 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) + set_step_trace_options(options) + @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) - @return: error code + change_storage_type(start_ea, end_ea, stt) -> error_t + @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) -> '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) + set_struc_cmt(id, cmt, repeatable) -> bool + @param id (C++: tid_t) + @param cmt (C++: const char *) + @param repeatable (C++: bool) Help on function set_struc_idx in module idc: @@ -78682,14 +89421,11 @@ set_struc_idx(sid, index) 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 *) + set_struc_name(id, name) -> bool + @param id (C++: tid_t) + @param name (C++: const char *) Help on function set_tail_owner in module idc: @@ -78706,26 +89442,21 @@ set_tail_owner(tailea, funcea) 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) - @return: success + set_target_assembler(asmnum) -> bool + @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) -> '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 *) + set_trace_file_desc(filename, description) -> bool + @param filename (C++: const char *) + @param description (C++: const char *) Help on function split_sreg_range in module idc: @@ -78744,9 +89475,6 @@ split_sreg_range(ea, reg, value, tag=2) 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' }You can also use the 'run_to()' function to easily start the execution of a process @@ -78754,16 +89482,17 @@ start_process(*args) -> 'int' 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 *) + start_process(path=None, args=None, sdir=None) -> int + @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 *) + @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' } @@ -78771,9 +89500,6 @@ step_into(*args) -> 'bool' 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' } @@ -78781,9 +89507,6 @@ step_over(*args) -> 'bool' 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, @@ -78804,9 +89527,6 @@ 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 @@ -78819,27 +89539,26 @@ suspend_process(*args) -> 'bool' 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: thread id (C++: thid_t) + suspend_thread(tid) -> int + @param tid: thread id (C++: thid_t) + @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 a memory snapshot of the running process. - @param only_loader_segs: only is_loader_segm() segments will be - affected (C++: bool) - @return: success + take_memory_snapshot(only_loader_segs) -> bool + @param only_loader_segs: only is_loader_segm() segments will be + affected (C++: bool) + @return: success Help on function to_ea in module idc: @@ -78860,19 +89579,20 @@ toggle_bnot(ea, n) 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) + toggle_sign(ea, n) -> bool + @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) + ea: ea_t + what: int + str: char const * Help on function update_hidden_range in module idc: @@ -78931,25 +89651,21 @@ value_is_string(var) 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: 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) + wait_for_next_event(wfne, timeout) -> dbg_event_code_t + @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) -> 'void' warning(format) - - Display a message in a message box @param message: message to print (formatting is done in Python) 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 +%} + +%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..a88f59f 100644 --- a/swig/bytes.i +++ b/swig/bytes.i @@ -15,18 +15,13 @@ %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; diff --git a/swig/dbg.i b/swig/dbg.i index 1300b8c..20431ef 100644 --- a/swig/dbg.i +++ b/swig/dbg.i @@ -58,6 +58,9 @@ %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; + //------------------------------------------------------------------------- // get_process_options() %define %get_process_options_out_qstring(ARG_NAME) @@ -107,13 +110,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 diff --git a/swig/dirtree.i b/swig/dirtree.i new file mode 100644 index 0000000..b290af2 --- /dev/null +++ b/swig/dirtree.i @@ -0,0 +1,11 @@ + +%{ +#include +%} + +%apply SWIGTYPE *DISOWN { dirspec_t *ds }; + +%template(direntry_vec_t) qvector; +%template(dirtree_cursor_vec_t) qvector; + +%include "dirtree.hpp" diff --git a/swig/expr.i b/swig/expr.i index af96bdb..24d8718 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); %{ diff --git a/swig/funcs.i b/swig/funcs.i index 84cca2f..4ec7c63 100644 --- a/swig/funcs.i +++ b/swig/funcs.i @@ -21,11 +21,12 @@ %ignore func_t::llabelqty; %ignore func_t::llabels; -%template (stkpnt_array) dynamic_wrapped_array_t; -%template (regvar_array) dynamic_wrapped_array_t; -%template (range_array) dynamic_wrapped_array_t; -%template (regarg_array) dynamic_wrapped_array_t; +%template (dyn_stkpnt_array) dynamic_wrapped_array_t; +%template (dyn_regvar_array) dynamic_wrapped_array_t; +%template (dyn_range_array) dynamic_wrapped_array_t; +%template (dyn_ea_array) dynamic_wrapped_array_t; +%template (dyn_regarg_array) dynamic_wrapped_array_t; %extend func_t { @@ -48,6 +49,10 @@ return dynamic_wrapped_array_t($self->tails, $self->tailqty); } + dynamic_wrapped_array_t __get_referers__() + { + return dynamic_wrapped_array_t($self->referers, $self->refqty); + } dynamic_wrapped_array_t __get_regargs__() { @@ -60,6 +65,7 @@ points = property(__get_points__) regvars = property(__get_regvars__) tails = property(__get_tails__) + referers = property(__get_referers__) regargs = property(__get_regargs__) } } diff --git a/swig/gdl.i b/swig/gdl.i index 57e6e78..88e568c 100644 --- a/swig/gdl.i +++ b/swig/gdl.i @@ -11,7 +11,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/hexrays.i b/swig/hexrays.i index 4e21d4d..a9db474 100644 --- a/swig/hexrays.i +++ b/swig/hexrays.i @@ -9,14 +9,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 @@ -83,6 +76,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 +92,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,13 +126,16 @@ 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; %ignore simple_graph_t::simple_graph_t; %ignore simple_graph_t::~simple_graph_t; @@ -210,7 +207,7 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); %ignore mba_ranges_t::range_contains; %newobject gen_microcode; -%define_hexrays_lifecycle_object(mbl_array_t); +%define_hexrays_lifecycle_object(mba_t); #ifdef PY3 %const_void_pointer_and_size(uchar, bytes, nbytes); #else @@ -223,13 +220,14 @@ static void _kludge_use_TPopupMenu(TPopupMenu *m); %apply ulonglong *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 +243,9 @@ 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) // "Warning 473: Returning a pointer or reference in a director method is not recommended." %warnfilter(473) codegen_t::emit_micro_mvm; @@ -379,12 +378,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, @@ -533,6 +533,9 @@ public: } }; +//------------------------------------------------------------------------- +// Have SWiG generate constructors/destructors for the bitset_t::iterator +%feature("flatnested") bitset_t::iterator; //------------------------------------------------------------------------- // diff --git a/swig/idd.i b/swig/idd.i index 2ffbf12..b0fe335 100644 --- a/swig/idd.i +++ b/swig/idd.i @@ -5,6 +5,9 @@ #include %} +%ignore dynamic_register_set_t; +%ignore serialize_dynamic_register_set; +%ignore deserialize_dynamic_register_set; %ignore free_debug_event; %ignore copy_debug_event; %ignore debugger_t; diff --git a/swig/idp.i b/swig/idp.i index f5c357f..5f6de3a 100644 --- a/swig/idp.i +++ b/swig/idp.i @@ -9,11 +9,11 @@ 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 +26,13 @@ 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 parse_config_value; %define_Hooks_class(IDP); @@ -45,10 +48,16 @@ struct undo_records_t; %ignore asm_t::get_type_name; %ignore instruc_t; %ignore processor_t; -%ignore ph; %ignore IDP_Hooks::dispatch; %ignore _py_getreg; +%ignore event_listener_t; +%ignore hook_event_listener; +%ignore unhook_event_listener; +%ignore ignore_micro_t; +%ignore procmod_t; +%ignore plugmod_t; + // @arnaud %ignore notify__calc_next_eas; %ignore notify__custom_ana; @@ -71,12 +80,18 @@ struct undo_records_t; %ignore notify__make_code; // @arnaud ^^^ +%template(reg_access_vec_t) qvector; + +// 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); diff --git a/swig/kernwin.i b/swig/kernwin.i index af6efcd..9d9ba43 100644 --- a/swig/kernwin.i +++ b/swig/kernwin.i @@ -1,21 +1,20 @@ + %{ #include #include %} +%{ +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 @@ -267,6 +266,21 @@ SWIG_DECLARE_PY_CLINKED_OBJECT(textctrl_info_t) %ignore remove_command_interpreter; %rename (remove_command_interpreter) py_remove_command_interpreter; +%ignore qvector::grow; +%template(line_rendering_output_entries_refs_t) qvector; +%ignore line_rendering_output_entries_refs_t::push_back; + +%ignore qvector::grow; +%template(section_lines_refs_t) qvector; +%template(sections_lines_refs_t) qvector; + +%uncomparable_elements_qvector(twinline_t, text_t); + +%ignore qvector::grow; +%ignore qvector::resize; +%ignore qvector::push_back(); +%template(sync_source_vec_t) qvector; + // // @@ -274,6 +288,19 @@ SWIG_DECLARE_PY_CLINKED_OBJECT(textctrl_info_t) %uncomparable_elements_qvector(disasm_line_t, disasm_text_t); +%extend qvector { + 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) { @@ -301,7 +328,7 @@ 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; } diff --git a/swig/lines.i b/swig/lines.i index bc9a8eb..494f855 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; @@ -59,7 +65,7 @@ // %} -%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..7c6645d 100644 --- a/swig/lumina.i +++ b/swig/lumina.i @@ -121,13 +121,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 ( !IDAPyBytes_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 ( IDAPyBytes_AsMemAndSize($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); } } 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/netnode.i b/swig/netnode.i index 1e36213..6c062d1 100644 --- a/swig/netnode.i +++ b/swig/netnode.i @@ -77,6 +77,8 @@ %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 +105,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); diff --git a/swig/search.i b/swig/search.i index 65d1501..356b51f 100644 --- a/swig/search.i +++ b/swig/search.i @@ -6,5 +6,10 @@ %ignore search; %ignore user2bin; +%inline %{ +// +// +%} + %include "search.hpp" %clear int *opnum; diff --git a/swig/segment.i b/swig/segment.i index 9f63d03..f00e7cf 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; 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 %} -// 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/struct.i b/swig/struct.i index 9320083..b2cdc79 100644 --- a/swig/struct.i +++ b/swig/struct.i @@ -47,18 +47,20 @@ } } -%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; //------------------------------------------------------------------------- %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(uint32 index) + dynamic_wrapped_array_t __get_members__() { - return index < $self->memqty ? &$self->members[index] : nullptr; + return dynamic_wrapped_array_t($self->members, $self->memqty); + } + + %pythoncode { + members = property(__get_members__) + def get_member(self, index): + return self.members[index] } } diff --git a/swig/ua.i b/swig/ua.i index 7fa05bd..5412666 100644 --- a/swig/ua.i +++ b/swig/ua.i @@ -72,6 +72,10 @@ 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 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..b8088f6 100644 --- a/tools/chkapi.py +++ b/tools/chkapi.py @@ -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", }, diff --git a/tools/deploy/header.i.in b/tools/deploy/header.i.in index 6047753..04dfa35 100644 --- a/tools/deploy/header.i.in +++ b/tools/deploy/header.i.in @@ -15,6 +15,15 @@ #define SWIG_PYTHON_LEGACY_BOOL 1 +%{ +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"); @@ -329,7 +338,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. */ @@ -818,6 +827,23 @@ 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) @@ -946,6 +972,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( @@ -1100,6 +1144,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) @@ -1219,13 +1264,13 @@ 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; @@ -1253,13 +1298,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; @@ -1463,7 +1508,10 @@ 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) { @@ -1681,6 +1729,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 +1759,10 @@ 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} + #endif // __HEADER_I__ // END: auto-inserted header 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..cbece85 100644 --- a/tools/dumpdoc.py +++ b/tools/dumpdoc.py @@ -3,6 +3,7 @@ import re import sys import inspect import types +import argparse 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,6 +15,7 @@ import inspect import pydoc import idc +output, wrappers_dir, is_64 = idc.ARGV[1], idc.ARGV[2], idc.ARGV[3] == "True" try: from cStringIO import StringIO @@ -106,6 +108,10 @@ 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" : [ (( @@ -142,18 +148,34 @@ 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_nalt.strpath_ids_array" : [ (( @@ -165,6 +187,11 @@ all_specific_translations = { "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 +233,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 +277,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,8 +298,40 @@ all_specific_translations = { "Helper for pickle.", ), "helper for pickle", False), ], + + # + # The following is a kludge: IDA 7.5 ships with + # release_pydoc_injections*.txt and ida_nalt.py files that have + # a very slightly different wrapping. We want to prevent this + # from building IDAPython under the SDK. + # + "ida_nalt.set_outfile_encoding_idx" : [ + (( + "the encoding index idx can be 0 to use the IDB's default 1", + "the encoding index idx can be 0 to use the IDB's default", + ), "", False ), + (( + "1-byte-per-unit encoding (C++: int)", + "-byte-per-unit encoding (C++: int)", + ), "", False ), + ], } +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: @@ -267,8 +359,6 @@ 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] - # By default, pydoc.help() hides members that start with "_" # unless they start and end with "__" (with an exception for # __doc__ and __module__) diff --git a/tools/gen_idc_bc695.py b/tools/gen_idc_bc695.py index 118470f..1505bfd 100644 --- a/tools/gen_idc_bc695.py +++ b/tools/gen_idc_bc695.py @@ -71,6 +71,7 @@ forbidden = [ "SetSegmentType", "CleanupAppcall", "DelUserInfo", + "process_config_line", ] symbols_modules = [ diff --git a/tools/genhooks/doxy_gen_notifs.cfg.in b/tools/genhooks/doxy_gen_notifs.cfg.in index 9cfb06c..7e5965c 100644 --- a/tools/genhooks/doxy_gen_notifs.cfg.in +++ b/tools/genhooks/doxy_gen_notifs.cfg.in @@ -1989,7 +1989,6 @@ PREDEFINED = __cplusplus \ __NT__ \ _MSC_VER \ UNICODE \ - NO_OBSOLETE_FUNCS \ define_place_exported_functions()= \ define_place_virtual_functions()= \ AS_PRINTF()= \ diff --git a/tools/genhooks/genhooks.py b/tools/genhooks/genhooks.py index 30fb4ba..6d68c6b 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: @@ -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..836cf29 100644 --- a/tools/genhooks/recipe_hexrays.py +++ b/tools/genhooks/recipe_hexrays.py @@ -18,3 +18,5 @@ recipe = { } } } + +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..a70f660 100644 --- a/tools/genhooks/recipe_idphooks.py +++ b/tools/genhooks/recipe_idphooks.py @@ -187,3 +187,5 @@ recipe = { }, }, } + +default_rtype = "int" diff --git a/tools/genhooks/recipe_uihooks.py b/tools/genhooks/recipe_uihooks.py index 508f52e..7debb8c 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" : { @@ -70,7 +69,7 @@ recipe = { "create_desktop_widget" : { "params" : { "cfg" : { - "type" : "jobj_wrapper_t", + "type" : "const jobj_wrapper_t &", "convertor" : "UI_Hooks::wrap_widget_cfg", "convertor_pass_args" : True, }, @@ -104,3 +103,5 @@ recipe = { }, }, } + +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/genswigheader.py b/tools/genswigheader.py index ed9d893..e35ef89 100644 --- a/tools/genswigheader.py +++ b/tools/genswigheader.py @@ -35,12 +35,32 @@ with open(args.input) as fin: 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", "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 == NULL ) + 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..1899fac --- /dev/null +++ b/tools/hooks_utils.py @@ -0,0 +1,230 @@ + +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 recipe_idphooks +import recipe_idbhooks +import recipe_dbghooks +import recipe_uihooks +import recipe_viewhooks +import recipe_hexrays + +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 = { + "IDP_Hooks" : enum_info_t( + "structprocessor__t.xml", + "event_t", + [], + None, + [], + recipe_idphooks.recipe, + recipe_idphooks.default_rtype), + + "IDB_Hooks" : enum_info_t( + "namespaceidb__event.xml", + "event_code_t", + [], + None, + [], + recipe_idbhooks.recipe, + recipe_idbhooks.default_rtype), + + "DBG_Hooks" : enum_info_t( + "dbg_8hpp.xml", + "dbg_notification_t", + [], + None, + [], + recipe_dbghooks.recipe, + recipe_dbghooks.default_rtype), + + "UI_Hooks" : enum_info_t( + "kernwin_8hpp.xml", + "ui_notification_t", + ["ui_dbg_", "ui_obsolete"], + "ui:", + ["ui_"], + recipe_uihooks.recipe, + recipe_uihooks.default_rtype), + + "View_Hooks" : enum_info_t( + "kernwin_8hpp.xml", + "view_notification_t", + [], + None, + [], + recipe_viewhooks.recipe, + recipe_viewhooks.default_rtype), + + "Hexrays_Hooks" : enum_info_t( + "hexrays_8hpp.xml", + "hexrays_event_t", + [], + None, + ["hxe_", "lxe_"], + recipe_hexrays.recipe, + recipe_hexrays.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_pydoc.py b/tools/inject_pydoc.py index d03c3c4..0ac5505 100644 --- a/tools/inject_pydoc.py +++ b/tools/inject_pydoc.py @@ -29,6 +29,7 @@ if mydir not in sys.path: sys.path.append(mydir) import wrapper_utils +import hooks_utils parser = ArgumentParser() parser.add_argument("-i", "--input", required=True) @@ -40,6 +41,7 @@ parser.add_argument("-e", "--epydoc-injections", required=True) parser.add_argument("-m", "--module", required=True) 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-function", type=str, default="") args = parser.parse_args() this_dir, _ = os.path.split(__file__) @@ -49,13 +51,31 @@ import doxygen_utils DOCSTR_MARKER = '"""' DOCSTR_MARKER_START_RAW = 'r"""' +inc = 0 +class indenter_t(object): + def __enter__(self): + global inc + inc += 1 + return self + + def __exit__(self, type, value, tb): + global inc + inc -= 1 + if value: + raise + +def get_indent_str(): + return " " * inc + def verb(msg): if args.verbose: - print(msg) + print(get_indent_str() + msg) +selective_debug_status = None def dbg(msg): if args.debug: - print("DEBUG: " + msg) + if selective_debug_status in [None, True]: + print("DEBUG: " + get_indent_str() + msg) # -------------------------------------------------------------------------- def load_patches(args): @@ -109,27 +129,7 @@ def split_oneliner_comments_and_remove_property_docstrings(lines): 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 # -------------------------------------------------------------------------- @@ -149,7 +149,17 @@ def dedent(lines): if prefix != expect: raise BaseException("Line: '" + l + "' has wrong indentation. Expected " + str(indent) + " spaces.") return l[indent:] - return map(proc, lines) + return list(map(proc, lines)) + +# -------------------------------------------------------------------------- +def apply_indent(lines, indent): + return list(map(lambda l: indent + l, lines)) + +# -------------------------------------------------------------------------- +def add_lines_block(storage, lines): + if storage and storage[-1] != "" and storage[-1] != "\n": + storage.append("\n") + storage.extend(lines) # -------------------------------------------------------------------------- def get_fun_name(line): @@ -162,10 +172,12 @@ def get_class_name(line): # -------------------------------------------------------------------------- def get_indent_string(line): indent = len(line) - len(line.lstrip()) + if not indent: + raise Exception("No indent in line '%s'" % line) return " " * indent # -------------------------------------------------------------------------- -class collect_pydoc_t(object): +class collect_pywraps_pydoc_t(object): """ Search in all files in the 'plugins/idapython/swig/' directory for possible additional we could use later. @@ -284,177 +296,251 @@ class collect_pydoc_t(object): return self.idaapi_pydoc -class base_doc_t: +class generated_func_info_t: + """ + Object model of what could be extracted from the SWiG-generated + python documentation. Functions that use polymorphism will have + multiple 'signature_t's. + """ - class context_t: - def __init__(self): - self.tokens = [] # pending to be textwrap'd - self.lines = [] # already textwrap'd + class signature_t: + PARAM_WITH_CPP_TYPE_INFO_RE = re.compile(r".*:\s*(.*\(C\+\+:.*\).*)") - def add_token_nostrip(self, token): - if token: - self.tokens.append(token) + def __init__(self, prototype): + self.prototype = prototype + self.params = [] + self.returns = [] + self.retvals = [] - def add_token(self, token): - if token: - return self.add_token_nostrip(token.strip()) + def replace_param(self, original_name, name, text, indent): + found_idx = -1 + for idx, l in enumerate(self.params): + if l.lstrip().startswith("%s:" % name): + found_idx = idx + break + if found_idx < 0: + for idx, l in enumerate(self.params): + if l.lstrip().startswith("%s:" % original_name): + found_idx = idx + break + if found_idx >= 0: + m = self.PARAM_WITH_CPP_TYPE_INFO_RE.match(self.params[found_idx]) + if m: + text = re.sub(r"(.*)\(C\+\+:.*\)(.*)", r"\1 - %s\2" % m.group(1), text) + lines = textwrap.wrap(text, 70, subsequent_indent=" " * indent) + self.params = self.params[0:found_idx] + lines + self.params[found_idx+1:] + else: + verb("No param named '%s' for function with prototype '%s'" % (name, self.prototype)) - def add_line(self, line): - self.lines.append(line) + def append_return(self, text, indent): + if self.returns is not None: + verb("Overriding return information") + self.returns = textwrap.wrap(text, 70, subsequent_indent=" " * indent) - def wrap_flush(self): - if self.tokens: - lines = textwrap.wrap("".join(self.tokens)) - self.lines.extend(lines) - self.tokens = [] + def append_retval(self, text, indent): + self.retvals.extend(textwrap.wrap(text, 70, subsequent_indent=" " * indent)) + + def get_lines(self): + return [self.prototype] \ + + list(map(lambda l: " %s" % l, self.params + self.returns + self.retvals)) + + + def __init__(self, lines): + self.original_comment = False + self.signatures = [] + + STATE_NONE = None + STATE_IN_SIG = "in signature" + STATE_AFTER_SIG = "after signature" + STATE_IN_PARAMS = "in params" + state = STATE_NONE + current_sig = None + try: + for line in lines: + line = line.lstrip() + assert(not line.startswith("@param")) + assert(not line.startswith("@return")) + + # print(">>> '%s' (state=%s)" % (line, state)) + if line: + if state == STATE_NONE: + assert(current_sig is None) + current_sig = self.signature_t(line) + state = STATE_IN_SIG + elif state == STATE_IN_SIG: + assert(current_sig is not None) + elif state == STATE_AFTER_SIG: + assert(current_sig is not None) + if line.startswith("Parameters"): + state = STATE_IN_PARAMS + else: + # print("FLUSHING!") + self.signatures.append(current_sig) + current_sig = None + elif state == STATE_IN_PARAMS: + if not line.startswith("-------"): + current_sig.params.append(line) + else: + crash() + else: + if state == STATE_NONE: + pass + elif state == STATE_IN_SIG: + state = STATE_AFTER_SIG + elif state == STATE_AFTER_SIG: + pass + elif state == STATE_IN_PARAMS: + # print("FLUSHING!!") + self.signatures.append(current_sig) + current_sig = None + state = STATE_NONE + else: + crash() + except AssertionError: + verb("Couldn't parse comment; it's likely it was not generated by SWiG. Assuming 'original_comment'.") + self.original_comment = True + + +class ioarg_t: + def __init__(self, original_name, name, ptyp, desc): + self.original_name = original_name + self.name = name + self.ptyp = ptyp + self.desc = desc + + def __str__(self): + return "{original_name=\"%s\", name=\"%s\", ptyp=\"%s\", desc=\"%s\"}" % ( + self.original_name, + self.name, + self.ptyp, + self.desc) + + +class SDK_base_info_t: def __init__(self): self.brief = None self.detailed = None - def get_text_with_refs1(self, 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 = 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) - - 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 - - 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) - def is_valid(self): return self.brief or self.detailed - 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 generate_lines(self): - unimp() +class SDK_func_info_t(SDK_base_info_t): + # FIXME: Ideally, each match_t should bring its own description, + # but that will make the resulting documentation more busy and + # it's unclear what we would gain... + class match_t: + def __init__(self): #, brief, detailed): + # self.brief = brief + # self.detailed = detailed + self.params = [] + self.returns = None + self.retvals = None - -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 + SDK_base_info_t.__init__(self) + self.matches = [] + + def maybe_set_brief_and_detailed(self, brief, detailed): + # set the brief+detailed info, if none was set yet + if not self.brief and not self.detailed: + self.brief = brief + self.detailed = detailed + + def maybe_add_param_to_match( + self, + swig_generated_param_names, + match, + name, + ptyp, + desc): + dbg("maybe_add_param_to_match(name=%s, ptyp=%s, desc=%s, swig_generated_param_names=%s)" % ( + name, + ptyp, + desc, + swig_generated_param_names)) + # SWiG will rename e.g., 'from' to '_from' automatically, and we want to match that + swig_name = ("_%s" % name) if name in ["from", "with"] else name + to_add = None + if swig_name in swig_generated_param_names: + to_add = ioarg_t(name, swig_name, ptyp, desc) + elif name == "from": + if "frm" in swig_generated_param_names: + to_add = ioarg_t(name, "frm", ptyp, desc) + if to_add: + dbg("==> adding='%s'" % (to_add,)) + match.params.append(to_add) def traverse(self, node, swig_generated_param_names): - self.brief = self.get_description(node, "briefdescription") - self.detailed = self.get_description(node, "detaileddescription") + self.maybe_set_brief_and_detailed( + doxygen_utils.get_element_description(node, "briefdescription"), + doxygen_utils.get_element_description(node, "detaileddescription")) + + match = self.match_t() # 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) + doxygen_utils.for_each_param( + node, + lambda name, ptyp, desc: self.maybe_add_param_to_match( + swig_generated_param_names, + match, + name, + ptyp, + desc)) # 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) + match.returns = ioarg_t(None, 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 + detaileddescription_el = node.find("detaileddescription") + if detaileddescription_el: + def collect_retval(value, desc): + if match.retvals is None: + match.retvals = [] + match.retvals.append((value, desc)) + doxygen_utils.for_each_retval(detaileddescription_el, collect_retval) + + self.matches.append(match) -class def_doc_t(base_doc_t): - def __init__(self): - base_doc_t.__init__(self) + def import_from_hooks_enumerator(self, enum, swig_generated_param_names): + self.maybe_set_brief_and_detailed( + enum.get("brief", None), + enum.get("detailed", None)) + match = self.match_t() + + params = enum.get("params", [])[:] + + # return value + if params and params[0]["name"] == "": + retdata = params[0] + params = params[1:] + if retdata["desc"]: + match.returns = ioarg_t(None, None, retdata["type"], retdata["desc"]) + if retdata["values"]: + match.retvals = retdata["values"] + + # collect params + for param in params: + self.maybe_add_param_to_match( + swig_generated_param_names, + match, + param["name"], + param["type"], + param["desc"]) + + self.matches.append(match) + + +class SDK_def_info_t(SDK_base_info_t): def traverse(self, node): - self.brief = self.get_description(node, "briefdescription") - self.detailed = self.get_description(node, "detaileddescription") + self.brief = doxygen_utils.get_element_description(node, "briefdescription") + self.detailed = doxygen_utils.get_element_description(node, "detaileddescription") def generate_lines(self): out = [] @@ -463,26 +549,22 @@ class def_doc_t(base_doc_t): 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 + out = doxygen_utils.remove_empty_header_or_footer_lines(out) + return doxygen_utils.remove_empty_header_or_footer_lines( + [DOCSTR_MARKER] \ + + list(map(lambda s : s.replace('\\', '\\\\'), out)) \ + + [DOCSTR_MARKER]) # -------------------------------------------------------------------------- class idaapi_fixer_t(object): lines = None - def __init__(self, collected_info, patches, cpp_wrapper_functions): - self.collected_info = collected_info + def __init__(self, collected_pywraps_pydoc, patches, cpp_wrapper_functions): + self.collected_pywraps_pydoc = collected_pywraps_pydoc self.patches = patches self.cpp_wrapper_functions = cpp_wrapper_functions + self.xml_dir = None # Since variables cannot have a docstring in Python, # but epydoc supports the syntax: # --- @@ -496,8 +578,13 @@ class idaapi_fixer_t(object): # retrieve it from the runtime. self.epydoc_injections = {} + def has_more(self): + return len(self.lines) > 0 + def next(self): line = self.lines[0] + with indenter_t(): + dbg("next(): '%s'" % line) self.lines = self.lines[1:] return line @@ -509,32 +596,8 @@ class idaapi_fixer_t(object): 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) + return self.collected_pywraps_pydoc["classes"].get(class_name) def get_def_info(self, def_name): def_info = None @@ -543,11 +606,10 @@ class idaapi_fixer_t(object): 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 = SDK_def_info_t() dd.traverse(dnodes[0]) if dd.is_valid(): - def_info = [] - dd.append_lines(def_info) + def_info = dd.generate_lines() return def_info def extract_swig_generated_param_names(self, fun_name, lines): @@ -600,10 +662,17 @@ class idaapi_fixer_t(object): line = line[0:idx + len(splitter)] + forced_output_type return line - def fix_fun(self, out, class_info=None): + def generate_function_pydoc(self, class_name=None): + out = [] line = self.copy(out) fun_name = get_fun_name(line) - # verb("fix_fun: fun_name: '%s'" % fun_name) + class_info = self.get_class_info(class_name) if class_name else None + + if args.debug_function: + global selective_debug_status + selective_debug_status = fun_name == args.debug_function + + #verb("generate_function_pydoc: fun_name: '%s'" % fun_name) line = self.copy(out) doc_start_line_idx = len(out) if line.find(DOCSTR_MARKER) > -1: @@ -618,16 +687,106 @@ class idaapi_fixer_t(object): 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) + pydoc_lines = out[doc_start_line_idx:] + swig_generated_param_names = self.extract_swig_generated_param_names(fun_name, pydoc_lines) + + if class_name is None: + pywraps_fi = self.collected_pywraps_pydoc["funcs"].get(fun_name) else: - found = self.get_method_info(class_info, fun_name) + pywraps_fi = class_info["methods"].get(fun_name) if class_info else [] + if pywraps_fi: + # documentation coming from pywraps takes precedence. + dbg("'pywraps/'-originating comment takes precedence (%s)" % str(pywraps_fi)) + found = pywraps_fi + if pydoc_lines: + l0 = pydoc_lines[0].lstrip() + if l0.startswith(fun_name): + found = [l0] + found + else: + found = [] + # no documentation coming from pywraps. + # Merge SWiG-generated documentation, and the + # SDK-provided bits + generated_fi = generated_func_info_t(pydoc_lines) + if generated_fi.original_comment: + dbg("SWiG-generated comment found (%s)" % str(pydoc_lines)) + found = pydoc_lines + else: + sdk_fi = SDK_func_info_t() + fnodes = [] + if class_name is None: + fnodes = doxygen_utils.get_toplevel_functions( + self.xml_tree, + name=fun_name) + else: + if class_name.endswith("_Hooks"): + enums = hooks_utils.get_hooks_enumerators( + self.xml_dir, + class_name) + for enum in enums: + if enum["name"] == fun_name: + sdk_fi.import_from_hooks_enumerator( + enum, + swig_generated_param_names) + else: + refid, udt_xml_tree = doxygen_utils.load_xml_for_udt( + self.xml_dir, + self.xml_tree, + udt_name=class_name) + if udt_xml_tree: + fnodes = doxygen_utils.get_udt_methods( + udt_xml_tree, + refid, + name=fun_name) + + for fnode in fnodes: + sdk_fi.traverse(fnode, swig_generated_param_names) + + if sdk_fi.brief: + found.extend(sdk_fi.brief) + found.append("") + if sdk_fi.detailed: + found.extend(sdk_fi.detailed) + found.append("") + + # We'll look in all SDK signatures (i.e., we don't + # do proper signature matching) and patch all params + # in all generated signatures information. Hopefully + # this will be good enough. + for sdk_match in sdk_fi.matches: + for p in sdk_match.params: + dbg("Handling param '%s'" % p) + if p.name: + pline = "@param %s" % p.name + subsequent_indent = len(pline) + 2 + if p.desc: + pline = "%s: %s" % (pline, p.desc) + if p.ptyp: + pline = "%s (C++: %s)" % (pline, p.ptyp) + for sig in generated_fi.signatures: + sig.replace_param(p.original_name, p.name, pline, subsequent_indent) + if sdk_match.returns: + rline = "@return: %s" % sdk_match.returns.desc + for sig in generated_fi.signatures: + sig.append_return(rline, len("@return: ")) + if sdk_match.retvals: + for retval_value, retval_desc in sdk_match.retvals: + rvline_pfx = "@retval: %s - " % retval_value + rvline = "%s%s" % (rvline_pfx, retval_desc) + for sig in generated_fi.signatures: + sig.append_retval(rvline, len(rvline_pfx)) + + # Append the (modified) signatures + for sig in generated_fi.signatures: + add_lines_block(found, sig.get_lines()) + + found = doxygen_utils.remove_empty_header_or_footer_lines(found) 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))) + "method" if class_name else "fun", fun_name)); + while len(out) > doc_start_line_idx: + out.pop() + add_lines_block(out, apply_indent(found, indent)) # @@ -651,52 +810,57 @@ class idaapi_fixer_t(object): else: out.append(line) docstring_line_nr += 1 + return out - def fix_method(self, class_info, out): - return self.fix_fun(out, class_info) + def generate_method_pydoc(self, class_name): + return self.generate_function_pydoc(class_name) - def fix_class(self, out): + def generate_class_pydoc(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) + class_info = self.get_class_info(cls_name) + verb("generate_class_pydoc: found info for %s" % cls_name); + while True: + line = self.copy(out) + if line.strip(): + indent = get_indent_string(line) + break # 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) + if class_info: + if line.find(DOCSTR_MARKER) > -1: + while self.has_more(): + line = self.next() + if line.find(DOCSTR_MARKER) > -1: + doc = class_info["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 " - while True: + while self.has_more(): 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) + out.extend(self.generate_method_pydoc(cls_name)) else: out.append(line) else: self.push_front(line) break + return out + def fix_assignment(self, out, match): # out.append("LOL: %s" % match.group(1)) line = self.copy(out) @@ -717,36 +881,40 @@ class idaapi_fixer_t(object): 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 + input_path, self.xml_dir, 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) + self.xml_tree = doxygen_utils.load_xml_for_module(self.xml_dir, args.module) out = [] while len(self.lines) > 0: line = self.next() if line.startswith("def "): self.push_front(line) - self.fix_fun(out) + with indenter_t(): + out.extend(self.generate_function_pydoc()) elif line.startswith("class "): self.push_front(line) - self.fix_class(out) + with indenter_t(): + out.extend(self.generate_class_pydoc()) else: m = self.SIMPLE_ASSIGNMENT_RE.match(line) if m: self.push_front(line) - self.fix_assignment(out, m) + with indenter_t(): + self.fix_assignment(out, m) else: out.append(line) + out = list(map(lambda l: l.replace("NONNULL_", ""), out)) with open(out_path, "w") as o: o.write("\n".join(out)) # -------------------------------------------------------------------------- patches = load_patches(args) -collecter = collect_pydoc_t(args.interface) -collected = collecter.collect() +collecter = collect_pywraps_pydoc_t(args.interface) +collected_pywraps_pydoc = 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 = idaapi_fixer_t(collected_pywraps_pydoc, patches, cpp_wrapper_functions) fixer.fix_file(args) with open(args.epydoc_injections, "w") as fout: for key in sorted(fixer.epydoc_injections.keys()): 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_codegen.py b/tools/patch_codegen.py index ddac206..8016f78 100644 --- a/tools/patch_codegen.py +++ b/tools/patch_codegen.py @@ -20,7 +20,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 +116,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", @@ -176,6 +177,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 @@ -184,6 +189,31 @@ with open(args.input) as f: current_function_uses_args = False current_function_uses_varargs = 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 == NULL || strcmp(name, \"std::out_of_range *\") != 0 )", + " abort();", + "#endif", + ), + ), + )) line = line.replace(", ...arg0)", ", ...)") else: if line.find("PyArg_UnpackTuple(args") > -1: @@ -193,14 +223,13 @@ with open(args.input) as f: elif line.find("varargs") > -1: current_function_uses_varargs = True 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 +240,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 +270,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 = [ @@ -251,18 +293,19 @@ with open(args.input) as f: if entered_function: subst = prepend_subst(subst, " if ( !__chkreqidb() ) return NULL; %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 diff --git a/tools/patch_codegen/dirtree.py b/tools/patch_codegen/dirtree.py new file mode 100644 index 0000000..9037217 --- /dev/null +++ b/tools/patch_codegen/dirtree.py @@ -0,0 +1,29 @@ +{ + "SwigDirector_dirspec_t::get_name" : [ + ("spontaneous_callback_call", None), + ("repl_text", ( + "int swig_res = SWIG_AsVal_bool(result, &swig_val);", + ("int swig_res = IDAPyStr_Check(result) && (out == nullptr || IDAPyStr_AsUTF8(out, result));", + " swig_val = static_cast(swig_res);"))), + ], + "SwigDirector_dirspec_t::get_inode" : [ + ("spontaneous_callback_call", None) + ], + "SwigDirector_dirspec_t::get_size" : [ + ("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..ebc59a6 --- /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 = IDAPyStr_Check(result) != 0;", + " int swig_res = is_error || result == Py_None;", + " if ( is_error )", + " IDAPyStr_AsUTF8(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 && IDAPyStr_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 ) + IDAPyStr_AsUTF8(param, PyTuple_GetItem(result, 1)); + else + param->qclear(); + } + swig_val = well_formed ? is_success : false; +"""))) + ], +} diff --git a/tools/patch_codegen/hexrays.py b/tools/patch_codegen/hexrays.py index a36fb28..32409b3 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 ? NULL : (PyObject *)obj2), NULL)", + "(swig_get_self(), (PyObject *) swig_method_name ,(PyObject *)obj0,(PyObject *)obj1,(__argcnt < 4 ? NULL : (PyObject *)obj2), NULL)", + )), + ("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/idp.py b/tools/patch_codegen/idp.py index a9179e9..9b64e4f 100644 --- a/tools/patch_codegen/idp.py +++ b/tools/patch_codegen/idp.py @@ -11,6 +11,7 @@ "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)") diff --git a/tools/patch_codegen/kernwin.py b/tools/patch_codegen/kernwin.py index 8e9b328..4ebe0c1 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,6 +15,7 @@ ], "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)", @@ -25,6 +23,7 @@ ], "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)", 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/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"))