diff --git a/out_of_tree/parsed_notifications.zip b/out_of_tree/parsed_notifications.zip index 855dfcc..0124533 100644 Binary files a/out_of_tree/parsed_notifications.zip and b/out_of_tree/parsed_notifications.zip differ diff --git a/pywraps/py_idp.py.in b/pywraps/py_idp.py.in deleted file mode 100644 index baef34d..0000000 --- a/pywraps/py_idp.py.in +++ /dev/null @@ -1,578 +0,0 @@ -# - -#---------------------------------------------------------------------------- -# P R O C E S S O R M O D U L E S C O N S T A N T S -#---------------------------------------------------------------------------- - -# ---------------------------------------------------------------------- -# processor_t related constants - -CUSTOM_INSN_ITYPE = 0x8000 -REG_SPOIL = 0x80000000 - -REAL_ERROR_FORMAT = -1 # not supported format for current .idp -REAL_ERROR_RANGE = -2 # number too big (small) for store (mem NOT modifyed) -REAL_ERROR_BADDATA = -3 # illegal real data for load (IEEE data not filled) - -# -# Check whether the operand is relative to stack pointer or frame pointer. -# This function is used to determine how to output a stack variable -# This function may be absent. If it is absent, then all operands -# are sp based by default. -# Define this function only if some stack references use frame pointer -# instead of stack pointer. -# returns flags: -OP_FP_BASED = 0x00000000 # operand is FP based -OP_SP_BASED = 0x00000001 # operand is SP based -OP_SP_ADD = 0x00000000 # operand value is added to the pointer -OP_SP_SUB = 0x00000002 # operand value is substracted from the pointer - -# processor_t.id -${PLFM_DECLS} - -# -# processor_t.flag -# -PR_SEGS = 0x000001 # has segment registers? -PR_USE32 = 0x000002 # supports 32-bit addressing? -PR_DEFSEG32 = 0x000004 # segments are 32-bit by default -PR_RNAMESOK = 0x000008 # allow to user register names for location names -PR_ADJSEGS = 0x000020 # IDA may adjust segments moving their starting/ending addresses. -PR_DEFNUM = 0x0000C0 # default number representation: -PRN_HEX = 0x000000 # hex -PRN_OCT = 0x000040 # octal -PRN_DEC = 0x000080 # decimal -PRN_BIN = 0x0000C0 # binary -PR_WORD_INS = 0x000100 # instruction codes are grouped 2bytes in binrary line prefix -PR_NOCHANGE = 0x000200 # The user can't change segments and code/data attributes (display only) -PR_ASSEMBLE = 0x000400 # Module has a built-in assembler and understands IDP_ASSEMBLE -PR_ALIGN = 0x000800 # All data items should be aligned properly -PR_TYPEINFO = 0x001000 # the processor module supports - # type information callbacks - # ALL OF THEM SHOULD BE IMPLEMENTED! -PR_USE64 = 0x002000 # supports 64-bit addressing? -PR_SGROTHER = 0x004000 # the segment registers don't contain - # the segment selectors, something else -PR_STACK_UP = 0x008000 # the stack grows up -PR_BINMEM = 0x010000 # the processor module provides correct - # segmentation for binary files - # (i.e. it creates additional segments) - # The kernel will not ask the user - # to specify the RAM/ROM sizes -PR_SEGTRANS = 0x020000 # the processor module supports - # the segment translation feature - # (it means it calculates the code - # addresses using the map_code_ea() function) -PR_CHK_XREF = 0x040000 # don't allow near xrefs between segments - # with different bases -PR_NO_SEGMOVE = 0x080000 # the processor module doesn't support move_segm() - # (i.e. the user can't move segments) -PR_USE_ARG_TYPES = 0x200000 # use ph.use_arg_types callback -PR_SCALE_STKVARS = 0x400000 # use ph.get_stkvar_scale callback -PR_DELAYED = 0x800000 # has delayed jumps and calls -PR_ALIGN_INSN = 0x1000000 # allow ida to create alignment instructions - # arbirtrarily. Since these instructions - # might lead to other wrong instructions - # and spoil the listing, IDA does not create - # them by default anymore -PR_PURGING = 0x2000000 # there are calling conventions which may - # purge bytes from the stack -PR_CNDINSNS = 0x4000000 # has conditional instructions -PR_USE_TBYTE = 0x8000000 # BTMT_SPECFLT means _TBYTE type -PR_DEFSEG64 = 0x10000000 # segments are 64-bit by default - - -# ---------------------------------------------------------------------- -# instruc_t related constants - -# -# instruc_t.feature -# -CF_STOP = 0x00001 # Instruction doesn't pass execution to the next instruction -CF_CALL = 0x00002 # CALL instruction (should make a procedure here) -CF_CHG1 = 0x00004 # The instruction modifies the first operand -CF_CHG2 = 0x00008 # The instruction modifies the second operand -CF_CHG3 = 0x00010 # The instruction modifies the third operand -CF_CHG4 = 0x00020 # The instruction modifies 4 operand -CF_CHG5 = 0x00040 # The instruction modifies 5 operand -CF_CHG6 = 0x00080 # The instruction modifies 6 operand -CF_USE1 = 0x00100 # The instruction uses value of the first operand -CF_USE2 = 0x00200 # The instruction uses value of the second operand -CF_USE3 = 0x00400 # The instruction uses value of the third operand -CF_USE4 = 0x00800 # The instruction uses value of the 4 operand -CF_USE5 = 0x01000 # The instruction uses value of the 5 operand -CF_USE6 = 0x02000 # The instruction uses value of the 6 operand -CF_JUMP = 0x04000 # The instruction passes execution using indirect jump or call (thus needs additional analysis) -CF_SHFT = 0x08000 # Bit-shift instruction (shl,shr...) -CF_HLL = 0x10000 # Instruction may be present in a high level language function. - -# -# Set IDP options constants -# -IDPOPT_STR = 1 # string constant -IDPOPT_NUM = 2 # number -IDPOPT_BIT = 3 # bit, yes/no -IDPOPT_FLT = 4 # float -IDPOPT_I64 = 5 # 64bit number - -IDPOPT_OK = 0 # ok -IDPOPT_BADKEY = 1 # illegal keyword -IDPOPT_BADTYPE = 2 # illegal type of value -IDPOPT_BADVALUE = 3 # illegal value (bad range, for example) - -# ---------------------------------------------------------------------- -import ida_pro -import ida_funcs -import ida_segment -import ida_ua -class processor_t(IDP_Hooks): - __idc_cvt_id__ = ida_idaapi.PY_ICID_OPAQUE - - """ - Base class for all processor module scripts - - A processor_t instance is both an ida_idp.IDP_Hooks, and an - ida_idp.IDB_Hooks at the same time: any method of those two classes - can be overridden in your processor_t subclass (with the exception of - 'ida_idp.IDP_Hooks.ev_init' (replaced with processor_t.__init__), - and 'ida_idp.IDP_Hooks.ev_term' (replaced with processor_t.__del__)). - """ - def __init__(self): - IDP_Hooks.__init__(self, ida_idaapi.HBF_CALL_WITH_NEW_EXEC) - self.idb_hooks = _processor_t_Trampoline_IDB_Hooks(self) - - def 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. - """ - return '\x01'.join(map(lambda t: '\x01'.join(t), zip(self.plnames, self.psnames))) - - def get_uFlag(self): - """Use this utility function to retrieve the 'uFlag' global variable""" - return ida_ua.cvar.uFlag - - def get_auxpref(self, insn): - """This function returns insn.auxpref value""" - return insn.auxpref - - def _get_idp_notifier_addr(self): - return _ida_idp.get_idp_notifier_addr(self) - - def _get_idp_notifier_ud_addr(self): - return _ida_idp.get_idp_notifier_ud_addr(self) - - def _get_idb_notifier_addr(self): - return _ida_idp.get_idb_notifier_addr(self) - - def _get_idb_notifier_ud_addr(self): - return _ida_idp.get_idb_notifier_ud_addr(self.idb_hooks) - - def _make_forced_value_wrapper(self, val, meth=None): - def f(*args): - if meth: - meth(*args) - return val - return f - - def _make_int_returning_wrapper(self, meth, intval=0): - def f(*args): - val = meth(*args) - if val is None: - val = intval - return val - return f - - def _get_notify(self, what, unimp_val=0, imp_forced_val=None, add_prefix=True, mandatory_impl=None): - """ - This helper is used to implement backward-compatibility - of pre IDA 7.3 processor_t interfaces. - """ - if add_prefix: - what = "notify_%s" % what - meth = getattr(self, what, None) - if meth is None: - if mandatory_impl: - raise Exception("processor_t.%s() must be implemented" % mandatory_impl) - meth = self._make_forced_value_wrapper(unimp_val) - else: - if imp_forced_val is not None: - meth = self._make_forced_value_wrapper(imp_forced_val, meth) - else: - meth = self._make_int_returning_wrapper(meth) - return meth - - # The default implementations below are what guarantees that - # pre IDA 7.3 processor_t subclasses, will continue working - - def ev_newprc(self, *args): - return self._get_notify("newprc")(*args) - - def ev_newfile(self, *args): - return self._get_notify("newfile")(*args) - - def ev_oldfile(self, *args): - return self._get_notify("oldfile")(*args) - - def ev_newbinary(self, *args): - return self._get_notify("newbinary")(*args) - - def ev_endbinary(self, *args): - return self._get_notify("endbinary")(*args) - - def ev_set_idp_options(self, keyword, value_type, value, idb_loaded): - res = self._get_notify("set_idp_options", unimp_val=None)(keyword, value_type, value) - if res is None: - return 0 - return 1 if res == IDPOPT_OK else -1 - - def ev_set_proc_options(self, *args): - return self._get_notify("set_proc_options")(*args) - - def ev_ana_insn(self, *args): - rc = self._get_notify("ana", mandatory_impl="ev_ana_insn")(*args) - return rc > 0 - - def ev_emu_insn(self, *args): - rc = self._get_notify("emu", mandatory_impl="ev_emu_insn")(*args) - return rc > 0 - - def ev_out_header(self, *args): - return self._get_notify("out_header", imp_forced_val=1)(*args) - - def ev_out_footer(self, *args): - return self._get_notify("out_footer", imp_forced_val=1)(*args) - - def ev_out_segstart(self, ctx, s): - return self._get_notify("out_segstart", imp_forced_val=1)(ctx, s.start_ea) - - def ev_out_segend(self, ctx, s): - return self._get_notify("out_segend", imp_forced_val=1)(ctx, s.end_ea) - - def ev_out_assumes(self, *args): - return self._get_notify("out_assumes", imp_forced_val=1)(*args) - - def ev_out_insn(self, *args): - return self._get_notify("out_insn", mandatory_impl="ev_out_insn", imp_forced_val=True)(*args) - - def ev_out_mnem(self, *args): - return self._get_notify("out_mnem", add_prefix=False, imp_forced_val=1)(*args) - - def ev_out_operand(self, *args): - rc = self._get_notify("out_operand", mandatory_impl="ev_out_operand", imp_forced_val=1)(*args) - return rc > 0 - - def ev_out_data(self, *args): - return self._get_notify("out_data", imp_forced_val=1)(*args) - - def ev_out_label(self, *args): - return self._get_notify("out_label")(*args) - - def ev_out_special_item(self, *args): - return self._get_notify("out_special_item")(*args) - - def ev_gen_regvar_def(self, ctx, v): - return self._get_notify("gen_regvar_def")(ctx, v.canon, v.user, v.cmt) - - def ev_gen_src_file_lnnum(self, *args): - return self._get_notify("gen_src_file_lnnum")(*args) - - def ev_creating_segm(self, s): - sname = ida_segment.get_visible_segm_name(s) - sclass = ida_segment.get_segm_class(s) - return self._get_notify("creating_segm")(s.start_ea, sname, sclass) - - def ev_moving_segm(self, s, to_ea, flags): - sname = ida_segment.get_visible_segm_name(s) - sclass = ida_segment.get_segm_class(s) - return self._get_notify("moving_segm")(s.start_ea, sname, sclass, to_ea, flags) - - def ev_coagulate(self, *args): - return self._get_notify("coagulate")(*args) - - def ev_undefine(self, *args): - return self._get_notify("undefine")(*args) - - def ev_treat_hindering_item(self, *args): - return self._get_notify("treat_hindering_item")(*args) - - def ev_rename(self, *args): - return self._get_notify("rename")(*args) - - def ev_is_far_jump(self, *args): - rc = self._get_notify("is_far_jump", unimp_val=False)(*args) - return 1 if rc else -1 - - def ev_is_sane_insn(self, *args): - return self._get_notify("is_sane_insn")(*args) - - def ev_is_call_insn(self, *args): - return self._get_notify("is_call_insn")(*args) - - def ev_is_ret_insn(self, *args): - return self._get_notify("is_ret_insn")(*args) - - def ev_may_be_func(self, *args): - return self._get_notify("may_be_func")(*args) - - def ev_is_basic_block_end(self, *args): - return self._get_notify("is_basic_block_end")(*args) - - def ev_is_indirect_jump(self, *args): - return self._get_notify("is_indirect_jump")(*args) - - def ev_is_insn_table_jump(self, *args): - return self._get_notify("is_insn_table_jump")(*args) - - def ev_is_switch(self, *args): - rc = self._get_notify("is_switch")(*args) - return 1 if rc else 0 - - def ev_create_switch_xrefs(self, *args): - return self._get_notify("create_switch_xrefs", imp_forced_val=1)(*args) - - def ev_is_align_insn(self, *args): - return self._get_notify("is_align_insn")(*args) - - def ev_is_alloca_probe(self, *args): - return self._get_notify("is_alloca_probe")(*args) - - def ev_is_sp_based(self, mode, insn, op): - rc = self._get_notify("is_sp_based", unimp_val=None)(insn, op) - if type(rc) == int: - ida_pro.int_pointer.frompointer(mode).assign(rc) - return 1 - return 0 - - def ev_can_have_type(self, *args): - rc = self._get_notify("can_have_type")(*args) - if rc is True: - return 1 - elif rc is False: - return -1 - else: - return 0 - - def ev_cmp_operands(self, *args): - rc = self._get_notify("cmp_operands")(*args) - if rc is True: - return 1 - elif rc is False: - return -1 - else: - return 0 - - def ev_get_operand_string(self, buf, insn, opnum): - rc = self._get_notify("get_operand_string")(insn, opnum) - if rc: - return 1 - return 0 - - def ev_str2reg(self, *args): - rc = self._get_notify("notify_str2reg", unimp_val=-1)(*args) - return 0 if rc < 0 else rc + 1 - - def ev_get_autocmt(self, *args): - return self._get_notify("get_autocmt")(*args) - - def ev_func_bounds(self, _possible_return_code, pfn, max_func_end_ea): - possible_return_code = ida_pro.int_pointer.frompointer(_possible_return_code) - rc = self._get_notify("func_bounds", unimp_val=None)( - possible_return_code.value(), - pfn.start_ea, - max_func_end_ea) - if type(rc) == int: - possible_return_code.assign(rc) - return 0 - - def ev_verify_sp(self, pfn): - return self._get_notify("verify_sp")(pfn.start_ea) - - def ev_verify_noreturn(self, pfn): - return self._get_notify("verify_noreturn")(pfn.start_ea) - - def ev_create_func_frame(self, pfn): - rc = self._get_notify("create_func_frame", imp_forced_val=1)(pfn.start_ea) - if rc is True: - return 1 - elif rc is False: - return -1 - else: - return rc - - def ev_get_frame_retsize(self, frsize, pfn): - rc = self._get_notify("get_frame_retsize", unimp_val=None)(pfn.start_ea) - if type(rc) == int: - ida_pro.int_pointer.frompointer(frsize).assign(rc) - return 1 - return 0 - - def ev_coagulate_dref(self, from_ea, to_ea, may_define, _code_ea): - code_ea = ida_pro.ea_pointer.frompointer(_code_ea) - rc = self._get_notify("coagulate_dref")(from_ea, to_ea, may_define, code_ea.value()) - if rc == -1: - return -1 - if rc != 0: - code_ea.assign(rc) - return 0 - - def ev_may_show_sreg(self, *args): - return self._get_notify("may_show_sreg")(*args) - - def ev_auto_queue_empty(self, *args): - return self._get_notify("auto_queue_empty")(*args) - - def ev_validate_flirt_func(self, *args): - return self._get_notify("validate_flirt_func")(*args) - - def ev_assemble(self, *args): - return self._get_notify("assemble")(*args) - - def ev_gen_map_file(self, nlines, fp): - import ida_fpro - qfile = ida_fpro.qfile_t_from_fp(fp) - rc = self._get_notify("gen_map_file")(qfile) - if rc > 0: - ida_pro.int_pointer.frompointer(nlines).assign(rc) - return 1 - else: - return 0 - - def ev_calc_step_over(self, target, ip): - rc = self._get_notify("calc_step_over", unimp_val=None)(ip) - if rc is not None and rc != ida_idaapi.BADADDR: - ida_pro.ea_pointer.frompointer(target).assign(rc) - return 1 - return 0 - - # IDB hooks handling - - def closebase(self, *args): - self._get_notify("closebase")(*args) - - def savebase(self, *args): - self._get_notify("savebase")(*args) - - def auto_empty(self, *args): - self._get_notify("auto_empty")(*args) - - def auto_empty_finally(self, *args): - self._get_notify("auto_empty_finally")(*args) - - def determined_main(self, *args): - self._get_notify("determined_main")(*args) - - def idasgn_loaded(self, *args): - self._get_notify("load_idasgn")(*args) - - def kernel_config_loaded(self, *args): - self._get_notify("kernel_config_loaded")(*args) - - def compiler_changed(self, *args): - self._get_notify("set_compiler")(*args) - - def segm_moved(self, from_ea, to_ea, size, changed_netmap): - s = ida_segment.getseg(to_ea) - sname = ida_segment.get_visible_segm_name(s) - sclass = ida_segment.get_segm_class(s) - self._get_notify("move_segm")(from_ea, to_ea, sname, sclass, changed_netmap) - - def func_added(self, pfn): - self._get_notify("add_func")(pfn.start_ea) - - def set_func_start(self, *args): - self._get_notify("set_func_start")(*args) - - def set_func_end(self, *args): - self._get_notify("set_func_end")(*args) - - def deleting_func(self, pfn): - self._get_notify("del_func")(pfn.start_ea) - - def sgr_changed(self, *args): - self._get_notify("setsgr")(*args) - - def make_code(self, *args): - self._get_notify("make_code")(*args) - - def make_data(self, *args): - self._get_notify("make_data")(*args) - - def renamed(self, *args): - self._get_notify("renamed")(*args) - - -# ---------------------------------------------------------------------- -class __ph(object): - id = property(lambda self: ph_get_id()) - cnbits = property(lambda self: ph_get_cnbits()) - dnbits = property(lambda self: ph_get_dnbits()) - flag = property(lambda self: ph_get_flag()) - icode_return = property(lambda self: ph_get_icode_return()) - instruc = property(lambda self: ph_get_instruc()) - instruc_end = property(lambda self: ph_get_instruc_end()) - instruc_start = property(lambda self: ph_get_instruc_start()) - reg_code_sreg = property(lambda self: ph_get_reg_code_sreg()) - reg_data_sreg = property(lambda self: ph_get_reg_data_sreg()) - reg_first_sreg = property(lambda self: ph_get_reg_first_sreg()) - reg_last_sreg = property(lambda self: ph_get_reg_last_sreg()) - regnames = property(lambda self: ph_get_regnames()) - segreg_size = property(lambda self: ph_get_segreg_size()) - tbyte_size = property(lambda self: ph_get_tbyte_size()) - version = property(lambda self: ph_get_version()) - -ph = __ph() - -class _idp_cvar_t: - ash = property(lambda self: get_ash()) -cvar = _idp_cvar_t() - -# - -# -AS_NOTAB=0 -CUSTOM_CMD_ITYPE=CUSTOM_INSN_ITYPE -InstrIsSet=has_insn_feature -NEXTEAS_ANSWER_SIZE=0 -PR_FULL_HIFXP=0 -SETPROC_ALL=SETPROC_LOADER_NON_FATAL -SETPROC_COMPAT=SETPROC_IDB -SETPROC_FATAL=SETPROC_LOADER -area_cmt_changed=range_cmt_changed -changed_stkpnts=stkpnts_changed -changed_struc=struc_align_changed -changing_area_cmt=changing_range_cmt -changing_struc=changing_struc_align -func_tail_removed=func_tail_deleted -get_reg_info2=get_reg_info -ph_get_regCodeSreg=ph_get_reg_code_sreg -ph_get_regDataSreg=ph_get_reg_data_sreg -ph_get_regFirstSreg=ph_get_reg_first_sreg -ph_get_regLastSreg=ph_get_reg_last_sreg -removing_func_tail=deleting_func_tail -segm_attrs_changed=segm_attrs_updated -str2regf=str2reg -def parse_reg_name(*args): - if isinstance(args[1], reg_info_t): # 6.95: regname, reg_info_t - regname, ri = args - else: # 7.00: reg_info_t, regname - ri, regname = args - return _ida_idp.parse_reg_name(ri, regname) - -def __call_IDP_Hooks_auto_queue_empty(cb, qtype): - old_rc = cb(qtype) - if old_rc == 0: # 6.95's queue not empty anymore - rc = -1 # 7.0's queue not empty anymore - else: - rc = old_rc - return rc - -import ida_ida -ida_ida.__wrap_695_hooks_callback( - IDP_Hooks, - "ev_auto_queue_empty", - "auto_queue_empty", - __call_IDP_Hooks_auto_queue_empty) - -# diff --git a/pywraps/sidc.py b/pywraps/sidc.py deleted file mode 100644 index 4160d7a..0000000 --- a/pywraps/sidc.py +++ /dev/null @@ -1,313 +0,0 @@ -# @arnaud drop this file? - -# ---------------------------------------------------------------------- -# -# Misc constants -# -UA_MAXOP = 8 - -# ---------------------------------------------------------------------- -# instruc_t related constants - -# -# instruc_t.feature -# -CF_STOP = 0x00001 # Instruction doesn't pass execution to the next instruction -CF_CALL = 0x00002 # CALL instruction (should make a procedure here) -CF_CHG1 = 0x00004 # The instruction modifies the first operand -CF_CHG2 = 0x00008 # The instruction modifies the second operand -CF_CHG3 = 0x00010 # The instruction modifies the third operand -CF_CHG4 = 0x00020 # The instruction modifies 4 operand -CF_CHG5 = 0x00040 # The instruction modifies 5 operand -CF_CHG6 = 0x00080 # The instruction modifies 6 operand -CF_USE1 = 0x00100 # The instruction uses value of the first operand -CF_USE2 = 0x00200 # The instruction uses value of the second operand -CF_USE3 = 0x00400 # The instruction uses value of the third operand -CF_USE4 = 0x00800 # The instruction uses value of the 4 operand -CF_USE5 = 0x01000 # The instruction uses value of the 5 operand -CF_USE6 = 0x02000 # The instruction uses value of the 6 operand -CF_JUMP = 0x04000 # The instruction passes execution using indirect jump or call (thus needs additional analysis) -CF_SHFT = 0x08000 # Bit-shift instruction (shl,shr...) -CF_HLL = 0x10000 # Instruction may be present in a high level language function. - -# ---------------------------------------------------------------------- -# op_t related constants - -# -# op_t.type -# Description Data field -o_void = 0 # No Operand ---------- -o_reg = 1 # General Register (al,ax,es,ds...) reg -o_mem = 2 # Direct Memory Reference (DATA) addr -o_phrase = 3 # Memory Ref [Base Reg + Index Reg] phrase -o_displ = 4 # Memory Reg [Base Reg + Index Reg + Displacement] phrase+addr -o_imm = 5 # Immediate Value value -o_far = 6 # Immediate Far Address (CODE) addr -o_near = 7 # Immediate Near Address (CODE) addr -o_idpspec0 = 8 # Processor specific type -o_idpspec1 = 9 # Processor specific type -o_idpspec2 = 10 # Processor specific type -o_idpspec3 = 11 # Processor specific type -o_idpspec4 = 12 # Processor specific type -o_idpspec5 = 13 # Processor specific type - # There can be more processor specific types - -# -# op_t.dtype -# -dt_byte = 0 # 8 bit -dt_word = 1 # 16 bit -dt_dword = 2 # 32 bit -dt_float = 3 # 4 byte floating point -dt_double = 4 # 8 byte floating point -dt_tbyte = 5 # variable size (ph.tbyte_size) floating point -dt_packreal = 6 # packed real format for mc68040 -dt_qword = 7 # 64 bit -dt_byte16 = 8 # 128 bit -dt_code = 9 # ptr to code (not used?) -dt_void = 10 # none -dt_fword = 11 # 48 bit -dt_bitfild = 12 # bit field (mc680x0) -dt_string = 13 # pointer to asciiz string -dt_unicode = 14 # pointer to unicode string -dt_ldbl = 15 # long double (which may be different from tbyte) -dt_byte32 = 16 # 256 bit -dt_byte64 = 17 # 512 bit -dt_half = 18 # 2 byte floating point - -# -# op_t.flags -# -OF_NO_BASE_DISP = 0x80 # o_displ: base displacement doesn't exist meaningful only for o_displ type if set, base displacement (x.addr) doesn't exist. -OF_OUTER_DISP = 0x40 # o_displ: outer displacement exists meaningful only for o_displ type if set, outer displacement (x.value) exists. -PACK_FORM_DEF = 0x20 # !o_reg + dt_packreal: packed factor defined -OF_NUMBER = 0x10 # can be output as number only if set, the operand can be converted to a number only -OF_SHOW = 0x08 # should the operand be displayed? if clear, the operand is hidden and should not be displayed - -# -# insn_t.flags -# -INSN_MACRO = 0x01 # macro instruction -INSN_MODMAC = 0x02 # macros: may modify the database to make room for the macro insn - -# ---------------------------------------------------------------------- -# asm_t related constants - -# -# asm_t.flag -# -AS_OFFST = 0x00000001 # offsets are 'offset xxx' ? -AS_COLON = 0x00000002 # create colons after data names ? -AS_UDATA = 0x00000004 # can use '?' in data directives - -AS_2CHRE = 0x00000008 # double char constants are: "xy -AS_NCHRE = 0x00000010 # char constants are: 'x -AS_N2CHR = 0x00000020 # can't have 2 byte char consts - - # ASCII directives: -AS_1TEXT = 0x00000040 # 1 text per line, no bytes -AS_NHIAS = 0x00000080 # no characters with high bit -AS_NCMAS = 0x00000100 # no commas in ascii directives - -AS_HEXFM = 0x00000E00 # format of hex numbers: -ASH_HEXF0 = 0x00000000 # 34h -ASH_HEXF1 = 0x00000200 # h'34 -ASH_HEXF2 = 0x00000400 # 34 -ASH_HEXF3 = 0x00000600 # 0x34 -ASH_HEXF4 = 0x00000800 # $34 -ASH_HEXF5 = 0x00000A00 # <^R > (radix) -AS_DECFM = 0x00003000 # format of dec numbers: -ASD_DECF0 = 0x00000000 # 34 -ASD_DECF1 = 0x00001000 # #34 -ASD_DECF2 = 0x00002000 # 34. -ASD_DECF3 = 0x00003000 # .34 -AS_OCTFM = 0x0001C000 # format of octal numbers: -ASO_OCTF0 = 0x00000000 # 123o -ASO_OCTF1 = 0x00004000 # 0123 -ASO_OCTF2 = 0x00008000 # 123 -ASO_OCTF3 = 0x0000C000 # @123 -ASO_OCTF4 = 0x00010000 # o'123 -ASO_OCTF5 = 0x00014000 # 123q -ASO_OCTF6 = 0x00018000 # ~123 -AS_BINFM = 0x000E0000 # format of binary numbers: -ASB_BINF0 = 0x00000000 # 010101b -ASB_BINF1 = 0x00020000 # ^B010101 -ASB_BINF2 = 0x00040000 # %010101 -ASB_BINF3 = 0x00060000 # 0b1010101 -ASB_BINF4 = 0x00080000 # b'1010101 -ASB_BINF5 = 0x000A0000 # b'1010101' - -AS_UNEQU = 0x00100000 # replace undefined data items - # with EQU (for ANTA's A80) -AS_ONEDUP = 0x00200000 # One array definition per line -AS_NOXRF = 0x00400000 # Disable xrefs during the output file generation -AS_XTRNTYPE = 0x00800000 # Assembler understands type of extrn - # symbols as ":type" suffix -AS_RELSUP = 0x01000000 # Checkarg: 'and','or','xor' operations - # with addresses are possible -AS_LALIGN = 0x02000000 # Labels at "align" keyword - # are supported. -AS_NOCODECLN = 0x04000000 # don't create colons after code names -AS_NOTAB = 0x08000000 # Disable tabulation symbols during the output file generation -AS_NOSPACE = 0x10000000 # No spaces in expressions -AS_ALIGN2 = 0x20000000 # .align directive expects an exponent rather than a power of 2 - # (.align 5 means to align at 32byte boundary) -AS_ASCIIC = 0x40000000 # ascii directive accepts C-like - # escape sequences (\n,\x01 and similar) -AS_ASCIIZ = 0x80000000 # ascii directive inserts implicit - # zero byte at the end - -# ---------------------------------------------------------------------- -# processor_t related constants - -IDP_INTERFACE_VERSION = 76 -CUSTOM_INSN_ITYPE = 0x8000 -REG_SPOIL = 0x80000000 - -REAL_ERROR_FORMAT = -1 # not supported format for current .idp -REAL_ERROR_RANGE = -2 # number too big (small) for store (mem NOT modifyed) -REAL_ERROR_BADDATA = -3 # illegal real data for load (IEEE data not filled) - -# -# Check whether the operand is relative to stack pointer or frame pointer. -# This function is used to determine how to output a stack variable -# This function may be absent. If it is absent, then all operands -# are sp based by default. -# Define this function only if some stack references use frame pointer -# instead of stack pointer. -# returns flags: -OP_FP_BASED = 0x00000000 # operand is FP based -OP_SP_BASED = 0x00000001 # operand is SP based -OP_SP_ADD = 0x00000000 # operand value is added to the pointer -OP_SP_SUB = 0x00000002 # operand value is substracted from the pointer - -# -# processor_t.flag -# -PR_SEGS = 0x000001 # has segment registers? -PR_USE32 = 0x000002 # supports 32-bit addressing? -PR_DEFSEG32 = 0x000004 # segments are 32-bit by default -PR_RNAMESOK = 0x000008 # allow to user register names for location names -PR_ADJSEGS = 0x000020 # IDA may adjust segments moving their starting/ending addresses. -PR_DEFNUM = 0x0000C0 # default number representation: -PRN_HEX = 0x000000 # hex -PRN_OCT = 0x000040 # octal -PRN_DEC = 0x000080 # decimal -PRN_BIN = 0x0000C0 # binary -PR_WORD_INS = 0x000100 # instruction codes are grouped 2bytes in binrary line prefix -PR_NOCHANGE = 0x000200 # The user can't change segments and code/data attributes (display only) -PR_ASSEMBLE = 0x000400 # Module has a built-in assembler and understands IDP_ASSEMBLE -PR_ALIGN = 0x000800 # All data items should be aligned properly -PR_TYPEINFO = 0x001000 # the processor module supports - # type information callbacks - # ALL OF THEM SHOULD BE IMPLEMENTED! -PR_USE64 = 0x002000 # supports 64-bit addressing? -PR_SGROTHER = 0x004000 # the segment registers don't contain - # the segment selectors, something else -PR_STACK_UP = 0x008000 # the stack grows up -PR_BINMEM = 0x010000 # the processor module provides correct - # segmentation for binary files - # (i.e. it creates additional segments) - # The kernel will not ask the user - # to specify the RAM/ROM sizes -PR_SEGTRANS = 0x020000 # the processor module supports - # the segment translation feature - # (it means it calculates the code - # addresses using the map_code_ea() function) -PR_CHK_XREF = 0x040000 # don't allow near xrefs between segments - # with different bases -PR_NO_SEGMOVE = 0x080000 # the processor module doesn't support move_segm() - # (i.e. the user can't move segments) -PR_USE_ARG_TYPES = 0x200000 # use ph.use_arg_types callback -PR_SCALE_STKVARS = 0x400000 # use ph.get_stkvar_scale callback -PR_DELAYED = 0x800000 # has delayed jumps and calls -PR_ALIGN_INSN = 0x1000000 # allow ida to create alignment instructions - # arbirtrarily. Since these instructions - # might lead to other wrong instructions - # and spoil the listing, IDA does not create - # them by default anymore -PR_PURGING = 0x2000000 # there are calling conventions which may - # purge bytes from the stack -PR_CNDINSNS = 0x4000000 # has conditional instructions -PR_USE_TBYTE = 0x8000000 # BTMT_SPECFLT means _TBYTE type -PR_DEFSEG64 = 0x10000000 # segments are 64-bit by default - -# ---------------------------------------------------------------------- -OOF_SIGNMASK = 0x0003 # sign symbol (+/-) output: -OOFS_IFSIGN = 0x0000 # output sign if needed -OOFS_NOSIGN = 0x0001 # don't output sign, forbid the user to change the sign -OOFS_NEEDSIGN = 0x0002 # always out sign (+-) -OOF_SIGNED = 0x0004 # output as signed if < 0 -OOF_NUMBER = 0x0008 # always as a number -OOF_WIDTHMASK = 0x0070 # width of value in bits: -OOFW_IMM = 0x0000 # take from x.dtype -OOFW_8 = 0x0010 # 8 bit width -OOFW_16 = 0x0020 # 16 bit width -OOFW_24 = 0x0030 # 24 bit width -OOFW_32 = 0x0040 # 32 bit width -OOFW_64 = 0x0050 # 32 bit width -OOF_ADDR = 0x0080 # output x.addr, otherwise x.value -OOF_OUTER = 0x0100 # output outer operand -OOF_ZSTROFF = 0x0200 # meaningful only if is_stroff(uFlag) - # append a struct field name if - # the field offset is zero? - # if AFL_ZSTROFF is set, then this flag - # is ignored. -OOF_NOBNOT = 0x0400 # prohibit use of binary not -OOF_SPACES = 0x0800 # do not suppress leading spaces - # currently works only for floating point numbers -OOF_ANYSERIAL = 0x1000 # if enum: select first available serial - - -# ---------------------------------------------------------------------- -class insn_t(object): - def __init__(self, noperands = UA_MAXOP): - self.auxpref = 0 - self.cs = 0 - self.ea = 0 - self.flags = 0 - self.insnpref = 0 - self.ip = 0 - self.itype = 0 - self.n = 0 - self.segpref = 0 - self.size = 0 - self.ops = [] - - # store the number of operands - self.n = noperands - - # create operands - for i in range(0, noperands): - op = op_t() - op.n = i - self.ops.append(op) - setattr(self, 'Op%d' % (i+1), op) - def __getitem__(self, i): - return self.ops[i] - -# ---------------------------------------------------------------------- -class op_t(object): - def __init__(self): - self.addr = 0 - self.dtype = 0 - self.flags = 0 - self.n = 0 - self.offb = 0 - self.offo = 0 - self.reg = 0 - self.specval = 0 - self.specflag1 = 0 - self.specflag2 = 0 - self.specflag3 = 0 - self.specflag4 = 0 - self.type = 0 - self.value = 0 - - # make sure reg and phrase have the same value - def __setattr__(self, name, value): - if name == 'reg' or name == 'phrase': - object.__setattr__(self, 'reg', value) - object.__setattr__(self, 'phrase', value) - else: - object.__setattr__(self, name, value) diff --git a/release_pydoc_injections2.txt b/release_pydoc_injections2.txt index ffbcb6f..76611f4 100644 --- a/release_pydoc_injections2.txt +++ b/release_pydoc_injections2.txt @@ -3913,9 +3913,7 @@ CP1252)) ida_bytes.ALOPT_MAX4K """ -accumulated length - -if string length is more than 4K, return the +if string length is more than 4K, return the accumulated length """ ida_bytes.BIN_SEARCH_BACKWARD @@ -3968,9 +3966,7 @@ to unexplored the next instruction too. ida_bytes.DELIT_KEEPFUNC """ -Just delete xrefs, ops e.t.c. - -do not undefine the function start. +do not undefine the function start. Just delete xrefs, ops e.t.c. """ ida_bytes.DELIT_NOCMT @@ -3981,9 +3977,7 @@ starting address). this bit is valid if nbytes > 1 ida_bytes.DELIT_NOTRUNC """ -even if 'AF_TRFUNC' is set - -don't truncate the current function +don't truncate the current function even if 'AF_TRFUNC' is set """ ida_bytes.DELIT_NOUNAME @@ -4315,9 +4309,8 @@ debugging because the kernel needs to read the process memory. ida_bytes.GMB_READALL """ -if this bit is not set, fail at first uninited byte - -try to read all bytes +try to read all bytes if this bit is not set, fail at first uninited +byte """ ida_bytes.GMB_WAITBOX @@ -4389,9 +4382,8 @@ mask for operand number ida_bytes.OPND_OUTER """ -used only in set, get, del_offset() functions - -outer offset base (combined with operand number). +outer offset base (combined with operand number). used only in set, +get, del_offset() functions """ ida_bytes.PSTF_ENC @@ -7399,9 +7391,8 @@ condition has been compiled ida_dbg.BKPT_FAKEPEND """ -bpt of the same type is active at the same address(es) - -fake pending bpt: it is inactive but another +fake pending bpt: it is inactive but another bpt of the same type is +active at the same address(es) """ ida_dbg.BKPT_LISTBPT @@ -7411,9 +7402,8 @@ include in bpt list (user-defined bpt) ida_dbg.BKPT_PAGE """ -only after writing the bpt to the process. - -written to the process as a page bpt. is available +written to the process as a page bpt. is available only after writing +the bpt to the process. """ ida_dbg.BKPT_PARTIAL @@ -7731,9 +7721,8 @@ continue from the suspended state ida_dbg.WFNE_NOWAIT """ -(to be used with 'WFNE_CONT' ) - -do not wait for any event, immediately return 'DEC_TIMEOUT' +do not wait for any event, immediately return 'DEC_TIMEOUT' (to be +used with 'WFNE_CONT' ) """ ida_dbg.WFNE_SILENT @@ -7748,9 +7737,8 @@ wait until the process gets suspended ida_dbg.WFNE_USEC """ -(minimum non-zero timeout is 40000us) - -timeout is specified in microseconds +timeout is specified in microseconds (minimum non-zero timeout is +40000us) """ === ida_dbg EPYDOC INJECTIONS END === Help on class direntry_t in module ida_dirtree: @@ -9228,9 +9216,8 @@ accordingly Specifying AEF_IDBENC also implies AEF_NODUMMY ida_entry.AEF_NODUMMY """ -it begins with a dummy suffix. See also AEF_IDBENC - -automatically prepend the name with '_' if +automatically prepend the name with '_' if it begins with a dummy +suffix. See also AEF_IDBENC """ ida_entry.AEF_UTF8 @@ -13662,9 +13649,7 @@ create instruction if undefined byte is encountered ida_funcs.FIND_FUNC_EXIST """ -its bounds are returned in 'nfn'. - -function exists already. +function exists already. its bounds are returned in 'nfn'. """ ida_funcs.FIND_FUNC_IGNOREFN @@ -13675,9 +13660,8 @@ function boundaries if ea belongs to a function. ida_funcs.FIND_FUNC_KEEPBD """ -just create instructions inside the boundaries. - -do not modify incoming function boundaries, +do not modify incoming function boundaries, just create instructions +inside the boundaries. """ ida_funcs.FIND_FUNC_NORMAL @@ -13692,10 +13676,8 @@ ok, 'nfn' is ready for 'add_func()' ida_funcs.FIND_FUNC_UNDEF """ -nfn->end_ea will have the address of the unexplored byte. - function has instructions that pass execution flow to unexplored -bytes. +bytes. nfn->end_ea will have the address of the unexplored byte. """ ida_funcs.FUNC_BOTTOMBP @@ -13715,9 +13697,8 @@ Function uses frame pointer (BP) ida_funcs.FUNC_FUZZY_SP """ -for example: and esp, 0FFFFFFF0h - -Function changes SP in untraceable way, +Function changes SP in untraceable way, for example: and esp, +0FFFFFFF0h """ ida_funcs.FUNC_HIDDEN @@ -13742,16 +13723,13 @@ Function doesn't return. ida_funcs.FUNC_NORET_PENDING """ -This flag is verified upon 'func_does_return()' - -Function 'non-return' analysis must be performed. +Function 'non-return' analysis must be performed. This flag is +verified upon 'func_does_return()' """ ida_funcs.FUNC_PROLOG_OK """ -by last SP-analysis - -Prolog analysis has be performed +Prolog analysis has be performed by last SP-analysis """ ida_funcs.FUNC_PURGED_OK @@ -13786,9 +13764,7 @@ Thunk (jump) function. ida_funcs.FUNC_USERFAR """ -of the function - -User has specified far-ness +User has specified far-ness of the function """ ida_funcs.IDASGN_APPLIED @@ -40308,9 +40284,7 @@ update minbstkref and minbargref ida_hexrays.CPBLK_OPTJMP """ -if it becomes useless - -del the jump insn at the end of the block +del the jump insn at the end of the block if it becomes useless """ ida_hexrays.CV_FAST @@ -40474,9 +40448,8 @@ and at least one of them was a call to a real functions ida_hexrays.FCI_HASFMT """ -printf- or scanf-style format string - -A variadic function with recognized +A variadic function with recognized printf- or scanf-style format +string """ ida_hexrays.FCI_NORET @@ -40518,9 +40491,8 @@ look for definition ida_hexrays.FD_DIRTY """ -by function calls and indirect memory access - -ignore possible implicit definitions +ignore possible implicit definitions by function calls and indirect +memory access """ ida_hexrays.FD_FORWARD @@ -40606,9 +40578,8 @@ optimizer. assertions are ignored when generating ctree ida_hexrays.IPROP_CLNPOP """ -(e.g. "pop ecx" is often used for that) - -the purpose of the instruction is to clean stack +the purpose of the instruction is to clean stack (e.g. "pop ecx" is +often used for that) """ ida_hexrays.IPROP_COMBINED @@ -40654,17 +40625,16 @@ inverted conditional jump ida_hexrays.IPROP_MBARRIER """ -(instructions accessing memory may not be reordered past it) - -this instruction acts as a memory barrier +this instruction acts as a memory barrier (instructions accessing +memory may not be reordered past it) """ ida_hexrays.IPROP_MULTI_MOV """ -(example: STM on ARM may transfer multiple registers) +bits that can be set by plugins: -the minsn was generated as part of insn that moves multiple -registersbits that can be set by plugins: +the minsn was generated as part of insn that moves multiple registers +(example: STM on ARM may transfer multiple registers) """ ida_hexrays.IPROP_OPTIONAL @@ -40719,9 +40689,8 @@ match multiple insns ida_hexrays.LOCOPT_ALL """ -is not set, only dirty blocks will be optimized - -redo optimization for all blocks. if this bit +redo optimization for all blocks. if this bit is not set, only dirty +blocks will be optimized """ ida_hexrays.LOCOPT_REFINE @@ -40975,9 +40944,8 @@ dead end block: doesn't return execution control ida_hexrays.MBL_PRIV """ -the specified are accepted (used in patterns) - -private block - no instructions except +private block - no instructions except the specified are accepted +(used in patterns) """ ida_hexrays.MBL_PROP @@ -41078,16 +41046,14 @@ reuse existing window ida_hexrays.OPF_REUSE_ACTIVE """ -currently active widget is a pseudocode view - -reuse existing window, only if the +reuse existing window, only if the currently active widget is a +pseudocode view """ ida_hexrays.OPROP_CCFLAGS """ -else: value of a condition code register (like mr_cc) - -mop_n: a pc-relative value +mop_n: a pc-relative value else: value of a condition code register +(like mr_cc) """ ida_hexrays.OPROP_FLOAT @@ -41224,16 +41190,14 @@ the last instruction (if M is NULL) ida_hexrays.VR_AT_START """ -at the block start (if M is NULL) - -get value ranges before the instruction or +get value ranges before the instruction or at the block start (if M is +NULL) """ ida_hexrays.VR_EXACT """ -valrng size will be >= vivl.size - -find exact match. if not set, the returned +find exact match. if not set, the returned valrng size will be >= +vivl.size """ === ida_hexrays EPYDOC INJECTIONS END === Help on function __make_idainfo_accessors in module ida_ida: @@ -43630,11 +43594,9 @@ ida_ida.ABI_8ALIGN4 ida_ida.ABI_BIGARG_ALIGN """ -(e.g. __int64 argument should be 8byte aligned on some 32bit -platforms) - use natural type alignment for argument if the alignment exceeds -native word size +native word size (e.g. __int64 argument should be 8byte aligned on +some 32bit platforms) """ ida_ida.ABI_GCC_LAYOUT @@ -43911,9 +43873,7 @@ leave database components unpacked ida_ida.INFFL_ALLASM """ -the target assembler - -may use constructs not supported by +may use constructs not supported by the target assembler """ ida_ida.INFFL_AUTO @@ -44009,9 +43969,8 @@ memory snapshot was taken? ida_ida.LFLG_WIDE_HBF """ -(wide bytes: \\ph{dnbits} > 8) - -Bit order of wide bytes: high byte first? +Bit order of wide bytes: high byte first? (wide bytes: \\ph{dnbits} > +8) """ ida_ida.LMT_EMPTY @@ -47343,10 +47302,8 @@ instruction pointer ida_idd.REGISTER_NOLF """ -allowing the next register to be displayed to its right (on the same -line) - -displays this register without returning to the next line +displays this register without returning to the next line allowing the +next register to be displayed to its right (on the same line) """ ida_idd.REGISTER_READONLY @@ -47376,9 +47333,7 @@ integer ida_idd.RVT_UNAVAILABLE """ -other values mean custom data type - -unavailable +unavailable other values mean custom data type """ === ida_idd EPYDOC INJECTIONS END === Help on function AssembleLine in module ida_idp: @@ -52348,9 +52303,7 @@ Use braces for all expressions. ida_idp.AS2_BYTE1CHAR """ -Meaningful only for wide byte processors. - -One symbol per processor byte +One symbol per processor byte Meaningful only for wide byte processors """ ida_idp.AS2_COLONSUF @@ -52367,16 +52320,13 @@ name) the same as in borland tasm ideal ida_idp.AS2_STRINV """ -(For processors with bytes bigger than 8 bits) - -Invert meaning of \\inf{wide_high_byte_first} for text strings +Invert meaning of \\inf{wide_high_byte_first} for text strings (For +processors with bytes bigger than 8 bits) """ ida_idp.AS2_TERSESTR """ -NAME is supported. - -'terse' structure initialization form +'terse' structure initialization form NAME is supported """ ida_idp.AS2_YWORD @@ -52511,16 +52461,13 @@ double char constants are: "xy ida_idp.AS_ALIGN2 """ -(.align 5 means to align at 32byte boundary) - -.align directive expects an exponent rather than a power of 2 +.align directive expects an exponent rather than a power of 2 (.align +5 means to align at 32byte boundary) """ ida_idp.AS_ASCIIC """ -(\\n,\\x01 and similar) - -ascii directive accepts C-like escape sequences +ascii directive accepts C-like escape sequences (\\n,\\x01 and similar) """ ida_idp.AS_ASCIIZ @@ -52670,16 +52617,13 @@ The instruction modifies the 8th operand. ida_idp.CF_HLL """ -language function. - -Instruction may be present in a high level +Instruction may be present in a high level language function. """ ida_idp.CF_JUMP """ -jump or call (thus needs additional analysis) - -The instruction passes execution using indirect +The instruction passes execution using indirect jump or call (thus +needs additional analysis) """ ida_idp.CF_SHFT @@ -52689,9 +52633,7 @@ Bit-shift instruction (shl,shr...) ida_idp.CF_STOP """ -next instruction - -Instruction doesn't pass execution to the +Instruction doesn't pass execution to the next instruction """ ida_idp.CF_USE1 @@ -53146,9 +53088,7 @@ ida_idp.PLFM_Z80 ida_idp.PR2_CODE16_BIT """ -e.g. ARM Thumb, MIPS16 - -low bit of code addresses has special meaning +low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 """ ida_idp.PR2_IDP_OPTS @@ -53265,16 +53205,13 @@ has delayed jumps and calls if this flag is set, ida_idp.PR_NOCHANGE """ -(display only) - -The user can't change segments and code/data attributes +The user can't change segments and code/data attributes (display only) """ ida_idp.PR_NO_SEGMOVE """ -(i.e. the user can't move segments) - -the processor module doesn't support 'move_segm()' +the processor module doesn't support 'move_segm()' (i.e. the user +can't move segments) """ ida_idp.PR_OUTER @@ -53320,9 +53257,8 @@ the stack grows up ida_idp.PR_TYPEINFO """ -ALL OF THEM SHOULD BE IMPLEMENTED! - -the processor module supports type information callbacks +the processor module supports type information callbacks ALL OF THEM +SHOULD BE IMPLEMENTED! """ ida_idp.PR_USE32 @@ -61464,23 +61400,20 @@ 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 +Register the action globally, so that it's available even if no IDB is +present """ ida_kernwin.ADF_NO_HIGHLIGHT """ -according to what's under the cursor (listings only.) - -After activating, do not update the highlight +After activating, do not update the highlight according to what's +under the cursor (listings only.) """ ida_kernwin.ADF_NO_UNDO """ -useful for actions that do not modify the database. - -the action does not create an undo point. +the action does not create an undo point. useful for actions that do +not modify the database. """ ida_kernwin.ADF_OT_MASK @@ -62222,9 +62155,8 @@ on_location_changed() handler wouldn't be called.) ida_kernwin.CVNF_JUMP """ -'lochist_t' before going to the new location - -push the current position in this viewer's +push the current position in this viewer's 'lochist_t' before going to +the new location """ ida_kernwin.CVNF_LAZY @@ -62235,9 +62167,8 @@ possible. This might disregard the Y position in case of success ida_kernwin.DP_BEFORE """ -used with 'DP_INSIDE' . - -place src_form before dst_form in the tab bar instead of after +place src_form before dst_form in the tab bar instead of after used +with 'DP_INSIDE' . """ ida_kernwin.DP_BOTTOM @@ -62754,9 +62685,7 @@ jump in any ea_t-capable view ida_kernwin.UIJMP_DONTPUSH """ -in the navigation history - -do not remember the current address +do not remember the current address in the navigation history """ ida_kernwin.UIJMP_IDAVIEW @@ -63238,16 +63167,12 @@ Lumina function. ida_lines.COLOR_OFF """ -Followed by a color code ( 'color_t' ). - -Escape character (OFF). +Escape character (OFF). Followed by a color code ( 'color_t' ). """ ida_lines.COLOR_ON """ -Followed by a color code ( 'color_t' ). - -Escape character (ON). +Escape character (ON). Followed by a color code ( 'color_t' ). """ ida_lines.COLOR_REGFUNC @@ -64263,9 +64188,7 @@ temporary database ida_loader.FILEREG_NOTPATCHABLE """ -form in the file. - -the data is kept in some encoded +the data is kept in some encoded form in the file. """ ida_loader.FILEREG_PATCHABLE @@ -64333,9 +64256,7 @@ Maximum database snapshot description length. ida_loader.NEF_CODE """ -load as a code segment - -for 'load_binary_file()' : +for 'load_binary_file()' : load as a code segment """ ida_loader.NEF_FILL @@ -64345,9 +64266,7 @@ Fill segment gaps. ida_loader.NEF_FIRST """ -into the database. - -This is the first file loaded +This is the first file loaded into the database. """ ida_loader.NEF_FLAT @@ -64388,7 +64307,7 @@ Rename entries. ida_loader.NEF_RELOAD """ -reload the file at the same place: - don't create segmentsdon't create +reload the file at the same place:don't create segmentsdon't create fixup infodon't import segmentsetc load only the bytes into the base. a loader should have 'LDRF_RELOAD' bit set """ @@ -67395,9 +67314,7 @@ has user defined instruction color? ida_nalt.AFL_FIXEDSPD """ -should not be modified by modules - -sp delta value is fixed by analysis. +sp delta value is fixed by analysis. should not be modified by modules """ ida_nalt.AFL_HIDDEN @@ -67530,9 +67447,7 @@ who guessed the type information? ida_nalt.AFL_USEMODSP """ -example: pop [rsp+N] - -insn modifes SP and uses the modified value +insn modifes SP and uses the modified value example: pop [rsp+N] """ ida_nalt.AFL_USERSP @@ -67620,9 +67535,8 @@ additional flags for an item ida_nalt.NALT_ALIGN """ -(should by equal to power of 2) - -alignment value if the item is 'FF_ALIGN' +alignment value if the item is 'FF_ALIGN' (should by equal to power of +2) """ ida_nalt.NALT_COLOR @@ -67990,9 +67904,8 @@ usual) being added to it ida_nalt.REFINFO_TYPE """ -reference ID if REFINFO_CUSTOM set - -reference type (reftype_t), or custom +reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM +set """ ida_nalt.RIDX_ABINAME @@ -68183,9 +68096,8 @@ find_defjump_from_table() helper function. ida_nalt.SWI_ELBASE """ -segment will be used) - -elbase is present (otherwise the base of the switch +elbase is present (otherwise the base of the switch segment will be +used) """ ida_nalt.SWI_HXNOLOWCASE @@ -68195,9 +68107,8 @@ lowcase value should not be used by the decompiler (internal flag) ida_nalt.SWI_INDIRECT """ -(for sparse switches) - -value table elements are used as indexes into the jump table +value table elements are used as indexes into the jump table (for +sparse switches) """ ida_nalt.SWI_J32 @@ -68215,9 +68126,7 @@ insn like a 'mov' and jump to the end of case, and so on. ida_nalt.SWI_JMP_INV """ -for first entry in values table) - -jumptable is inversed. (last entry is +jumptable is inversed. (last entry is for first entry in values table) """ ida_nalt.SWI_JSIZE @@ -68247,9 +68156,7 @@ jump table entries are signed ida_nalt.SWI_SPARSE """ -otherwise lowcase present - -sparse switch (value table present) +sparse switch (value table present) otherwise lowcase present """ ida_nalt.SWI_STDTBL @@ -69061,9 +68968,8 @@ Name prefix used by IDA for the imported functions. ida_name.GETN_APPZERO """ -append a struct field name if the field offset is zero? - -meaningful only if the name refers to a structure. +meaningful only if the name refers to a structure. append a struct +field name if the field offset is zero? """ ida_name.GETN_NODUMMY @@ -69239,9 +69145,8 @@ if set, make name autogenerated ida_name.SN_DELTAIL """ -delete the hindering item - -if name cannot be set because of a tail byte, +if name cannot be set because of a tail byte, delete the hindering +item """ ida_name.SN_FORCE @@ -74686,9 +74591,8 @@ failure. it cannot hold more than ~1000 gaps. ida_segment.ADDSEG_IDBENC """ -non-ASCII bytes will be decoded accordingly - -'name' and 'sclass' are given in the IDB encoding; +'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes +will be decoded accordingly """ ida_segment.ADDSEG_NOAA @@ -74698,17 +74602,14 @@ do not mark new segment for auto-analysis ida_segment.ADDSEG_NOSREG """ -(undefine all default segment registers) - -set all default segment register values to 'BADSEL' +set all default segment register values to 'BADSEL' (undefine all +default segment registers) """ ida_segment.ADDSEG_NOTRUNC """ -destroy/truncate old segments instead. - don't truncate the new segment at the beginning of the next segment if -they overlap. +they overlap. destroy/truncate old segments instead. """ ida_segment.ADDSEG_OR_DIE @@ -74740,9 +74641,7 @@ debugger is not running ida_segment.CSS_NOMEM """ -is too big) - -not enough memory (might be because the segment +not enough memory (might be because the segment is too big) """ ida_segment.CSS_NORANGE @@ -74812,9 +74711,8 @@ Not enough free room at the target address. ida_segment.MSF_FIXONCE """ -valid for 'rebase_program()' . see 'loader_t::move_segm' . - -call loader only once with the special calling method. +call loader only once with the special calling method. valid for +'rebase_program()' . see 'loader_t::move_segm' . """ ida_segment.MSF_LDKEEP @@ -74824,9 +74722,8 @@ keep the loader in the memory (optimization) ida_segment.MSF_NETNODES """ -valid for 'rebase_program()' - -move netnodes instead of changing inf.netdelta (this is slower) +move netnodes instead of changing inf.netdelta (this is slower) valid +for 'rebase_program()' """ ida_segment.MSF_NOFIX @@ -74836,10 +74733,8 @@ don't call the loader to fix relocations ida_segment.MSF_PRIORITY """ -valid for 'move_segm()' - loader segments will overwrite any existing debugger segments when -moved. +moved. valid for 'move_segm()' """ ida_segment.MSF_SILENT @@ -74869,9 +74764,8 @@ disable addresses if segment gets shrinked or deleted ida_segment.SEGMOD_NOMOVE """ -(for 'set_segm_start()' ) - don't move info from the start of segment to the new start address +(for 'set_segm_start()' ) """ ida_segment.SEGMOD_SILENT @@ -74881,9 +74775,8 @@ be silent ida_segment.SEGMOD_SPARSE """ -(for 'set_segm_start()' , 'set_segm_end()' ) - -use sparse storage if extending the segment +use sparse storage if extending the segment (for 'set_segm_start()' , +'set_segm_end()' ) """ ida_segment.SEGPERM_EXEC @@ -74958,9 +74851,7 @@ undefined segment type (not used) ida_segment.SEG_XTRN """ -no instructions are allowed - -segment with 'extern' definitions. +segment with 'extern' definitions. no instructions are allowed """ ida_segment.SFL_COMORG @@ -75037,9 +74928,8 @@ ida_segment.saRel32Bytes ida_segment.saRel4K """ -alignment. It is not supported by LINK. - -This value is used by the PharLap OMF for page (4K) +This value is used by the PharLap OMF for page (4K) alignment. It is +not supported by LINK. """ ida_segment.saRel512Bytes @@ -75059,9 +74949,7 @@ Relocatable, byte aligned. ida_segment.saRelDble """ -boundary. - -Relocatable, aligned on a double word (4-byte) +Relocatable, aligned on a double word (4-byte) boundary. """ ida_segment.saRelPage @@ -75096,16 +74984,13 @@ Segment group. ida_segment.scPriv """ -segment. - -Private. Do not combine with any other program +Private. Do not combine with any other program segment. """ ida_segment.scPub """ -the alignment requirement. - -Public. Combine by appending at an offset that meets +Public. Combine by appending at an offset that meets the alignment +requirement. """ ida_segment.scPub2 @@ -75120,9 +75005,7 @@ As defined by Microsoft, same as C=2 (public). ida_segment.scStack """ -byte alignment. - -Stack. Combine as for C=2. This combine type forces +Stack. Combine as for C=2. This combine type forces byte alignment. """ === ida_segment EPYDOC INJECTIONS END === Help on function copy_sreg_ranges in module ida_segregs: @@ -76463,9 +76346,7 @@ the structure comes from type library ida_struct.SF_UNION """ -varunions are prohibited! - -is a union? +is a union? varunions are prohibited! """ ida_struct.SF_VAR @@ -84710,9 +84591,8 @@ all defined bits ida_typeinf.FTI_ARGLOCS """ -(stkargs and retloc too) - -info about argument locations has been calculated +info about argument locations has been calculated (stkargs and retloc +too) """ ida_typeinf.FTI_CALLTYPE @@ -84807,16 +84687,12 @@ debug: print external representation of types ida_typeinf.HTI_FIL """ -otherwise "input" contains a C declaration - -"input" is file name, +"input" is file name, otherwise "input" contains a C declaration """ ida_typeinf.HTI_HIGH """ -(with hidden args, etc) - -assume high level prototypes +assume high level prototypes (with hidden args, etc) """ ida_typeinf.HTI_INT @@ -84940,16 +84816,14 @@ value is 64bit ida_typeinf.NTF_CHKSYNC """ -(set_numbered_type, set_named_type) - -check that synchronization to IDB passed OK +check that synchronization to IDB passed OK (set_numbered_type, +set_named_type) """ ida_typeinf.NTF_FIXNAME """ -(set_named_type, set_numbered_type only) - -force-validate the name of the type when setting +force-validate the name of the type when setting (set_named_type, +set_numbered_type only) """ ida_typeinf.NTF_IDBENC @@ -84975,9 +84849,8 @@ replace original type (for set_named_type) ida_typeinf.NTF_SYMM """ -only one of 'NTF_TYPE' and 'NTF_SYMU' , 'NTF_SYMM' can be used - -symbol, name is mangled ('_func') +symbol, name is mangled ('_func') only one of 'NTF_TYPE' and +'NTF_SYMU' , 'NTF_SYMM' can be used """ ida_typeinf.NTF_SYMU @@ -85147,9 +85020,7 @@ print type declaration (not variable declaration) ida_typeinf.PT_HIGH """ -(with hidden args, etc) - -assume high level prototypes +assume high level prototypes (with hidden args, etc) """ ida_typeinf.PT_LOWER @@ -85226,7 +85097,7 @@ too. ida_typeinf.STRMEM_AUTO """ -get member by offset if struct, or get member by index if union - nb: +get member by offset if struct, or get member by index if unionnb: union: index is stored in the udm->offset field!nb: struct: offset is in bytes (not in bits)! """ @@ -85239,7 +85110,7 @@ the specified type ida_typeinf.STRMEM_INDEX """ -get member by number- in: udm->offset - is a member number +get member by numberin: udm->offset - is a member number """ ida_typeinf.STRMEM_MAXS @@ -85254,17 +85125,17 @@ get smallest member by size. ida_typeinf.STRMEM_NAME """ -get member by name- in: udm->name - the desired member name. +get member by namein: udm->name - the desired member name. """ ida_typeinf.STRMEM_OFFSET """ -get member by offset- in: udm->offset - is a member offset in bits +get member by offsetin: udm->offset - is a member offset in bits """ ida_typeinf.STRMEM_SIZE """ -get member by size.- in: udm->size - the desired member size. +get member by size.in: udm->size - the desired member size. """ ida_typeinf.STRMEM_SKIP_EMPTY @@ -85275,7 +85146,7 @@ members (i.e. having zero size) only last empty member can be returned ida_typeinf.STRMEM_TYPE """ -get member by type. - in: udm->type - the desired member type. member +get member by type.in: udm->type - the desired member type. member types are compared with tinfo_t::equals_to() """ @@ -85287,9 +85158,8 @@ instead of the base class ida_typeinf.SUDT_ALIGN """ -to match the offsets and size info - -recalculate field alignments, struct packing, etc +recalculate field alignments, struct packing, etc to match the offsets +and size info """ ida_typeinf.SUDT_CONST @@ -87107,9 +86977,8 @@ those are not defined and the INFFL_ALLASM is not set, ida_ua.FCBF_ERR_REPL """ -of a hex representation of the problematic byte - -in case of an error, use a CP_REPLCHAR instead +in case of an error, use a CP_REPLCHAR instead of a hex representation +of the problematic byte """ ida_ua.FCBF_FF_LIT @@ -87238,9 +87107,8 @@ sign symbol (+/-) output ida_ua.OOF_SPACES """ -currently works only for floating point numbers - -do not suppress leading spaces +do not suppress leading spaces currently works only for floating point +numbers """ ida_ua.OOF_WIDTHMASK @@ -87257,9 +87125,7 @@ ignored. ida_ua.PACK_FORM_DEF """ -(! 'o_reg' + 'dt_packreal' ) - -packed factor defined. +packed factor defined. (! 'o_reg' + 'dt_packreal' ) """ ida_ua.dt_bitfild diff --git a/release_pydoc_injections3.txt b/release_pydoc_injections3.txt index 5c17042..a9ab7b6 100644 --- a/release_pydoc_injections3.txt +++ b/release_pydoc_injections3.txt @@ -3914,9 +3914,7 @@ CP1252)) ida_bytes.ALOPT_MAX4K """ -accumulated length - -if string length is more than 4K, return the +if string length is more than 4K, return the accumulated length """ ida_bytes.BIN_SEARCH_BACKWARD @@ -3969,9 +3967,7 @@ to unexplored the next instruction too. ida_bytes.DELIT_KEEPFUNC """ -Just delete xrefs, ops e.t.c. - -do not undefine the function start. +do not undefine the function start. Just delete xrefs, ops e.t.c. """ ida_bytes.DELIT_NOCMT @@ -3982,9 +3978,7 @@ starting address). this bit is valid if nbytes > 1 ida_bytes.DELIT_NOTRUNC """ -even if 'AF_TRFUNC' is set - -don't truncate the current function +don't truncate the current function even if 'AF_TRFUNC' is set """ ida_bytes.DELIT_NOUNAME @@ -4316,9 +4310,8 @@ debugging because the kernel needs to read the process memory. ida_bytes.GMB_READALL """ -if this bit is not set, fail at first uninited byte - -try to read all bytes +try to read all bytes if this bit is not set, fail at first uninited +byte """ ida_bytes.GMB_WAITBOX @@ -4390,9 +4383,8 @@ mask for operand number ida_bytes.OPND_OUTER """ -used only in set, get, del_offset() functions - -outer offset base (combined with operand number). +outer offset base (combined with operand number). used only in set, +get, del_offset() functions """ ida_bytes.PSTF_ENC @@ -7369,9 +7361,8 @@ condition has been compiled ida_dbg.BKPT_FAKEPEND """ -bpt of the same type is active at the same address(es) - -fake pending bpt: it is inactive but another +fake pending bpt: it is inactive but another bpt of the same type is +active at the same address(es) """ ida_dbg.BKPT_LISTBPT @@ -7381,9 +7372,8 @@ include in bpt list (user-defined bpt) ida_dbg.BKPT_PAGE """ -only after writing the bpt to the process. - -written to the process as a page bpt. is available +written to the process as a page bpt. is available only after writing +the bpt to the process. """ ida_dbg.BKPT_PARTIAL @@ -7701,9 +7691,8 @@ continue from the suspended state ida_dbg.WFNE_NOWAIT """ -(to be used with 'WFNE_CONT' ) - -do not wait for any event, immediately return 'DEC_TIMEOUT' +do not wait for any event, immediately return 'DEC_TIMEOUT' (to be +used with 'WFNE_CONT' ) """ ida_dbg.WFNE_SILENT @@ -7718,9 +7707,8 @@ wait until the process gets suspended ida_dbg.WFNE_USEC """ -(minimum non-zero timeout is 40000us) - -timeout is specified in microseconds +timeout is specified in microseconds (minimum non-zero timeout is +40000us) """ === ida_dbg EPYDOC INJECTIONS END === Help on class direntry_t in module ida_dirtree: @@ -9191,9 +9179,8 @@ accordingly Specifying AEF_IDBENC also implies AEF_NODUMMY ida_entry.AEF_NODUMMY """ -it begins with a dummy suffix. See also AEF_IDBENC - -automatically prepend the name with '_' if +automatically prepend the name with '_' if it begins with a dummy +suffix. See also AEF_IDBENC """ ida_entry.AEF_UTF8 @@ -13585,9 +13572,7 @@ create instruction if undefined byte is encountered ida_funcs.FIND_FUNC_EXIST """ -its bounds are returned in 'nfn'. - -function exists already. +function exists already. its bounds are returned in 'nfn'. """ ida_funcs.FIND_FUNC_IGNOREFN @@ -13598,9 +13583,8 @@ function boundaries if ea belongs to a function. ida_funcs.FIND_FUNC_KEEPBD """ -just create instructions inside the boundaries. - -do not modify incoming function boundaries, +do not modify incoming function boundaries, just create instructions +inside the boundaries. """ ida_funcs.FIND_FUNC_NORMAL @@ -13615,10 +13599,8 @@ ok, 'nfn' is ready for 'add_func()' ida_funcs.FIND_FUNC_UNDEF """ -nfn->end_ea will have the address of the unexplored byte. - function has instructions that pass execution flow to unexplored -bytes. +bytes. nfn->end_ea will have the address of the unexplored byte. """ ida_funcs.FUNC_BOTTOMBP @@ -13638,9 +13620,8 @@ Function uses frame pointer (BP) ida_funcs.FUNC_FUZZY_SP """ -for example: and esp, 0FFFFFFF0h - -Function changes SP in untraceable way, +Function changes SP in untraceable way, for example: and esp, +0FFFFFFF0h """ ida_funcs.FUNC_HIDDEN @@ -13665,16 +13646,13 @@ Function doesn't return. ida_funcs.FUNC_NORET_PENDING """ -This flag is verified upon 'func_does_return()' - -Function 'non-return' analysis must be performed. +Function 'non-return' analysis must be performed. This flag is +verified upon 'func_does_return()' """ ida_funcs.FUNC_PROLOG_OK """ -by last SP-analysis - -Prolog analysis has be performed +Prolog analysis has be performed by last SP-analysis """ ida_funcs.FUNC_PURGED_OK @@ -13709,9 +13687,7 @@ Thunk (jump) function. ida_funcs.FUNC_USERFAR """ -of the function - -User has specified far-ness +User has specified far-ness of the function """ ida_funcs.IDASGN_APPLIED @@ -40361,9 +40337,7 @@ update minbstkref and minbargref ida_hexrays.CPBLK_OPTJMP """ -if it becomes useless - -del the jump insn at the end of the block +del the jump insn at the end of the block if it becomes useless """ ida_hexrays.CV_FAST @@ -40527,9 +40501,8 @@ and at least one of them was a call to a real functions ida_hexrays.FCI_HASFMT """ -printf- or scanf-style format string - -A variadic function with recognized +A variadic function with recognized printf- or scanf-style format +string """ ida_hexrays.FCI_NORET @@ -40571,9 +40544,8 @@ look for definition ida_hexrays.FD_DIRTY """ -by function calls and indirect memory access - -ignore possible implicit definitions +ignore possible implicit definitions by function calls and indirect +memory access """ ida_hexrays.FD_FORWARD @@ -40659,9 +40631,8 @@ optimizer. assertions are ignored when generating ctree ida_hexrays.IPROP_CLNPOP """ -(e.g. "pop ecx" is often used for that) - -the purpose of the instruction is to clean stack +the purpose of the instruction is to clean stack (e.g. "pop ecx" is +often used for that) """ ida_hexrays.IPROP_COMBINED @@ -40707,17 +40678,16 @@ inverted conditional jump ida_hexrays.IPROP_MBARRIER """ -(instructions accessing memory may not be reordered past it) - -this instruction acts as a memory barrier +this instruction acts as a memory barrier (instructions accessing +memory may not be reordered past it) """ ida_hexrays.IPROP_MULTI_MOV """ -(example: STM on ARM may transfer multiple registers) +bits that can be set by plugins: -the minsn was generated as part of insn that moves multiple -registersbits that can be set by plugins: +the minsn was generated as part of insn that moves multiple registers +(example: STM on ARM may transfer multiple registers) """ ida_hexrays.IPROP_OPTIONAL @@ -40772,9 +40742,8 @@ match multiple insns ida_hexrays.LOCOPT_ALL """ -is not set, only dirty blocks will be optimized - -redo optimization for all blocks. if this bit +redo optimization for all blocks. if this bit is not set, only dirty +blocks will be optimized """ ida_hexrays.LOCOPT_REFINE @@ -41028,9 +40997,8 @@ dead end block: doesn't return execution control ida_hexrays.MBL_PRIV """ -the specified are accepted (used in patterns) - -private block - no instructions except +private block - no instructions except the specified are accepted +(used in patterns) """ ida_hexrays.MBL_PROP @@ -41131,16 +41099,14 @@ reuse existing window ida_hexrays.OPF_REUSE_ACTIVE """ -currently active widget is a pseudocode view - -reuse existing window, only if the +reuse existing window, only if the currently active widget is a +pseudocode view """ ida_hexrays.OPROP_CCFLAGS """ -else: value of a condition code register (like mr_cc) - -mop_n: a pc-relative value +mop_n: a pc-relative value else: value of a condition code register +(like mr_cc) """ ida_hexrays.OPROP_FLOAT @@ -41277,16 +41243,14 @@ the last instruction (if M is NULL) ida_hexrays.VR_AT_START """ -at the block start (if M is NULL) - -get value ranges before the instruction or +get value ranges before the instruction or at the block start (if M is +NULL) """ ida_hexrays.VR_EXACT """ -valrng size will be >= vivl.size - -find exact match. if not set, the returned +find exact match. if not set, the returned valrng size will be >= +vivl.size """ === ida_hexrays EPYDOC INJECTIONS END === Help on function __make_idainfo_accessors in module ida_ida: @@ -43681,11 +43645,9 @@ ida_ida.ABI_8ALIGN4 ida_ida.ABI_BIGARG_ALIGN """ -(e.g. __int64 argument should be 8byte aligned on some 32bit -platforms) - use natural type alignment for argument if the alignment exceeds -native word size +native word size (e.g. __int64 argument should be 8byte aligned on +some 32bit platforms) """ ida_ida.ABI_GCC_LAYOUT @@ -43962,9 +43924,7 @@ leave database components unpacked ida_ida.INFFL_ALLASM """ -the target assembler - -may use constructs not supported by +may use constructs not supported by the target assembler """ ida_ida.INFFL_AUTO @@ -44060,9 +44020,8 @@ memory snapshot was taken? ida_ida.LFLG_WIDE_HBF """ -(wide bytes: \\ph{dnbits} > 8) - -Bit order of wide bytes: high byte first? +Bit order of wide bytes: high byte first? (wide bytes: \\ph{dnbits} > +8) """ ida_ida.LMT_EMPTY @@ -47477,10 +47436,8 @@ instruction pointer ida_idd.REGISTER_NOLF """ -allowing the next register to be displayed to its right (on the same -line) - -displays this register without returning to the next line +displays this register without returning to the next line allowing the +next register to be displayed to its right (on the same line) """ ida_idd.REGISTER_READONLY @@ -47510,9 +47467,7 @@ integer ida_idd.RVT_UNAVAILABLE """ -other values mean custom data type - -unavailable +unavailable other values mean custom data type """ === ida_idd EPYDOC INJECTIONS END === Help on function AssembleLine in module ida_idp: @@ -52954,9 +52909,7 @@ Use braces for all expressions. ida_idp.AS2_BYTE1CHAR """ -Meaningful only for wide byte processors. - -One symbol per processor byte +One symbol per processor byte Meaningful only for wide byte processors """ ida_idp.AS2_COLONSUF @@ -52973,16 +52926,13 @@ name) the same as in borland tasm ideal ida_idp.AS2_STRINV """ -(For processors with bytes bigger than 8 bits) - -Invert meaning of \\inf{wide_high_byte_first} for text strings +Invert meaning of \\inf{wide_high_byte_first} for text strings (For +processors with bytes bigger than 8 bits) """ ida_idp.AS2_TERSESTR """ -NAME is supported. - -'terse' structure initialization form +'terse' structure initialization form NAME is supported """ ida_idp.AS2_YWORD @@ -53117,16 +53067,13 @@ double char constants are: "xy ida_idp.AS_ALIGN2 """ -(.align 5 means to align at 32byte boundary) - -.align directive expects an exponent rather than a power of 2 +.align directive expects an exponent rather than a power of 2 (.align +5 means to align at 32byte boundary) """ ida_idp.AS_ASCIIC """ -(\\n,\\x01 and similar) - -ascii directive accepts C-like escape sequences +ascii directive accepts C-like escape sequences (\\n,\\x01 and similar) """ ida_idp.AS_ASCIIZ @@ -53276,16 +53223,13 @@ The instruction modifies the 8th operand. ida_idp.CF_HLL """ -language function. - -Instruction may be present in a high level +Instruction may be present in a high level language function. """ ida_idp.CF_JUMP """ -jump or call (thus needs additional analysis) - -The instruction passes execution using indirect +The instruction passes execution using indirect jump or call (thus +needs additional analysis) """ ida_idp.CF_SHFT @@ -53295,9 +53239,7 @@ Bit-shift instruction (shl,shr...) ida_idp.CF_STOP """ -next instruction - -Instruction doesn't pass execution to the +Instruction doesn't pass execution to the next instruction """ ida_idp.CF_USE1 @@ -53752,9 +53694,7 @@ ida_idp.PLFM_Z80 ida_idp.PR2_CODE16_BIT """ -e.g. ARM Thumb, MIPS16 - -low bit of code addresses has special meaning +low bit of code addresses has special meaning e.g. ARM Thumb, MIPS16 """ ida_idp.PR2_IDP_OPTS @@ -53871,16 +53811,13 @@ has delayed jumps and calls if this flag is set, ida_idp.PR_NOCHANGE """ -(display only) - -The user can't change segments and code/data attributes +The user can't change segments and code/data attributes (display only) """ ida_idp.PR_NO_SEGMOVE """ -(i.e. the user can't move segments) - -the processor module doesn't support 'move_segm()' +the processor module doesn't support 'move_segm()' (i.e. the user +can't move segments) """ ida_idp.PR_OUTER @@ -53926,9 +53863,8 @@ the stack grows up ida_idp.PR_TYPEINFO """ -ALL OF THEM SHOULD BE IMPLEMENTED! - -the processor module supports type information callbacks +the processor module supports type information callbacks ALL OF THEM +SHOULD BE IMPLEMENTED! """ ida_idp.PR_USE32 @@ -62144,23 +62080,20 @@ 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 +Register the action globally, so that it's available even if no IDB is +present """ ida_kernwin.ADF_NO_HIGHLIGHT """ -according to what's under the cursor (listings only.) - -After activating, do not update the highlight +After activating, do not update the highlight according to what's +under the cursor (listings only.) """ ida_kernwin.ADF_NO_UNDO """ -useful for actions that do not modify the database. - -the action does not create an undo point. +the action does not create an undo point. useful for actions that do +not modify the database. """ ida_kernwin.ADF_OT_MASK @@ -62902,9 +62835,8 @@ on_location_changed() handler wouldn't be called.) ida_kernwin.CVNF_JUMP """ -'lochist_t' before going to the new location - -push the current position in this viewer's +push the current position in this viewer's 'lochist_t' before going to +the new location """ ida_kernwin.CVNF_LAZY @@ -62915,9 +62847,8 @@ possible. This might disregard the Y position in case of success ida_kernwin.DP_BEFORE """ -used with 'DP_INSIDE' . - -place src_form before dst_form in the tab bar instead of after +place src_form before dst_form in the tab bar instead of after used +with 'DP_INSIDE' . """ ida_kernwin.DP_BOTTOM @@ -63434,9 +63365,7 @@ jump in any ea_t-capable view ida_kernwin.UIJMP_DONTPUSH """ -in the navigation history - -do not remember the current address +do not remember the current address in the navigation history """ ida_kernwin.UIJMP_IDAVIEW @@ -63915,16 +63844,12 @@ Lumina function. ida_lines.COLOR_OFF """ -Followed by a color code ( 'color_t' ). - -Escape character (OFF). +Escape character (OFF). Followed by a color code ( 'color_t' ). """ ida_lines.COLOR_ON """ -Followed by a color code ( 'color_t' ). - -Escape character (ON). +Escape character (ON). Followed by a color code ( 'color_t' ). """ ida_lines.COLOR_REGFUNC @@ -64932,9 +64857,7 @@ temporary database ida_loader.FILEREG_NOTPATCHABLE """ -form in the file. - -the data is kept in some encoded +the data is kept in some encoded form in the file. """ ida_loader.FILEREG_PATCHABLE @@ -65002,9 +64925,7 @@ Maximum database snapshot description length. ida_loader.NEF_CODE """ -load as a code segment - -for 'load_binary_file()' : +for 'load_binary_file()' : load as a code segment """ ida_loader.NEF_FILL @@ -65014,9 +64935,7 @@ Fill segment gaps. ida_loader.NEF_FIRST """ -into the database. - -This is the first file loaded +This is the first file loaded into the database. """ ida_loader.NEF_FLAT @@ -65057,7 +64976,7 @@ Rename entries. ida_loader.NEF_RELOAD """ -reload the file at the same place: - don't create segmentsdon't create +reload the file at the same place:don't create segmentsdon't create fixup infodon't import segmentsetc load only the bytes into the base. a loader should have 'LDRF_RELOAD' bit set """ @@ -68044,9 +67963,7 @@ has user defined instruction color? ida_nalt.AFL_FIXEDSPD """ -should not be modified by modules - -sp delta value is fixed by analysis. +sp delta value is fixed by analysis. should not be modified by modules """ ida_nalt.AFL_HIDDEN @@ -68179,9 +68096,7 @@ who guessed the type information? ida_nalt.AFL_USEMODSP """ -example: pop [rsp+N] - -insn modifes SP and uses the modified value +insn modifes SP and uses the modified value example: pop [rsp+N] """ ida_nalt.AFL_USERSP @@ -68269,9 +68184,8 @@ additional flags for an item ida_nalt.NALT_ALIGN """ -(should by equal to power of 2) - -alignment value if the item is 'FF_ALIGN' +alignment value if the item is 'FF_ALIGN' (should by equal to power of +2) """ ida_nalt.NALT_COLOR @@ -68639,9 +68553,8 @@ usual) being added to it ida_nalt.REFINFO_TYPE """ -reference ID if REFINFO_CUSTOM set - -reference type (reftype_t), or custom +reference type (reftype_t), or custom reference ID if REFINFO_CUSTOM +set """ ida_nalt.RIDX_ABINAME @@ -68832,9 +68745,8 @@ find_defjump_from_table() helper function. ida_nalt.SWI_ELBASE """ -segment will be used) - -elbase is present (otherwise the base of the switch +elbase is present (otherwise the base of the switch segment will be +used) """ ida_nalt.SWI_HXNOLOWCASE @@ -68844,9 +68756,8 @@ lowcase value should not be used by the decompiler (internal flag) ida_nalt.SWI_INDIRECT """ -(for sparse switches) - -value table elements are used as indexes into the jump table +value table elements are used as indexes into the jump table (for +sparse switches) """ ida_nalt.SWI_J32 @@ -68864,9 +68775,7 @@ insn like a 'mov' and jump to the end of case, and so on. ida_nalt.SWI_JMP_INV """ -for first entry in values table) - -jumptable is inversed. (last entry is +jumptable is inversed. (last entry is for first entry in values table) """ ida_nalt.SWI_JSIZE @@ -68896,9 +68805,7 @@ jump table entries are signed ida_nalt.SWI_SPARSE """ -otherwise lowcase present - -sparse switch (value table present) +sparse switch (value table present) otherwise lowcase present """ ida_nalt.SWI_STDTBL @@ -69705,9 +69612,8 @@ Name prefix used by IDA for the imported functions. ida_name.GETN_APPZERO """ -append a struct field name if the field offset is zero? - -meaningful only if the name refers to a structure. +meaningful only if the name refers to a structure. append a struct +field name if the field offset is zero? """ ida_name.GETN_NODUMMY @@ -69883,9 +69789,8 @@ if set, make name autogenerated ida_name.SN_DELTAIL """ -delete the hindering item - -if name cannot be set because of a tail byte, +if name cannot be set because of a tail byte, delete the hindering +item """ ida_name.SN_FORCE @@ -75323,9 +75228,8 @@ failure. it cannot hold more than ~1000 gaps. ida_segment.ADDSEG_IDBENC """ -non-ASCII bytes will be decoded accordingly - -'name' and 'sclass' are given in the IDB encoding; +'name' and 'sclass' are given in the IDB encoding; non-ASCII bytes +will be decoded accordingly """ ida_segment.ADDSEG_NOAA @@ -75335,17 +75239,14 @@ do not mark new segment for auto-analysis ida_segment.ADDSEG_NOSREG """ -(undefine all default segment registers) - -set all default segment register values to 'BADSEL' +set all default segment register values to 'BADSEL' (undefine all +default segment registers) """ ida_segment.ADDSEG_NOTRUNC """ -destroy/truncate old segments instead. - don't truncate the new segment at the beginning of the next segment if -they overlap. +they overlap. destroy/truncate old segments instead. """ ida_segment.ADDSEG_OR_DIE @@ -75377,9 +75278,7 @@ debugger is not running ida_segment.CSS_NOMEM """ -is too big) - -not enough memory (might be because the segment +not enough memory (might be because the segment is too big) """ ida_segment.CSS_NORANGE @@ -75449,9 +75348,8 @@ Not enough free room at the target address. ida_segment.MSF_FIXONCE """ -valid for 'rebase_program()' . see 'loader_t::move_segm' . - -call loader only once with the special calling method. +call loader only once with the special calling method. valid for +'rebase_program()' . see 'loader_t::move_segm' . """ ida_segment.MSF_LDKEEP @@ -75461,9 +75359,8 @@ keep the loader in the memory (optimization) ida_segment.MSF_NETNODES """ -valid for 'rebase_program()' - -move netnodes instead of changing inf.netdelta (this is slower) +move netnodes instead of changing inf.netdelta (this is slower) valid +for 'rebase_program()' """ ida_segment.MSF_NOFIX @@ -75473,10 +75370,8 @@ don't call the loader to fix relocations ida_segment.MSF_PRIORITY """ -valid for 'move_segm()' - loader segments will overwrite any existing debugger segments when -moved. +moved. valid for 'move_segm()' """ ida_segment.MSF_SILENT @@ -75506,9 +75401,8 @@ disable addresses if segment gets shrinked or deleted ida_segment.SEGMOD_NOMOVE """ -(for 'set_segm_start()' ) - don't move info from the start of segment to the new start address +(for 'set_segm_start()' ) """ ida_segment.SEGMOD_SILENT @@ -75518,9 +75412,8 @@ be silent ida_segment.SEGMOD_SPARSE """ -(for 'set_segm_start()' , 'set_segm_end()' ) - -use sparse storage if extending the segment +use sparse storage if extending the segment (for 'set_segm_start()' , +'set_segm_end()' ) """ ida_segment.SEGPERM_EXEC @@ -75595,9 +75488,7 @@ undefined segment type (not used) ida_segment.SEG_XTRN """ -no instructions are allowed - -segment with 'extern' definitions. +segment with 'extern' definitions. no instructions are allowed """ ida_segment.SFL_COMORG @@ -75674,9 +75565,8 @@ ida_segment.saRel32Bytes ida_segment.saRel4K """ -alignment. It is not supported by LINK. - -This value is used by the PharLap OMF for page (4K) +This value is used by the PharLap OMF for page (4K) alignment. It is +not supported by LINK. """ ida_segment.saRel512Bytes @@ -75696,9 +75586,7 @@ Relocatable, byte aligned. ida_segment.saRelDble """ -boundary. - -Relocatable, aligned on a double word (4-byte) +Relocatable, aligned on a double word (4-byte) boundary. """ ida_segment.saRelPage @@ -75733,16 +75621,13 @@ Segment group. ida_segment.scPriv """ -segment. - -Private. Do not combine with any other program +Private. Do not combine with any other program segment. """ ida_segment.scPub """ -the alignment requirement. - -Public. Combine by appending at an offset that meets +Public. Combine by appending at an offset that meets the alignment +requirement. """ ida_segment.scPub2 @@ -75757,9 +75642,7 @@ As defined by Microsoft, same as C=2 (public). ida_segment.scStack """ -byte alignment. - -Stack. Combine as for C=2. This combine type forces +Stack. Combine as for C=2. This combine type forces byte alignment. """ === ida_segment EPYDOC INJECTIONS END === Help on function copy_sreg_ranges in module ida_segregs: @@ -77085,9 +76968,7 @@ the structure comes from type library ida_struct.SF_UNION """ -varunions are prohibited! - -is a union? +is a union? varunions are prohibited! """ ida_struct.SF_VAR @@ -85307,9 +85188,8 @@ all defined bits ida_typeinf.FTI_ARGLOCS """ -(stkargs and retloc too) - -info about argument locations has been calculated +info about argument locations has been calculated (stkargs and retloc +too) """ ida_typeinf.FTI_CALLTYPE @@ -85404,16 +85284,12 @@ debug: print external representation of types ida_typeinf.HTI_FIL """ -otherwise "input" contains a C declaration - -"input" is file name, +"input" is file name, otherwise "input" contains a C declaration """ ida_typeinf.HTI_HIGH """ -(with hidden args, etc) - -assume high level prototypes +assume high level prototypes (with hidden args, etc) """ ida_typeinf.HTI_INT @@ -85537,16 +85413,14 @@ value is 64bit ida_typeinf.NTF_CHKSYNC """ -(set_numbered_type, set_named_type) - -check that synchronization to IDB passed OK +check that synchronization to IDB passed OK (set_numbered_type, +set_named_type) """ ida_typeinf.NTF_FIXNAME """ -(set_named_type, set_numbered_type only) - -force-validate the name of the type when setting +force-validate the name of the type when setting (set_named_type, +set_numbered_type only) """ ida_typeinf.NTF_IDBENC @@ -85572,9 +85446,8 @@ replace original type (for set_named_type) ida_typeinf.NTF_SYMM """ -only one of 'NTF_TYPE' and 'NTF_SYMU' , 'NTF_SYMM' can be used - -symbol, name is mangled ('_func') +symbol, name is mangled ('_func') only one of 'NTF_TYPE' and +'NTF_SYMU' , 'NTF_SYMM' can be used """ ida_typeinf.NTF_SYMU @@ -85744,9 +85617,7 @@ print type declaration (not variable declaration) ida_typeinf.PT_HIGH """ -(with hidden args, etc) - -assume high level prototypes +assume high level prototypes (with hidden args, etc) """ ida_typeinf.PT_LOWER @@ -85823,7 +85694,7 @@ too. ida_typeinf.STRMEM_AUTO """ -get member by offset if struct, or get member by index if union - nb: +get member by offset if struct, or get member by index if unionnb: union: index is stored in the udm->offset field!nb: struct: offset is in bytes (not in bits)! """ @@ -85836,7 +85707,7 @@ the specified type ida_typeinf.STRMEM_INDEX """ -get member by number- in: udm->offset - is a member number +get member by numberin: udm->offset - is a member number """ ida_typeinf.STRMEM_MAXS @@ -85851,17 +85722,17 @@ get smallest member by size. ida_typeinf.STRMEM_NAME """ -get member by name- in: udm->name - the desired member name. +get member by namein: udm->name - the desired member name. """ ida_typeinf.STRMEM_OFFSET """ -get member by offset- in: udm->offset - is a member offset in bits +get member by offsetin: udm->offset - is a member offset in bits """ ida_typeinf.STRMEM_SIZE """ -get member by size.- in: udm->size - the desired member size. +get member by size.in: udm->size - the desired member size. """ ida_typeinf.STRMEM_SKIP_EMPTY @@ -85872,7 +85743,7 @@ members (i.e. having zero size) only last empty member can be returned ida_typeinf.STRMEM_TYPE """ -get member by type. - in: udm->type - the desired member type. member +get member by type.in: udm->type - the desired member type. member types are compared with tinfo_t::equals_to() """ @@ -85884,9 +85755,8 @@ instead of the base class ida_typeinf.SUDT_ALIGN """ -to match the offsets and size info - -recalculate field alignments, struct packing, etc +recalculate field alignments, struct packing, etc to match the offsets +and size info """ ida_typeinf.SUDT_CONST @@ -87694,9 +87564,8 @@ those are not defined and the INFFL_ALLASM is not set, ida_ua.FCBF_ERR_REPL """ -of a hex representation of the problematic byte - -in case of an error, use a CP_REPLCHAR instead +in case of an error, use a CP_REPLCHAR instead of a hex representation +of the problematic byte """ ida_ua.FCBF_FF_LIT @@ -87825,9 +87694,8 @@ sign symbol (+/-) output ida_ua.OOF_SPACES """ -currently works only for floating point numbers - -do not suppress leading spaces +do not suppress leading spaces currently works only for floating point +numbers """ ida_ua.OOF_WIDTHMASK @@ -87844,9 +87712,7 @@ ignored. ida_ua.PACK_FORM_DEF """ -(! 'o_reg' + 'dt_packreal' ) - -packed factor defined. +packed factor defined. (! 'o_reg' + 'dt_packreal' ) """ ida_ua.dt_bitfild diff --git a/tools/inject_plfm.py b/tools/inject_plfm.py deleted file mode 100644 index d74cfb9..0000000 --- a/tools/inject_plfm.py +++ /dev/null @@ -1,42 +0,0 @@ -from __future__ import print_function - -import re -import string - -try: - from argparse import ArgumentParser -except: - print("Failed to import module 'argparse'. Upgrade to Python 2.7, copy argparse.py to this directory or try 'apt-get install python-argparse'") - raise - -parser = ArgumentParser() -parser.add_argument("-i", "--input", required=True) -parser.add_argument("-o", "--output", required=True) -parser.add_argument("-d", "--decls", required=True) -args = parser.parse_args() - -with open(args.input) as fin: - template = string.Template(fin.read()) - -with open(args.decls) as fin: - raw = fin.read() -pat = re.compile(r"^#\s*define\s+(PLFM_[A-Za-z0-9_]*)\s+([0-9x]*)\s*(.*)$") -decls = [] -for line in raw.split("\n"): - m = pat.match(line) - if m: - proc = m.group(1) - value = m.group(2) - cmt = None - rest = m.group(3) - rest_cmt = rest.find("///<") - if rest_cmt > -1: - cmt = rest[rest_cmt+4:].strip() - decls.append("{:20s} = {:8s} # {:s}".format(proc, value, cmt or "?")) -kvps = { - "PLFM_DECLS" : "\n".join(decls) -} - -with open(args.output, "w") as fout: - fout.write(template.substitute(kvps)) -