From 67bb44455216ff520da3461f3c4075e3cef97312 Mon Sep 17 00:00:00 2001 From: Arnaud Diederen Date: Mon, 24 Feb 2020 09:45:46 +0100 Subject: [PATCH] Backported fixes --- out_of_tree/parsed_notifications.zip | Bin 4188693 -> 4188693 bytes python/idc.py | 100 +++++++++++++++++++++------ 2 files changed, 79 insertions(+), 21 deletions(-) diff --git a/out_of_tree/parsed_notifications.zip b/out_of_tree/parsed_notifications.zip index f2e15fa07ed8c443745ecaa6daa6dbe32868863d..1ba40efb70e9cf4633524f99dfdf0da3784939fe 100644 GIT binary patch delta 10213 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 aFk;16RYl;VT}I)3KYQv^;r#}w!T%2!d2`qR delta 10680 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 diff --git a/python/idc.py b/python/idc.py index 9dc0989..74ebba1 100644 --- a/python/idc.py +++ b/python/idc.py @@ -2090,33 +2090,91 @@ ABI_GCC_LAYOUT = 0x00000080 # use gcc layout for udts (used for mingw) ABI_MAP_STKARGS = 0x00000100 # register arguments are mapped to stack area (and consume stack slots) INF_APPCALL_OPTIONS= 68 # uint32; appcall options -_signed_inf_attrs = [ - INF_NETDELTA, - INF_NAMETYPE, - INF_BIN_PREFIX_SIZE, - INF_STRLIT_ZEROES, - INF_STRTYPE, -] +_INF_attrs_accessors = { + INF_ABIBITS : (ida_ida.inf_get_abibits, ida_ida.inf_set_abibits), + INF_AF : (ida_ida.inf_get_af, ida_ida.inf_set_af), + INF_AF2 : (ida_ida.inf_get_af2, ida_ida.inf_set_af2), + INF_APPCALL_OPTIONS : (ida_ida.inf_get_appcall_options, ida_ida.inf_set_appcall_options), + INF_APPTYPE : (ida_ida.inf_get_apptype, ida_ida.inf_set_apptype), + INF_ASMTYPE : (ida_ida.inf_get_asmtype, ida_ida.inf_set_asmtype), + INF_BASEADDR : (ida_ida.inf_get_baseaddr, ida_ida.inf_set_baseaddr), + INF_BIN_PREFIX_SIZE : (ida_ida.inf_get_bin_prefix_size, ida_ida.inf_set_bin_prefix_size), + INF_CC_CM : (ida_ida.inf_get_cc_cm, ida_ida.inf_set_cc_cm), + INF_CC_DEFALIGN : (ida_ida.inf_get_cc_defalign, ida_ida.inf_set_cc_defalign), + INF_CC_ID : (ida_ida.inf_get_cc_id, ida_ida.inf_set_cc_id), + INF_CC_SIZE_B : (ida_ida.inf_get_cc_size_b, ida_ida.inf_set_cc_size_b), + INF_CC_SIZE_E : (ida_ida.inf_get_cc_size_e, ida_ida.inf_set_cc_size_e), + INF_CC_SIZE_I : (ida_ida.inf_get_cc_size_i, ida_ida.inf_set_cc_size_i), + INF_CC_SIZE_L : (ida_ida.inf_get_cc_size_l, ida_ida.inf_set_cc_size_l), + INF_CC_SIZE_LDBL : (ida_ida.inf_get_cc_size_ldbl, ida_ida.inf_set_cc_size_ldbl), + INF_CC_SIZE_LL : (ida_ida.inf_get_cc_size_ll, ida_ida.inf_set_cc_size_ll), + INF_CC_SIZE_S : (ida_ida.inf_get_cc_size_s, ida_ida.inf_set_cc_size_s), + INF_CMTFLAG : (ida_ida.inf_get_cmtflg, ida_ida.inf_set_cmtflg), + INF_COMMENT : (ida_ida.inf_get_comment, ida_ida.inf_set_comment), + INF_DATABASE_CHANGE_COUNT : (ida_ida.inf_get_database_change_count, ida_ida.inf_set_database_change_count), + INF_DATATYPES : (ida_ida.inf_get_datatypes, ida_ida.inf_set_datatypes), + INF_DEMNAMES : (ida_ida.inf_get_demnames, ida_ida.inf_set_demnames), + INF_END_PRIVRANGE : (ida_ida.inf_get_privrange_end_ea, ida_ida.inf_set_privrange_end_ea), + INF_FILETYPE : (ida_ida.inf_get_filetype, ida_ida.inf_set_filetype), + INF_GENFLAGS : (ida_ida.inf_get_genflags, ida_ida.inf_set_genflags), + INF_HIGHOFF : (ida_ida.inf_get_highoff, ida_ida.inf_set_highoff), + INF_INDENT : (ida_ida.inf_get_indent, ida_ida.inf_set_indent), + INF_LENXREF : (ida_ida.inf_get_lenxref, ida_ida.inf_set_lenxref), + INF_LFLAGS : (ida_ida.inf_get_lflags, ida_ida.inf_set_lflags), + INF_LIMITER : (ida_ida.inf_get_limiter, ida_ida.inf_set_limiter), + INF_LISTNAMES : (ida_ida.inf_get_listnames, ida_ida.inf_set_listnames), + INF_LONG_DEMNAMES : (ida_ida.inf_get_long_demnames, ida_ida.inf_set_long_demnames), + INF_LOWOFF : (ida_ida.inf_get_lowoff, ida_ida.inf_set_lowoff), + INF_MAIN : (ida_ida.inf_get_main, ida_ida.inf_set_main), + INF_MARGIN : (ida_ida.inf_get_margin, ida_ida.inf_set_margin), + INF_MAXREF : (ida_ida.inf_get_maxref, ida_ida.inf_set_maxref), + INF_MAX_AUTONAME_LEN : (ida_ida.inf_get_max_autoname_len, ida_ida.inf_set_max_autoname_len), + INF_MAX_EA : (ida_ida.inf_get_max_ea, ida_ida.inf_set_max_ea), + INF_MIN_EA : (ida_ida.inf_get_min_ea, ida_ida.inf_set_min_ea), + INF_MODEL : (ida_ida.inf_get_cc_cm, ida_ida.inf_set_cc_cm), + INF_NAMETYPE : (ida_ida.inf_get_nametype, ida_ida.inf_set_nametype), + INF_NETDELTA : (ida_ida.inf_get_netdelta, ida_ida.inf_set_netdelta), + INF_OMAX_EA : (ida_ida.inf_get_omax_ea, ida_ida.inf_set_omax_ea), + INF_OMIN_EA : (ida_ida.inf_get_omin_ea, ida_ida.inf_set_omin_ea), + INF_OSTYPE : (ida_ida.inf_get_ostype, ida_ida.inf_set_ostype), + INF_OUTFLAGS : (ida_ida.inf_get_outflags, ida_ida.inf_set_outflags), + INF_PREFFLAG : (ida_ida.inf_get_prefflag, ida_ida.inf_set_prefflag), + INF_PRIVRANGE_END_EA : (ida_ida.inf_get_privrange_end_ea, ida_ida.inf_set_privrange_end_ea), + INF_PRIVRANGE_START_EA : (ida_ida.inf_get_privrange_start_ea, ida_ida.inf_set_privrange_start_ea), + INF_PROCNAME : (ida_ida.inf_get_procname, ida_ida.inf_set_procname), + INF_REFCMTNUM : (ida_ida.inf_get_refcmtnum, ida_ida.inf_set_refcmtnum), + INF_SHORT_DEMNAMES : (ida_ida.inf_get_short_demnames, ida_ida.inf_set_short_demnames), + INF_SPECSEGS : (ida_ida.inf_get_specsegs, ida_ida.inf_set_specsegs), + INF_START_CS : (ida_ida.inf_get_start_cs, ida_ida.inf_set_start_cs), + INF_START_EA : (ida_ida.inf_get_start_ea, ida_ida.inf_set_start_ea), + INF_START_IP : (ida_ida.inf_get_start_ip, ida_ida.inf_set_start_ip), + INF_START_PRIVRANGE : (ida_ida.inf_get_privrange_start_ea, ida_ida.inf_set_privrange_start_ea), + INF_START_SP : (ida_ida.inf_get_start_sp, ida_ida.inf_set_start_sp), + INF_START_SS : (ida_ida.inf_get_start_ss, ida_ida.inf_set_start_ss), + INF_STRLIT_BREAK : (ida_ida.inf_get_strlit_break, ida_ida.inf_set_strlit_break), + INF_STRLIT_FLAGS : (ida_ida.inf_get_strlit_flags, ida_ida.inf_set_strlit_flags), + INF_STRLIT_PREF : (ida_ida.inf_get_strlit_pref, ida_ida.inf_set_strlit_pref), + INF_STRLIT_SERNUM : (ida_ida.inf_get_strlit_sernum, ida_ida.inf_set_strlit_sernum), + INF_STRLIT_ZEROES : (ida_ida.inf_get_strlit_zeroes, ida_ida.inf_set_strlit_zeroes), + INF_STRTYPE : (ida_ida.inf_get_strtype, ida_ida.inf_set_strtype), + INF_TYPE_XREFNUM : (ida_ida.inf_get_type_xrefnum, ida_ida.inf_set_type_xrefnum), + INF_VERSION : (ida_ida.inf_get_version, ida_ida.inf_set_version), + INF_XREFFLAG : (ida_ida.inf_get_xrefflag, ida_ida.inf_set_xrefflag), + INF_XREFNUM : (ida_ida.inf_get_xrefnum, ida_ida.inf_set_xrefnum), +} def get_inf_attr(attr): """ + Deprecated. Please ida_ida.inf_get_* instead. """ - if attr == INF_PROCNAME: - return eval_idc("get_processor_name()") - v = eval_idc("get_inf_attr(%d)" % attr) - if v < 0 and not attr in _signed_inf_attrs: - if abs(v) < (1 << 32): - v = (1 << 32) + v - else: - v = (1 << 64) + v - return v + return _INF_attrs_accessors[attr][0]() def set_inf_attr(attr, value): - if attr == INF_PROCNAME: - raise NotImplementedError("Please use ida_idp.set_processor_type() to change processor") - # We really want to go through IDC's equivalent, because it might - # have side-effects (i.e., send a notification, etc...) - return eval_idc("set_inf_attr(%d, %d)" % (attr, value)) + """ + Deprecated. Please ida_ida.inf_set_* instead. + """ + _INF_attrs_accessors[attr][1](value) + return 1 set_processor_type = ida_idp.set_processor_type