IDAPython 9.0
|
Public Member Functions | |
__init__ (self) | |
get_idpdesc (self) | |
get_auxpref (self, insn) | |
ev_newprc (self, *args) | |
ev_newfile (self, *args) | |
ev_oldfile (self, *args) | |
ev_newbinary (self, *args) | |
ev_endbinary (self, *args) | |
ev_set_idp_options (self, keyword, value_type, value, idb_loaded) | |
ev_set_proc_options (self, *args) | |
ev_ana_insn (self, *args) | |
ev_emu_insn (self, *args) | |
ev_out_header (self, *args) | |
ev_out_footer (self, *args) | |
ev_out_segstart (self, ctx, s) | |
ev_out_segend (self, ctx, s) | |
ev_out_assumes (self, *args) | |
ev_out_insn (self, *args) | |
ev_out_mnem (self, *args) | |
ev_out_operand (self, *args) | |
ev_out_data (self, *args) | |
ev_out_label (self, *args) | |
ev_out_special_item (self, *args) | |
ev_gen_regvar_def (self, ctx, v) | |
ev_gen_src_file_lnnum (self, *args) | |
ev_creating_segm (self, s) | |
ev_moving_segm (self, s, to_ea, flags) | |
ev_coagulate (self, *args) | |
ev_undefine (self, *args) | |
ev_treat_hindering_item (self, *args) | |
ev_rename (self, *args) | |
ev_is_far_jump (self, *args) | |
ev_is_sane_insn (self, *args) | |
ev_is_call_insn (self, *args) | |
ev_is_ret_insn (self, *args) | |
ev_may_be_func (self, *args) | |
ev_is_basic_block_end (self, *args) | |
ev_is_indirect_jump (self, *args) | |
ev_is_insn_table_jump (self, *args) | |
ev_is_switch (self, *args) | |
ev_create_switch_xrefs (self, *args) | |
ev_is_align_insn (self, *args) | |
ev_is_alloca_probe (self, *args) | |
ev_is_sp_based (self, mode, insn, op) | |
ev_can_have_type (self, *args) | |
ev_cmp_operands (self, *args) | |
ev_get_operand_string (self, buf, insn, opnum) | |
ev_str2reg (self, *args) | |
ev_get_autocmt (self, *args) | |
ev_func_bounds (self, _possible_return_code, pfn, max_func_end_ea) | |
ev_verify_sp (self, pfn) | |
ev_verify_noreturn (self, pfn) | |
ev_create_func_frame (self, pfn) | |
ev_get_frame_retsize (self, frsize, pfn) | |
ev_coagulate_dref (self, from_ea, to_ea, may_define, _code_ea) | |
ev_may_show_sreg (self, *args) | |
ev_auto_queue_empty (self, *args) | |
ev_validate_flirt_func (self, *args) | |
ev_assemble (self, *args) | |
ev_gen_map_file (self, nlines, fp) | |
ev_calc_step_over (self, target, ip) | |
closebase (self, *args) | |
savebase (self, *args) | |
auto_empty (self, *args) | |
auto_empty_finally (self, *args) | |
determined_main (self, *args) | |
idasgn_loaded (self, *args) | |
kernel_config_loaded (self, *args) | |
compiler_changed (self, *args) | |
segm_moved (self, from_ea, to_ea, size, changed_netmap) | |
func_added (self, pfn) | |
set_func_start (self, *args) | |
set_func_end (self, *args) | |
deleting_func (self, pfn) | |
sgr_changed (self, *args) | |
make_code (self, *args) | |
make_data (self, *args) | |
renamed (self, *args) | |
![]() | |
bool | hook (self) |
bool | unhook (self) |
int | ev_init (self, str idp_modname) |
int | ev_term (self) |
int | ev_newasm (self, int asmnum) |
int | ev_is_cond_insn (self, 'insn_t const *' insn) |
int | ev_calc_switch_cases (self, 'casevec_t *' casevec, 'eavec_t *' targets, ida_idaapi.ea_t insn_ea, 'switch_info_t' si) |
'PyObject *' | ev_delay_slot_insn (self, ida_idaapi.ea_t ea, bool bexec, bool fexec) |
int | ev_adjust_refinfo (self, 'refinfo_t' ri, ida_idaapi.ea_t ea, int n, 'fixup_data_t const *' fd) |
'PyObject *' | ev_get_reg_name (self, int reg, 'size_t' width, int reghi) |
int | ev_get_bg_color (self, 'bgcolor_t *' color, ida_idaapi.ea_t ea) |
int | ev_is_jump_func (self, 'func_t *' pfn, 'ea_t *' jump_target, 'ea_t *' func_pointer) |
int | ev_get_stkvar_scale_factor (self) |
'PyObject *' | ev_demangle_name (self, str name, int disable_mask, int demreq) |
int | ev_add_cref (self, ida_idaapi.ea_t _from, ida_idaapi.ea_t to, 'cref_t' type) |
int | ev_add_dref (self, ida_idaapi.ea_t _from, ida_idaapi.ea_t to, 'dref_t' type) |
int | ev_del_cref (self, ida_idaapi.ea_t _from, ida_idaapi.ea_t to, bool expand) |
int | ev_del_dref (self, ida_idaapi.ea_t _from, ida_idaapi.ea_t to) |
int | ev_adjust_libfunc_ea (self, 'idasgn_t const *' sig, 'libfunc_t const *' libfun, 'ea_t *' ea) |
int | ev_extract_address (self, 'ea_t *' out_ea, ida_idaapi.ea_t screen_ea, str string, 'size_t' position) |
int | ev_realcvt (self, 'void *' m, 'fpvalue_t *' e, 'uint16' swt) |
int | ev_gen_asm_or_lst (self, bool starting, 'FILE *' fp, bool is_asm, int flags, 'html_line_cb_t **' outline) |
int | ev_create_flat_group (self, ida_idaapi.ea_t image_base, int bitness, 'sel_t' dataseg_sel) |
int | ev_getreg (self, 'uval_t *' regval, int regnum) |
int | ev_analyze_prolog (self, ida_idaapi.ea_t ea) |
int | ev_calc_spdelta (self, 'sval_t *' spdelta, 'insn_t const *' insn) |
int | ev_calcrel (self) |
'PyObject *' | ev_find_reg_value (self, 'insn_t const *' pinsn, int reg) |
'PyObject *' | ev_find_op_value (self, 'insn_t const *' pinsn, int opn) |
int | ev_replaying_undo (self, str action_name, 'undo_records_t const *' vec, bool is_undo) |
int | ev_ending_undo (self, str action_name, bool is_undo) |
int | ev_set_code16_mode (self, ida_idaapi.ea_t ea, bool code16) |
int | ev_get_code16_mode (self, ida_idaapi.ea_t ea) |
int | ev_get_procmod (self) |
int | ev_asm_installed (self, int asmnum) |
int | ev_get_reg_accesses (self, 'reg_accesses_t' accvec, 'insn_t const *' insn, int flags) |
int | ev_is_control_flow_guard (self, 'int *' p_reg, 'insn_t const *' insn) |
int | ev_create_merge_handlers (self, 'merge_data_t *' md) |
int | ev_privrange_changed (self, 'range_t' old_privrange, 'adiff_t' delta) |
int | ev_cvt64_supval (self, 'nodeidx_t' node, 'uchar' tag, 'nodeidx_t' idx, 'uchar const *' data) |
int | ev_cvt64_hashval (self, 'nodeidx_t' node, 'uchar' tag, str name, 'uchar const *' data) |
int | ev_gen_stkvar_def (self, 'outctx_t *' outctx, 'udm_t' stkvar, int v, 'tid_t' tid) |
int | ev_next_exec_insn (self, 'ea_t *' target, ida_idaapi.ea_t ea, int tid, 'processor_t::regval_getter_t *' getreg, 'regval_t' regvalues) |
int | ev_calc_next_eas (self, 'eavec_t *' res, 'insn_t const *' insn, bool over) |
int | ev_get_macro_insn_head (self, 'ea_t *' head, ida_idaapi.ea_t ip) |
int | ev_get_dbr_opnum (self, 'int *' opnum, 'insn_t const *' insn) |
int | ev_insn_reads_tbit (self, 'insn_t const *' insn, 'processor_t::regval_getter_t *' getreg, 'regval_t' regvalues) |
int | ev_clean_tbit (self, ida_idaapi.ea_t ea, 'processor_t::regval_getter_t *' getreg, 'regval_t' regvalues) |
int | ev_get_reg_info (self, 'char const **' main_regname, 'bitrange_t' bitrange, str regname) |
int | ev_update_call_stack (self, 'call_stack_t' stack, int tid, 'processor_t::regval_getter_t *' getreg, 'regval_t' regvalues) |
int | ev_setup_til (self) |
int | ev_get_abi_info (self, 'comp_t' comp) |
int | ev_max_ptr_size (self) |
int | ev_get_default_enum_size (self) |
int | ev_get_cc_regs (self, 'callregs_t' regs, 'cm_t' cc) |
int | ev_get_simd_types (self, 'simd_info_vec_t *' out, 'simd_info_t' simd_attrs, 'argloc_t' argloc, bool create_tifs) |
int | ev_calc_cdecl_purged_bytes (self, ida_idaapi.ea_t ea) |
int | ev_calc_purged_bytes (self, 'int *' p_purged_bytes, 'func_type_data_t' fti) |
int | ev_calc_retloc (self, 'argloc_t' retloc, 'tinfo_t' rettype, 'cm_t' cc) |
int | ev_calc_arglocs (self, 'func_type_data_t' fti) |
int | ev_calc_varglocs (self, 'func_type_data_t' ftd, 'regobjs_t' aux_regs, 'relobj_t' aux_stkargs, int nfixed) |
int | ev_adjust_argloc (self, 'argloc_t' argloc, 'tinfo_t' optional_type, int size) |
int | ev_lower_func_type (self, 'intvec_t *' argnums, 'func_type_data_t' fti) |
int | ev_equal_reglocs (self, 'argloc_t' a1, 'argloc_t' a2) |
int | ev_use_stkarg_type (self, ida_idaapi.ea_t ea, 'funcarg_t' arg) |
'PyObject *' | ev_use_regarg_type (self, ida_idaapi.ea_t ea, 'funcargvec_t const *' rargs) |
int | ev_use_arg_types (self, ida_idaapi.ea_t ea, 'func_type_data_t' fti, 'funcargvec_t *' rargs) |
int | ev_arg_addrs_ready (self, ida_idaapi.ea_t caller, int n, 'tinfo_t' tif, 'ea_t *' addrs) |
'PyObject *' | ev_decorate_name (self, str name, bool mangle, int cc, 'tinfo_t' optional_type) |
int | ev_arch_changed (self) |
int | ev_get_stkarg_area_info (self, 'stkarg_area_info_t' out, 'cm_t' cc) |
int | ev_last_cb_before_loader (self) |
int | ev_loader (self) |
__disown__ (self) | |
Public Attributes | |
idb_hooks = _processor_t_Trampoline_IDB_Hooks(self) | |
plnames | |
psnames | |
Protected Member Functions | |
_get_idp_notifier_addr (self) | |
_get_idp_notifier_ud_addr (self) | |
_get_idb_notifier_addr (self) | |
_get_idb_notifier_ud_addr (self) | |
_make_forced_value_wrapper (self, val, meth=None) | |
_make_int_returning_wrapper (self, meth, intval=0) | |
_get_notify (self, what, unimp_val=0, imp_forced_val=None, add_prefix=True, mandatory_impl=None) | |
Additional Inherited Members | |
![]() | |
thisown | |
__init__ | ( | self | ) |
Reimplemented from IDP_Hooks.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
This helper is used to implement backward-compatibility of pre IDA 7.3 processor_t interfaces.
|
protected |
|
protected |
auto_empty | ( | self, | |
* | args ) |
auto_empty_finally | ( | self, | |
* | args ) |
closebase | ( | self, | |
* | args ) |
compiler_changed | ( | self, | |
* | args ) |
deleting_func | ( | self, | |
pfn ) |
determined_main | ( | self, | |
* | args ) |
ev_ana_insn | ( | self, | |
* | out ) |
Analyze one instruction and fill 'out' structure. This function shouldn't change the database, flags or anything else. All these actions should be performed only by emu_insn() function. insn_t::ea contains address of instruction to analyze. @param out: (insn_t *) @returns length of the instruction in bytes, 0 if instruction can't be decoded. @retval 0: if instruction can't be decoded.
Reimplemented from IDP_Hooks.
ev_assemble | ( | self, | |
* | ea ) |
Assemble an instruction. (display a warning if an error is found). @param ea: (::ea_t) linear address of instruction @param cs: (::ea_t) cs of instruction @param ip: (::ea_t) ip of instruction @param use32: (bool) is 32bit segment? @param line: (const char *) line to assemble @returns size of the instruction in bytes
Reimplemented from IDP_Hooks.
ev_auto_queue_empty | ( | self, | |
* | type ) |
One analysis queue is empty. @param type: (atype_t) @retval void: see also idb_event::auto_empty_finally
Reimplemented from IDP_Hooks.
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. @param target: (::ea_t *) pointer to the answer @param ip: (::ea_t) instruction address @retval 0: unimplemented @retval 1: implemented
Reimplemented from IDP_Hooks.
ev_can_have_type | ( | self, | |
* | op ) |
Can the operand have a type as offset, segment, decimal, etc? (for example, a register AX can't have a type, meaning that the user can't change its representation. see bytes.hpp for information about types and flags) @param op: (const op_t *) @retval 0: unknown @retval <0: no @retval 1: yes
Reimplemented from IDP_Hooks.
ev_cmp_operands | ( | self, | |
* | op1 ) |
Compare instruction operands @param op1: (const op_t*) @param op2: (const op_t*) @retval 1: equal @retval -1: not equal @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_coagulate | ( | self, | |
* | start_ea ) |
Try to define some unexplored bytes. This notification will be called if the kernel tried all possibilities and could not find anything more useful than to convert to array of bytes. The module can help the kernel and convert the bytes into something more useful. @param start_ea: (::ea_t) @returns number of converted bytes
Reimplemented from IDP_Hooks.
ev_coagulate_dref | ( | self, | |
_from, | |||
to, | |||
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) @param to: (::ea_t) @param may_define: (bool) @param code_ea: (::ea_t *) @retval <0: failed dref analysis, >0 done dref analysis @retval 0: not implemented or continue
Reimplemented from IDP_Hooks.
ev_create_func_frame | ( | self, | |
pfn ) |
Create a function frame for a newly created function Set up frame size, its attributes etc @param pfn: (func_t *) @retval 1: ok @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_create_switch_xrefs | ( | self, | |
* | jumpea ) |
Create xrefs for a custom jump table. @param jumpea: (::ea_t) address of the jump insn @param si: (const switch_info_t *) switch information @returns must return 1 Must be implemented if module uses custom jump tables, SWI_CUSTOM
Reimplemented from IDP_Hooks.
ev_creating_segm | ( | self, | |
seg ) |
A new segment is about to be created. @param seg: (segment_t *) @retval 1: ok @retval <0: segment should not be created
Reimplemented from IDP_Hooks.
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. @param insn: (const insn_t *) @retval 1: ok @retval -1: the kernel will delete the instruction
Reimplemented from IDP_Hooks.
ev_endbinary | ( | self, | |
* | ok ) |
IDA has loaded a binary file. @param ok: (bool) file loaded successfully?
Reimplemented from IDP_Hooks.
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 @param possible_return_code: (int *), in/out @param pfn: (func_t *) @param max_func_end_ea: (::ea_t) (from the kernel's point of view) @retval void:
Reimplemented from IDP_Hooks.
ev_gen_map_file | ( | self, | |
nlines, | |||
fp ) |
Generate map file. If not implemented the kernel itself will create the map file. @param nlines: (int *) number of lines in map file (-1 means write error) @param fp: (FILE *) output file @retval 0: not implemented @retval 1: ok @retval -1: write error
Reimplemented from IDP_Hooks.
ev_gen_regvar_def | ( | self, | |
outctx, | |||
v ) |
Generate register variable definition line. @param outctx: (outctx_t *) @param v: (regvar_t *) @retval >0: ok, generated the definition text @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_gen_src_file_lnnum | ( | self, | |
* | outctx ) |
Callback: generate analog of: #line 123 @param outctx: (outctx_t *) output context @param file: (const char *) source file (may be nullptr) @param lnnum: (size_t) line number @retval 1: directive has been generated @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_get_autocmt | ( | self, | |
* | insn ) |
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. @param insn: (const insn_t*) the instruction @retval 1: new comment has been generated @retval 0: callback has not been handled. the buffer must not be changed in this case
Reimplemented from IDP_Hooks.
ev_get_frame_retsize | ( | self, | |
frsize, | |||
pfn ) |
Get size of function return address in bytes If this event is not implemented, the kernel will assume * 8 bytes for 64-bit function * 4 bytes for 32-bit function * 2 bytes otherwise @param frsize: (int *) frame size (out) @param pfn: (const func_t *), can't be nullptr @retval 1: ok @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_get_operand_string | ( | self, | |
insn, | |||
opnum, | |||
opnum ) |
Request text string for operand (cli, java, ...). @param insn: (const insn_t*) the instruction @param opnum: (int) operand number, -1 means any string operand @retval 0: no string (or empty string) @retval >0: original string length without terminating zero
Reimplemented from IDP_Hooks.
ev_is_align_insn | ( | self, | |
* | ea ) |
Is the instruction created only for alignment purposes?. Do not directly call this function, use is_align_insn() @param ea: (ea_t) - instruction address @retval number: of bytes in the instruction
Reimplemented from IDP_Hooks.
ev_is_alloca_probe | ( | self, | |
* | ea ) |
Does the function at 'ea' behave as __alloca_probe? @param ea: (::ea_t) @retval 1: yes @retval 0: no
Reimplemented from IDP_Hooks.
ev_is_basic_block_end | ( | self, | |
* | insn ) |
Is the current instruction end of a basic block?. This function should be defined for processors with delayed jump slots. @param insn: (const insn_t*) the instruction @param call_insn_stops_block: (bool) @retval 0: unknown @retval <0: no @retval 1: yes
Reimplemented from IDP_Hooks.
ev_is_call_insn | ( | self, | |
* | insn ) |
Is the instruction a "call"? @param insn: (const insn_t *) instruction @retval 0: unknown @retval <0: no @retval 1: yes
Reimplemented from IDP_Hooks.
ev_is_far_jump | ( | self, | |
* | icode ) |
is indirect far jump or call instruction? meaningful only if the processor has 'near' and 'far' reference types @param icode: (int) @retval 0: not implemented @retval 1: yes @retval -1: no
Reimplemented from IDP_Hooks.
ev_is_indirect_jump | ( | self, | |
* | insn ) |
Determine if instruction is an indirect jump. If CF_JUMP bit cannot describe all jump types jumps, please define this callback. @param insn: (const insn_t*) the instruction @retval 0: use CF_JUMP @retval 1: no @retval 2: yes
Reimplemented from IDP_Hooks.
ev_is_insn_table_jump | ( | self, | |
* | args ) |
Reserved.
Reimplemented from IDP_Hooks.
ev_is_ret_insn | ( | self, | |
* | insn ) |
Is the instruction a "return"? @param insn: (const insn_t *) instruction @param flags: (uchar), combination of IRI_... flags (see above) @retval 0: unknown @retval <0: no @retval 1: yes
Reimplemented from IDP_Hooks.
ev_is_sane_insn | ( | self, | |
* | insn ) |
Is the instruction sane for the current file type?. @param insn: (const insn_t*) the instruction @param no_crefs: (int) 1: the instruction has no code refs to it. ida just tries to convert unexplored bytes to an instruction (but there is no other reason to convert them into an instruction) 0: the instruction is created because of some coderef, user request or another weighty reason. @retval >=0: ok @retval <0: no, the instruction isn't likely to appear in the program
Reimplemented from IDP_Hooks.
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. @param mode: (int *) out, combination of SP/FP operand flags @param insn: (const insn_t *) @param op: (const op_t *) @retval 0: not implemented @retval 1: ok
Reimplemented from IDP_Hooks.
ev_is_switch | ( | self, | |
* | si ) |
Find 'switch' idiom or override processor module's decision. It will be called for instructions marked with CF_JUMP. @param si: (switch_info_t *), out @param insn: (const insn_t *) instruction possibly belonging to a switch @retval 1: switch is found, 'si' is filled. IDA will create the switch using the filled 'si' @retval -1: no switch found. This value forbids switch creation by the processor module @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_may_be_func | ( | self, | |
* | insn ) |
Can a function start here? @param insn: (const insn_t*) the instruction @param state: (int) autoanalysis phase 0: creating functions 1: creating chunks @returns probability 1..100
Reimplemented from IDP_Hooks.
ev_may_show_sreg | ( | self, | |
* | current_ea ) |
The kernel wants to display the segment registers in the messages window. @param current_ea: (::ea_t) @retval <0: if the kernel should not show the segment registers. (assuming that the module has done it) @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_moving_segm | ( | self, | |
seg, | |||
to, | |||
flags ) |
May the kernel move the segment? @param seg: (segment_t *) segment to move @param to: (::ea_t) new segment start address @param flags: (int) combination of Move segment flags @retval 0: yes @retval <0: the kernel should stop
Reimplemented from IDP_Hooks.
ev_newbinary | ( | self, | |
* | filename ) |
IDA is about to load a binary file. @param filename: (char *) binary file name @param fileoff: (qoff64_t) offset in the file @param basepara: (::ea_t) base loading paragraph @param binoff: (::ea_t) loader offset @param nbytes: (::uint64) number of bytes to load
Reimplemented from IDP_Hooks.
ev_newfile | ( | self, | |
* | fname ) |
A new file has been loaded. @param fname: (char *) input file name
Reimplemented from IDP_Hooks.
ev_newprc | ( | self, | |
* | pnum ) |
Before changing processor type. @param pnum: (int) processor number in the array of processor names @param keep_cfg: (bool) true: do not modify kernel configuration @retval 1: ok @retval <0: prohibit
Reimplemented from IDP_Hooks.
ev_oldfile | ( | self, | |
* | fname ) |
An old file has been loaded. @param fname: (char *) input file name
Reimplemented from IDP_Hooks.
ev_out_assumes | ( | self, | |
* | outctx ) |
Function to produce assume directives when segment register value changes. @param outctx: (outctx_t *) @retval 1: ok @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_out_data | ( | self, | |
* | outctx ) |
Generate text representation of data items This function may change the database and create cross-references if analyze_only is set @param outctx: (outctx_t *) @param analyze_only: (bool) @retval 1: ok @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_out_footer | ( | self, | |
* | outctx ) |
Function to produce end of disassembled text @param outctx: (outctx_t *) @retval void:
Reimplemented from IDP_Hooks.
ev_out_header | ( | self, | |
* | outctx ) |
Function to produce start of disassembled text @param outctx: (outctx_t *) @retval void:
Reimplemented from IDP_Hooks.
ev_out_insn | ( | self, | |
* | outctx ) |
Generate text representation of an instruction in 'ctx.insn' outctx_t provides functions to output the generated text. This function shouldn't change the database, flags or anything else. All these actions should be performed only by emu_insn() function. @param outctx: (outctx_t *) @retval void:
Reimplemented from IDP_Hooks.
ev_out_label | ( | self, | |
* | outctx ) |
The kernel is going to generate an instruction label line or a function header. @param outctx: (outctx_t *) @param colored_name: (const char *) @retval <0: if the kernel should not generate the label @retval 0: not implemented or continue
Reimplemented from IDP_Hooks.
ev_out_mnem | ( | self, | |
* | outctx ) |
Generate instruction mnemonics. This callback should append the colored mnemonics to ctx.outbuf Optional notification, if absent, out_mnem will be called. @param outctx: (outctx_t *) @retval 1: if appended the mnemonics @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_out_operand | ( | self, | |
* | outctx ) |
Generate text representation of an instruction operand outctx_t provides functions to output the generated text. All these actions should be performed only by emu_insn() function. @param outctx: (outctx_t *) @param op: (const op_t *) @retval 1: ok @retval -1: operand is hidden
Reimplemented from IDP_Hooks.
ev_out_segend | ( | self, | |
outctx, | |||
seg ) |
Function to produce end of segment @param outctx: (outctx_t *) @param seg: (segment_t *) @retval 1: ok @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_out_segstart | ( | self, | |
outctx, | |||
seg ) |
Function to produce start of segment @param outctx: (outctx_t *) @param seg: (segment_t *) @retval 1: ok @retval 0: not implemented
Reimplemented from IDP_Hooks.
ev_out_special_item | ( | self, | |
* | outctx ) |
Generate text representation of an item in a special segment i.e. absolute symbols, externs, communal definitions etc @param outctx: (outctx_t *) @param segtype: (uchar) @retval 1: ok @retval 0: not implemented @retval -1: overflow
Reimplemented from IDP_Hooks.
ev_rename | ( | self, | |
* | ea ) |
The kernel is going to rename a byte. @param ea: (::ea_t) @param new_name: (const char *) @retval <0: if the kernel should not rename it. @retval 2: to inhibit the notification. I.e., the kernel should not rename, but 'set_name()' should return 'true'. also see renamed the return value is ignored when kernel is going to delete name
Reimplemented from IDP_Hooks.
ev_set_idp_options | ( | self, | |
keyword, | |||
value_type, | |||
value, | |||
idb_loaded ) |
Set IDP-specific configuration option Also see set_options_t in config.hpp @param keyword: (const char *) @param value_type: (int) @param value: (const void *) @param idb_loaded: (bool) true if the ev_oldfile/ev_newfile events have been generated @retval 1: ok @retval 0: not implemented @retval -1: error (and message in errbuf)
Reimplemented from IDP_Hooks.
ev_set_proc_options | ( | self, | |
* | options ) |
Called if the user specified an option string in the command line: -p<processor name>:<options>. Can be used for setting a processor subtype. Also called if option string is passed to set_processor_type() and IDC's SetProcessorType(). @param options: (const char *) @param confidence: (int) 0: loader's suggestion 1: user's decision @retval <0: if bad option string
Reimplemented from IDP_Hooks.
ev_str2reg | ( | self, | |
* | regname ) |
Convert a register name to a register number. The register number is the register index in the processor_t::reg_names array Most processor modules do not need to implement this callback It is useful only if processor_t::reg_names[reg] does not provide the correct register names @param regname: (const char *) @retval register: number + 1 @retval 0: not implemented or could not be decoded
Reimplemented from IDP_Hooks.
ev_treat_hindering_item | ( | self, | |
* | hindering_item_ea ) |
An item hinders creation of another item. @param hindering_item_ea: (::ea_t) @param new_item_flags: (flags64_t) (0 for code) @param new_item_ea: (::ea_t) @param new_item_length: (::asize_t) @retval 0: no reaction @retval !=0: the kernel may delete the hindering item
Reimplemented from IDP_Hooks.
ev_undefine | ( | self, | |
* | ea ) |
An item in the database (insn or data) is being deleted. @param ea: (ea_t) @retval 1: do not delete srranges at the item end @retval 0: srranges can be deleted
Reimplemented from IDP_Hooks.
ev_validate_flirt_func | ( | self, | |
* | start_ea ) |
Flirt has recognized a library function. This callback can be used by a plugin or proc module to intercept it and validate such a function. @param start_ea: (::ea_t) @param funcname: (const char *) @retval -1: do not create a function, @retval 0: function is validated
Reimplemented from IDP_Hooks.
ev_verify_noreturn | ( | self, | |
pfn ) |
The kernel wants to set 'noreturn' flags for a function. @param pfn: (func_t *) @retval 0: ok. any other value: do not set 'noreturn' flag
Reimplemented from IDP_Hooks.
ev_verify_sp | ( | self, | |
pfn ) |
All function instructions have been analyzed. Now the processor module can analyze the stack pointer for the whole function @param pfn: (func_t *) @retval 0: ok @retval <0: bad stack pointer
Reimplemented from IDP_Hooks.
func_added | ( | self, | |
pfn ) |
get_auxpref | ( | self, | |
insn ) |
This function returns insn.auxpref value
get_idpdesc | ( | self | ) |
This function must be present and should return the list of short processor names similar to the one in ph.psnames. This method can be overridden to return to the kernel a different IDP description.
idasgn_loaded | ( | self, | |
* | args ) |
kernel_config_loaded | ( | self, | |
* | args ) |
make_code | ( | self, | |
* | args ) |
make_data | ( | self, | |
* | args ) |
renamed | ( | self, | |
* | args ) |
savebase | ( | self, | |
* | args ) |
segm_moved | ( | self, | |
from_ea, | |||
to_ea, | |||
size, | |||
changed_netmap ) |
set_func_end | ( | self, | |
* | args ) |
set_func_start | ( | self, | |
* | args ) |
sgr_changed | ( | self, | |
* | args ) |
idb_hooks = _processor_t_Trampoline_IDB_Hooks(self) |
plnames |
psnames |