90 Commits

Author SHA1 Message Date
Arnaud Diederen bdc46aaaa0 IDAPython: added a mechanism to use the freshly-built modules to perform the pydoc injections check, in case of an out-of-tree build 2023-01-26 12:14:15 +01:00
Arnaud Diederen 023c5ba53c IDAPython for IDA 8.0 2022-08-22 10:14:21 +02:00
Arnaud Diederen 604de9cfad IDAPython for IDA 7.5 2020-05-27 14:34:02 +02:00
Elias Bachaalany c74e082408 Fixed build.py to work on MS Windows
- added .gitignore to ignore the obj folder and compiled Python scripts
2019-12-05 14:16:26 -08:00
Arnaud Diederen 5958995d66 IDAPython for IDA 7.4 2019-10-15 15:05:24 +02:00
Arnaud Diederen 15b9ab2535 Merge pull request #16 from cclauss/modernize-Python-2-code
Modernize Python 2 code to get ready for Python 3
2018-12-11 07:19:11 +01:00
cclauss 526d4d5f99 Specify Python 2 in the build commands 2018-12-02 07:04:46 +01:00
cclauss d7bacfa611 Modernize Python 2 code to get ready for Python 3 2018-12-01 23:58:26 +01:00
Arnaud Diederen 701bb1b44e IDAPython for IDA 7.2 2018-11-06 08:14:17 +01:00
Arnaud Diederen 29ec1ceba2 IDAPython for IDA 7.1 2018-02-28 07:45:21 +01:00
Arnaud Diederen d99a893697 IDAPython for IDA 7.0: Initial commit, plus bugfixes up to 2017 Oct, 13th. 2017-10-13 15:08:08 +02:00
Arnaud Diederen 31c7776117 Applied all fixes to IDAPython 6.95, to this date (2017 Jan 17th.) 2017-01-17 12:15:35 +01:00
Arnaud Diederen e22e859a41 Applied all fixes to IDAPython 6.95, to this date (2016 Sept 26th.) 2016-09-26 11:16:26 +02:00
Arnaud Diederen 62ddab8db6 IDAPython for IDA 6.95: Initial commit 2016-08-09 10:01:18 +02:00
Arnaud Diederen 8e891b5fff Implement the 'dist-making' process 2016-01-08 15:37:56 +01:00
Arnaud Diederen 19c58385d5 Build optimized version by default 2016-01-08 12:47:09 +01:00
Arnaud Diederen c4e4f24e67 IDAPython for IDA 6.9: Initial commit 2016-01-08 11:59:48 +01:00
Arnaud Diederen 0369202c37 build.py: use subprocess.check_call() instead of os.system(), in order to use proper arguments and not simple strings (and thus allow for spaces in paths.) 2015-09-01 14:20:22 +02:00
Arnaud Diederen c7bf2253cb Bit more doc 2015-09-01 12:14:23 +02:00
Arnaud Diederen 68ef53af7f build.py: use argparse to provide 1) better/more options, 2) help about those options
build.py: was still referencing README.txt, which has been renamed to README.md
2015-09-01 12:03:52 +02:00
Arnaud Diederen 13f4254ccc Revert "build.py: use argparse to provide 1) better/more options, 2) help about those options"
This reverts commit 02e130299d.
2015-09-01 11:56:33 +02:00
Arnaud Diederen 02e130299d build.py: use argparse to provide 1) better/more options, 2) help about those options
build.py: was still referencing README.txt, which has been renamed to README.md
2015-09-01 11:54:07 +02:00
Arnaud Diederen f9f3ccb63b IDA Pro 6.8 support
What's new: https://www.hex-rays.com/products/ida/6.8/index.shtml
2015-04-20 14:26:30 +02:00
elias.bachaalany@gmail.com 3e9ea5f503 minor mod: turned off build debug flag 2015-02-08 03:07:57 +00:00
elias.bachaalany@gmail.com bbf628d3a3 IDA Pro 6.7 support 2015-02-08 02:59:53 +00:00
elias.bachaalany@gmail.com fbb5bfabd6 IDA Pro 6.6 support
What's new:
- added the decompiler bindings
- Expose simpleline_t type to IDAPython. That lets the user to set the bgcolor & text for each line in the decompilation.
- Wrapped new functions from the IDA SDK

Various fixes:
for non-code locations, idc.GetOpnd() would create instructions instead of returning empty result
- idb_event::area_cmt_changed was never received in IDB_Hooks (and descendants)
- idb_event::ti_changed, and idb_event::op_ti_changed notifications were not accessible in IDAPython
- op_t.value was truncated to 32 bits under IDA64.
- print_tinfo() wouldn't return a valid string.
- readsel2() was not usable.
- read_selection() was buggy for 64-bit programs.
- StructMembers() considered holes in structures, and didn't properly iterate through the whole structure definition.
- There was no way to call calc_switch_cases() from IDAPython.
- when using multi-select/multi-edit choosers, erroneous event codes could be sent at beginning & end of batch deletion of lines.
- When, in a PluginForm#OnCreate, the layout of IDA was requested to change (for example by starting a debugging session), that PluginForm could be deleted and create an access violation.
- tinfo_t objects created from IDAPython could cause an assertion failure at exit time.
- Usage of IDAPython's DropdownListControl was broken.
2014-07-04 22:02:42 +00:00
elias.bachaalany@gmail.com 78c79f85b9 IDA Pro 6.5 support
What's new:
- Proper multi-threaded support 
- Better PyObject reference counting with ref_t and newref_t helper classes
- Improved the pywraps/deployment script
- Added IDAViewWrapper class and example
- Added idc.GetDisasmEx()
- Added idc.AddSegEx()
- Added idc.GetLocalTinfo()
- Added idc.ApplyType()
- Updated type information implementation
- Introduced the idaapi.require() - see http://www.hexblog.com/?p=749
- set REMOVE_CWD_SYS_PATH=1 by default in python.cfg (remove current directory from the import search path).

