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
area.hpp
area_t
got a new member functionclear()
- 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
- Added external symbol
bytes.hpp
- Added new function
next_unknown()
- Added new function
bytes.hpp
- Added new functions
next_unknown()
andprev_unknown()
- Name of second parameter to
prevthat()
changed name tominea
- Added new functions
bytes.hpp
- Added new functions
next_unknown()
andprev_unknown()
- Name of second parameter to
prevthat()
changed name tominea
- 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
- Added new functions
dbg.hpp
- New function
get_current_thread()
to retrieve the thread ID
- New function
demangle.hpp
- New preprocessor symbol
MNG_CALC_VALID
- New function
is_mangled_string_name()
- Several updated comments
- New preprocessor symbol
diskio.hpp
- New function
qlgetz()
- New function
diskio.hpp
- New function
set_entry_name()
- New function
err.hpp
- Simple declaration changes (not relevant for a rebuild)
expr.hpp
- Updated comment to
VT_WILD
- Updated comment to
fixup.hpp
- Simple declaration changes (not relevant for a rebuild)
frame.hpp
- New function
set_purged()
- New function
add_stkvar3()
supersedes the deprecatedadd_stkvar
- New function
add_auto_stkpnt2()
supersedes the deprecatedadd_auto_stkpnt
- Several updated comments
#ifdef
(NO_OBSOLETE_FUNCS
) for deprecated functions
- New function
funcs.hpp
- New preprocessor symbols
FUNC_NORET_PENDING
,FUNC_SP_READY
,FUNC_PURGED_OK
forfunc_t
- New preprocessor symbols
MOVE_FUNC_REFUSED
for return value offunc_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()
insidefunc_tail_iterator_t
- New function
decode_preceding_insn()
- New functions
get_prev_func_addr()
andget_next_func_addr()
- New stack tracer related functions
recalc_func_noret_flag()
,plan_for_noret_analysis()
andinvalidate_sp_analysis()
(inline) - Several updated comments
- New preprocessor symbols
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
- Helping the compiler with some parameter declarations which are now
ida.hpp
- New file type
f_MACHO
for Mac OS X added - New member function
is_32bit()
foridainfo
idainfo
knows three new analysis flags:AF2_ANORET
,AF2_VERSP
,AF2_DOCODE
- Several minor changes.
- New file type
idd.hpp
- New preprocessor symbold for the debugger ID in
debugger_t
:DEBUGGER_ID_X86_IA32_MACOSX_USER
- New preprocessor symbold for the debugger ID in
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
// Oliver