Please see http://code.google.com/p/idapython/source/list for a detailed list of changes. Changes from version 1.5.4 to 1.5.5 ------------------------------------ - IDA Pro 6.3 support - The Functions() generator function now accepts function tail start parameter - Added into idc.py: DbgRead/DbgWrite/SetTargetAssembler and stack pointer related functions - Wrapped more type info related functions Changes from version 1.5.3 to 1.5.4 ------------------------------------ - fix for Python autorun script vulnerability reported by Greg MacManus - remove current directory from sys.path during initialization - added PyWraps sources. This will facilitate deployment, development and debugging of IDAPython additions - bugfix: op_t.is_reg() was buggy - bugfix: build.py was putting duplicate files into the .zip - bugfix: added back wrapped version of get_ascii_contents() Changes from version 1.5.2 to 1.5.3 ------------------------------------ - IDA Pro 6.2 support - added set_idc_func_ex(): it is now possible to add new IDC functions using Python - added visit_patched_bytes() (see ex_patch.py) - added support for the multiline text input control in the Form class - added support for the editable/readonly dropdown list control in the Form class - added execute_sync() to register a function call into the UI message queue - added execute_ui_requests() / check ex_uirequests.py - added add_hotkey() / del_hotkey() to bind Python methods to hotkeys - added register_timer()/unregister_timer(). Check ex_timer.py - added the IDC (Arrays) netnode manipulation layer into idc.py - added idautils.Structs() and StructMembers() generator functions - removed the "Run Python Statement" menu item. IDA now has a unified dialog. Use RunPlugin("python", 0) to invoke it manually. - better error messages for script plugins, loaders and processor modules - bugfix: Dbg_Hooks.dbg_run_to() was receiving wrong input - bugfix: A few Enum related functions were not properly working in idc.py - bugfix: GetIdaDirectory() and GetProcessName() were broken in idc.py - bugfix: idaapi.get_item_head() / idc.ItemHead() were not working Changes from version 1.5.1 to 1.5.2 ------------------------------------ - added ui_term/ui_save/ui_saved/ui_get_ea_hint UI notifications - added ph_get_operand_info() to retrieve operand information while debugging - added PteDump.py script - bugfix: read/write_dbg_memory() and dbg_get_thread_sreg_base() were not working with all debugger modules - bugfix: idaapi.netnode.getblob() was limited to MAXSPECSIZE - bugfix: idc.GetString()/idaapi.get_ascii_contents()/idautils.Strings() were limited to MAXSTR string length - bugfix: idaapi.del_menu_item() was failing to delete some menu items - bugfix: dbg_bpt was called instead of dbg_trace for a DBG_Hooks class implementation (old bug from 0.9.x) - bugfix: Form.GetControlValue() was not working with numeric controls - bugfix: SetBptCnd() was broken - bugfix: idaapi.get_func_cmt() was memory leaking Changes from version 1.5.0 to 1.5.1 ------------------------------------ - Introduced the CLI '?' pseudo-command to retrieve doc strings - Introduced the CLI '!' pseudo-command to shell execute a command - bugfix: High 64 bit addresses were not parsed correctly in IDA64 - Added IDP/assemble notification event - bugfix: AskUsingForm() C function was not wrapped by SWIG - NextHead()/PrevHead() have optional 2nd parameter now Changes from version 1.4.3 to 1.5.0 ------------------------------------ - IDA Pro 6.1 support - Added AskUsingForm() with embedded forms support (check ex_askusingform.py example and formchooser.py in the SDK) - Added idautils.DecodePreviousInstruction() / DecodePrecedingInstruction() - Added idc.BeginTypeUpdating() / EndTypeUpdating() for fast batch type update operations - Added more IDP callbacks - Added UI_Hooks with a few notification events - Added idaapi.process_ui_action() / idc.ProcessUiAction() - Added netnode.index() to get netnode number - Better handling of ea_t values with bitwise negation - Execute statement hotkey (Ctrl-F3), script timeout, and other options are now configurable with Python.cfg - bugfix: idaapi.msg() / error() and warning() so they don't accept vararg - bugfix: processor_t.id constants were incorrect - bugfix: get_debug_names() was broken with IDA64 - Various bugfixes - Added Scripts folder containing various IDAPython scripts Changes from version 1.4.2 to 1.4.3 ------------------------------------ - IDA Pro 6.0 support - Python CLI now prints expression evaluation result (no need to use print()) - Changed Alt-8 to Ctrl-F3 (because it conflicts with window switching key Alt+n) - Added get_highlighted_identifier() - Added PluginForm class to allow UI development with either PyQt4 or PySide - Added idautils.Entries() to enum entrypoints Changes from version 1.4.1 to 1.4.2 ------------------------------------ - Added command completion - Added necessary changes so it compiles with Python 2.7 - Wrapped set_user_defined_prefix() Changes from version 1.4.0 to 1.4.1 ------------------------------------ - Added cli_t - Added idaapi.ph to access current process fields - Changed the copyright string to IDAPython Team - Some platform dependant classes are present but useable only where applicable Changes from version 1.3.0 to 1.4.0 ------------------------------------ - IDA Pro 5.7 support - idaapi.cvar.cmd is now accessible via idapi.cmd instead - Python statement (Alt-8) is now 16kb long - Dropped script box and File/Python file. IDA has this functionality now. - Refactored the code - It is possible to turn off script timeout - All scripts are executed via 'IDAPython_ExecScript' (check idaapi.i) - Added '--doc' switch to "build.py" script - Documented all manually wrapped functions (check 'pywraps' module in the docs) - Lots of cleanups and fixes Changes from version 1.2.0 to 1.3.0 ------------------------------------ - IDA Pro 5.6 support - Added Appcall mechanism - Added procregs to idautils.py (r254) - Lots of cleanups and fixes Changes from version 1.1.0 to 1.2.0 ------------------------------------ - 64-bit support (largely untested) - IDA Pro 5.5 support - Long running (or inifinitely looping) scripts can now be stopped - Host of IDC updates and fixes - netnode.hpp is now mostly wrapped - idautils use generators instead of lists - Functions() and GetFchunkAttr() now work properly - Lots of cleanups and fixes Changes from version 0.9.0 to 1.0.0 ----------------------------------- - Upgraded IDA Pro base version to 5.1 - Dropped Python 2.4 support - Mac OS X support - IDC compatibility layer is now complete and up to date for IDA 5.1 - INCOMPATIBLE CHANGE: the idaapi module needs to be imported manually - Support for IDB and debug notification hooks - Support for GUI hotkeys (see examples/hotkey.py) - Simple two-way calling mechanism between IDC and IDAPython - Significantly better IDA API coverage - Support for IDB and debug event hooks - get_current_instruction() deprecated, use the idaapi.cvar.cmd variable - Tons of IDC fixes - Tons of other misc fixes Changes from version 0.8.0 to 0.9.0 ----------------------------------- - Upgraded base version to IDA Pro 5.0 - Works with IDA Pro 5.1 - Python 2.4 and 2.5 supported - Close to complete IDC compatbility layer (in sync with 4.9) - Significatnly improved IDA SDK API covergage (see STATUS.txt for details) - IDA SDK patch size reduced to less than half - Simplified installation (plugins.cfg modification not needed) - Evaluation window content is saved over IDA restarts (in the database) - Windows version is built with Microsoft Visual C++ Express Edition - Build makefile replaced with a Python script - Cleanups and small fixes Changes from version 0.7.0 to 0.8.0 ----------------------------------- - Added support for IDA Pro 4.9 - Dropped support for IDA Pro 4.7 - NOTE: Windows version is linked against Python 2.4. - New wrappers: search.hpp, dbg.hpp, loader.hpp, diskio.hpp, nalt.hpp - idc.py synced up to IDA 4.8 - Added 38 IDC functions - Fixed asklong(), askseg() and askaddr() - Automatically generated cross reference documentation (epydoc) - User-specific init file support (see README,txt) - Deprecated some functions that have direct Python equivalents (see idc.py) - Fixed exception in ScriptBox when invoked empty. - Lots of cleanups and small fixes Changes from version 0.6.0 to 0.7.0 ----------------------------------- - Batch execution support (use the option -OIDAPython:yourscript.py) - Added ScriptBox - lists previously run scripts (Hotkey:Alt-7) - Added support for IDA Pro 4.8 (both Linux and Windows) - Dropped support for IDA Pro 4.6 and 4.6SP1 versions - Wrapped the list chooser (see examples/choose.py) - A dozen or so IDC functions added - Lots of char * API calls wrapped - Added Python error handling in the plugin C layer - Bunch of misc small cleanups and fixes - For more details see CHANGES-SWIG.txt and CHANGES-Plugin.txt - API CHANGE: {Next|Prev}Function() return BADADDR instead of -1 Changes from version 0.5.0 to 0.6.0 ----------------------------------- - Added support for IDA Pro 4.7 (both Linux and Windows) - Dropped support for IDA Pro 4.6SP1 beta on Linux - Lots of IDC wrapper additions and fixes: - Added 30+ new wrappers to idc.py - Most Find*, Ask* and Seg* are now wrapped - Fixed broken NextAddr(), PrevAddr(), MakeFunction() and MakeName() - Fixes to the makefile - Cleanups for the idaapi wrapper - Bunch of misc small cleanups and fixes - For more details see CHANGES-SWIG.txt and CHANGES-Plugin.txt