Various bugfixes:
- fixed various memory leaks
- asklong/askaddr/asksel (and corresponding idc.py functions) were returning results truncated to 32 bits in IDA64
- fix wrong documentation for idc.SizeOf
- GetFloat/GetDouble functions did not take into account endianness of the processor
- idaapi.NO_PROCESS was not defined, and was causing GetProcessPid() to fail
- idc.py: insert escape characters to string parameter when call Eval()
- idc.SaveFile/savefile were always overwriting an existing file instead of writing only the new data
- PluginForm.Close() wasn't passing its arguments to the delegate function, resulting in an error.
2013-12-30 01:34:23 +00:00
elias.bachaalany@gmail.com db58b31711 - Experimental: integrated Hex-Rays Decompiler bindings that were contributed by EiNSTeiN:
https://github.com/EiNSTeiN-/hexrays-python
- Added '--with-hexrays' switch to the build script so it wrap Hex-Rays Decompiler API
- Added one Hex-Rays decompiler sample: vds1.py
2013-07-03 01:40:54 +00:00
elias.bachaalany@gmail.com 4e295155bb Fixed compilation bugs:
- Fixed small mismatch between SWIG define and CL defines (/DNO_OBSOLETE_FUNCS)
- Use print_type2() instead of the deprecated function print_type()
2013-06-28 01:32:56 +00:00
elias.bachaalany@gmail.com 21cd5a95eb - applied patchs for IDA 6.4 SP from Hex-Rays
- fixed idc.CommentEx()
- minor mods
2013-03-08 19:33:51 +00:00
elias.bachaalany 69d5c83d28 - 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
2012-06-24 20:49:11 +00:00
skochinsky@gmail.com 0282e67982 IDAPython 1.5.4
- fix for Python autorun script vulnerability reported by Greg MacManus
- remove current directory from sys.path during initialization
2012-03-26 13:39:09 +00:00
elias.bachaalany@gmail.com 06f0ff19d5 bugfixes:
- op_t.is_reg() was buggy
- build.py: build.py was putting duplicate files into the .zip
- added backed wrapped version of get_ascii_contents()
- misc changes...
2011-12-02 15:42:36 +00:00
skochinsky@gmail.com 1258fab948 IDAPython 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
2011-10-14 14:24:38 +00:00
elias.bachaalany f5ec434bf7 IDAPython 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
- some code refactoring
- 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
2011-06-10 15:21:21 +00:00
elias.bachaalany 8375368d6d IDAPython 1.5.1
- Introduced the CLI '?' pseudo-command to retrieve doc strings
- Introduced the CLI '!' pseudo-command to shell execute a command
- Added IDP/assemble notification event
- bugfix: High 64 bit addresses were not parsed correctly in IDA64
- bugfix: AskUsingForm() C function was not wrapped by SWIG
- NextHead()/PrevHead() have optional 2nd parameter now
2011-04-21 14:23:46 +00:00
elias.bachaalany 109158fabb - 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
2011-04-18 16:07:00 +00:00
elias.bachaalany ac5d88a83b IDAPython 1.4.3:
- IDA 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 enumerate entrypoints
- idc / AddConst() was broken
- Minor fixes
2010-11-10 13:58:08 +00:00
elias.bachaalany 1d2f1d1f07 Committed last updates to IDAPython 1.4.2 2010-10-07 09:47:04 +00:00
elias.bachaalany f216eb9a6d - IDAPython 1.4.2: should work now with Python 2.7
- Hide the Python plugin from the plugins menu (it already installs the run statement functionality in the File menu)
2010-08-10 11:44:59 +00:00
elias.bachaalany 6b0dfd84c0 IDAPython 1.4.1:
- added AUTHORS.txt and changed the banner
- IDAPython_ExecFile() will print script execution errors to the log window too
- added 'ph' into idaapi. It is a replacement for idaapi.cvar.ph
- added runscript to init.py for backward compatibility
- added cli_t support
2010-07-16 12:07:49 +00:00
elias.bachaalany 3a5063330c IDAPython 1.4.0 - IDA Pro 5.7 support 2010-06-28 12:36:40 +00:00
gergely.erdelyi 6112217cab Updated copyright dates and email address 2010-04-26 20:13:11 +00:00
elias.bachaalany 729084a1ff added Custom Viewer support 2010-03-22 14:19:43 +00:00
elias.bachaalany ee8fab6c4c Changed version to 1.3.2 and uploaded a precompiled version for Windows and IDA Pro 5.6 2010-03-05 11:45:44 +00:00
elias.bachaalany 57d37a638a Added import enumeration support. Check exmples\ex_imports.py 2010-03-05 11:18:25 +00:00
elias.bachaalany 277facf240 IDAPython 1.3.0 / IDA Pro 5.6
(For older versions please use the 1.2.90 branch)
2010-01-05 18:24:04 +00:00
elias.bachaalany 01601d7eea idapython: it is possible to load IdaPython at an early stage and keep it loaded as long as IDA is running.
(One needs to pass the "--early-load" switch to build.py)
2009-10-29 11:37:24 +00:00
elias.bachaalany 3862f05f3f build.py: slightly modified the build.py script so that it can be imported and used from other build scripts 2009-10-19 07:21:22 +00:00
gergely.erdelyi 9d3fb35f87 has_key() is slowly getting deprecated. Might make sense to stop using it. 2009-10-17 20:54:08 +00:00