Updates in the IDA SDK 5.1 …

Since it is always exciting to find new features, I thought it would be good to put up a list of the changes introduced into the IDA SDK since version 5.0! This should allow all plugin writers to get a quick overview of new functionality.

Relevant changes in the IDA SDK between version 5.0 and 5.1 beta 2 follow, sorted by filename …

  • allins.hpp
    • Added SSE3 instructions
    • Added SSSE3 instructions
    • Added VMX instructions
    • Spelling mistakes in comments :mrgreen:
  • area.hpp
    • area_t got a new member function clear()
    • New type lastreq_t
    • Several member function arguments now with const parameters
    • areacb_t slightly changed
    • Some comments added to previously uncommented functions
  • auto.hpp
    • Added external symbol ea_without_xrefs
  • bytes.hpp
    • Added new function next_unknown()
  • bytes.hpp
    • Added new functions next_unknown() and prev_unknown()
    • Name of second parameter to prevthat() changed name to minea
  • bytes.hpp
    • Added new functions next_unknown() and prev_unknown()
    • Name of second parameter to prevthat() changed name to minea
    • New function add_qword()
    • New function get_flags_by_size()
    • New (inline) function get_data_type_size_by_flags()
    • New function for debugger set_op_type_no_event()
    • Second parameter of do_unknown() changed its meaning. Instead of a bool now a bitmask (but backwards compatible!)
    • Same for the respective parameter in do_unknown_range()
    • Several updated comments
    • #ifdef (NO_OBSOLETE_FUNCS) for deprecated functions
  • dbg.hpp
    • New function get_current_thread() to retrieve the thread ID
  • demangle.hpp
    • New preprocessor symbol MNG_CALC_VALID
    • New function is_mangled_string_name()
    • Several updated comments
  • diskio.hpp
    • New function qlgetz()
  • diskio.hpp
    • New function set_entry_name()
  • err.hpp
    • Simple declaration changes (not relevant for a rebuild)
  • expr.hpp
    • Updated comment to VT_WILD
  • fixup.hpp
    • Simple declaration changes (not relevant for a rebuild)
  • frame.hpp
    • New function set_purged()
    • New function add_stkvar3() supersedes the deprecated add_stkvar
    • New function add_auto_stkpnt2() supersedes the deprecated add_auto_stkpnt
    • Several updated comments
    • #ifdef (NO_OBSOLETE_FUNCS) for deprecated functions
  • funcs.hpp
    • New preprocessor symbols FUNC_NORET_PENDING, FUNC_SP_READY, FUNC_PURGED_OK for func_t
    • New preprocessor symbols MOVE_FUNC_REFUSED for return value of func_setstart()
    • New function set_noret_insn()
    • New function func_tail_iterator_set_ea()
    • New function func_item_iterator_decode_preceding_insn()
    • New member function set_ea() inside func_tail_iterator_t
    • New function decode_preceding_insn()
    • New functions get_prev_func_addr() and get_next_func_addr()
    • New stack tracer related functions recalc_func_noret_flag(), plan_for_noret_analysis() and invalidate_sp_analysis() (inline)
    • Several updated comments
  • gdl.hpp
    • Several huge changes, please have a look into the file yourself
  • graph.hpp
    • Several declaration and comment changes, please have a look into the file yourself. Apparently this API is now “frozen”, since the respective comment from version 5.0 was removed
  • help.hpp
    • Helping the compiler with some parameter declarations which are now const pointers
  • ida.hpp
    • New file type f_MACHO for Mac OS X added
    • New member function is_32bit() for idainfo
    • idainfo knows three new analysis flags: AF2_ANORET, AF2_VERSP, AF2_DOCODE
    • Several minor changes.
  • idd.hpp
    • New preprocessor symbold for the debugger ID in debugger_t: DEBUGGER_ID_X86_IA32_MACOSX_USER

Although I haven’t managed to go through all files I thought it would be better to publish it since IDA 5.1 was released. I’ll try to complete it if I (ever) find time :mrgreen:

// Oliver

This entry was posted in EN, Programming, Reversing, Software and tagged . Bookmark the permalink.

Leave a Reply

Your email address will not be published. Required fields are marked *