Commit Graph

88 Commits

Author SHA1 Message Date
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@gmail.com
223e4a5268 Applied patches from Hex-Rays:
- added MakeYword
- wrap obsolete IDA API functions too, so that old scripts continue to work
- added debugger trace related functions in idc.py
BUGFIX: IDAPython would fail with a cryptic error message if there was no free space on the current disk
BUGFIX: site-packages directory was missing from sys.path
BUGFIX: functions for working with additional lines (LineA/LineB etc) were broken
BUGFIX: GetFixup* functions from idc.py were broken
BUGFIX: IDA could not start if another python27.dll was present in PATH and importing site.py for that Python installation failed
BUGFIX: SaveBase() was broken
BUGFIX: IDAPython would fail with a cryptic error message if there was no free space on the current disk
BUGFIX: IDAPython: site-packages directory was missing from sys.path
BUGFIX: IDAPython: functions for working with additional lines (LineA/LineB etc) were broken
BUGFIX: IDAPython: GetFixup* functions from idc.py were broken
BUGFIX: IDAPython: IDA could not start if another python27.dll was present in PATH and importing site.py for that Python installation failed
BUGFIX: IDAPython: SaveBase() was broken
BUGFIX: Dbg/Idp hooks automatically unhook when hook object is not referenced anymore

note: these patches are already applied in IDAPython that comes with IDA Pro 6.4
2013-03-06 07:44:10 +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
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@gmail.com
96cd02db6c - fixed idc.ItemHead()
- update some IDC functions documentation
2011-08-08 15:42:25 +00:00
elias.bachaalany@gmail.com
8413f9f791 - GetIdaDirectory() was broken
- some function comments were wrong
- other fixes
2011-07-04 13:19:36 +00:00
elias.bachaalany
88aa875c55 bugfixes:
- ph_get_operand_info() would crash IDA sometimes
- idc.SetBptCond() was broken
- idc.GetFunctionCmt() was memory leaking
- Form.GetFieldValue() was failing for numeric controls
- Exceptions originating from the director classes will be displayed

And other minor mods...
2011-06-10 14:54:03 +00:00
elias.bachaalany
a12974b66c - bugfix: idc.GetString()/idaapi.get_ascii_contents()/idautils.Strings() were limited to MAXSTR string length
- minor mods
2011-05-19 15:06:31 +00:00
elias.bachaalany
a52b90c771 bugfix: Previous implementation set_script_timeout() was causing the script wait dialog box to open and never close upon the invocation of callbacks (add_menu_item callback or other callbacks) that take longer than the timeout value. 2011-05-09 10:29:08 +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
63b22d00d5 - Fixed issue 59
- Fixed idaapi.msg() / error() and warning() so they don't accept vararg
- Fixed processor_t.id constants
- idaapi.BasicBlock and FlowChart are now new-style classes
2010-12-17 16:50:35 +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
ero.carrera@gmail.com
faf5063818 Fixed a bug in GetIdbPath() when working in an IDA instance that has dealt with more than one IDB.
idaapi.cvar.database_idb seems to point to a realloc'ed buffer. When IDA is working on an IDB stored in a directory with a long path and a second IDB with a shorter path is loaded, the buffer will be overwritten with the new path to the IDB, which will end in "\x00" and the leftovers of the older, longer path will follow.
The problem with GetIdbPath() is that it returns the whole bufer, NULL and "leftovers" included, which leads to trouble in Python. Specifically some functions like os.path.splitext which will look for the extension starting from the end of the buffer and will return an invalid split.
The patch simply post-processes the contents of idaapi.cvar.database_idb returning a Python string with all characters up to the "\x00"
2010-09-23 18:57:37 +00:00
elias.bachaalany
80896bc1d9 Minor modifications:
- function documentation update
- removed some white spaces
2010-09-17 12:06:30 +00:00
elias.bachaalany
2d763844ed idc.py: added GetManyBytes() and ItemHead() 2010-09-11 08:47:45 +00:00
elias.bachaalany
2c33ce00c5 fixed issue 55 2010-08-14 15:43:09 +00:00
elias.bachaalany
4867b405a9 idc.py: Til2Idb() was broken 2010-08-10 11:45:36 +00:00
elias.bachaalany
686e018bdc - updated debughook example
- wrapped print_type
- minor mods to idc.py
- added idautils.GetIdbDir
- added Names()
- added Modules()
- added idautils.peutils_t()
- simplecustviewer_t.GetLineNo() now returns -1 on failure
- idc.py / setregval: it was not possible to set register values > 0x7fffffff
2010-07-27 14:44:31 +00:00
elias.bachaalany
8495e5205b - renamed pywraps related utility functions to PyW_
- refactored some code
- fixed some potential PyObject leaks
- added cli_t support
2010-07-13 16:43:53 +00:00
elias.bachaalany
4b1c3cd4c4 GetFchunkAttr() is reimplemented using idaapi rather than Eval() and IDC (issue 52) 2010-07-02 16:10:30 +00:00
elias.bachaalany
3a5063330c IDAPython 1.4.0 - IDA Pro 5.7 support 2010-06-28 12:36:40 +00:00
elias.bachaalany
7da6dd916c idd.i: dbg_can_query() was returning false when called from a bpt condition
idc.py: AskStr() was calling idaapi.askstr w/ wrong parameter
2010-05-13 09:36:56 +00:00
elias.bachaalany
ff7ab3f1dc idc.py: added SendDbgCommand() 2010-05-05 13:05:53 +00:00
ero.carrera@gmail.com
f09375cf70 - bugfix: According to their docstrings a few functions should be returning 0 or -1 to indicate errors but were returning instead None 2010-04-27 13:42:41 +00:00
gergely.erdelyi
6112217cab Updated copyright dates and email address 2010-04-26 20:13:11 +00:00
gergely.erdelyi
1757dec387 idc.py: Default strtype argument in GetString no longer breaks the whole script 2010-04-26 19:51:58 +00:00
elias.bachaalany
ecb4232040 Added default parameter to GetString() 2010-04-23 10:49:21 +00:00
ero.carrera@gmail.com
53d99a141a - Fixed a really subtle bug in some of the uses of _IDC_SetAttr(). In a couple of locations the call is made as part of the condition of an IF. But _IDC_SetAttr() will always return None ( "return setattr(obj, attrmap[attroffs][1], value)" ), leading to the value being properly set in the instance but never updated in the IDB. Which led to mysterious behavior because of "vanishing" attributes 2010-04-12 17:12:23 +00:00
elias.bachaalany
ab81000187 - added GetInstructionList() and GetRegisterList() to idautils.py
- ignored processor_t and ph global variable
2010-03-22 14:21:43 +00:00
elias.bachaalany
33c93df0cf GetDouble() and GetFloat() now use idaapi.get_many_bytes() 2010-03-05 10:59:23 +00:00
elias.bachaalany
ea4cd26a6a MakeArray and GetStringType: were using an old type name
GetLongPrm and SetLongPrm were not working with INF_PROCNAME
2010-01-27 09:52:22 +00:00
elias.bachaalany
d7c6f94f08 bugfix: SetRegEx and GetReg were only working with x86 segment registers 2010-01-18 10:55:33 +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
gergely.erdelyi
c21a932cec idc.py: Whitespace and indentation fixes 2009-10-17 21:12:15 +00:00
gergely.erdelyi
cb57938dcc idc.py: Fixed RunTo() and GetExceptionQty() 2009-10-17 21:08:36 +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
elias.bachaalany
e27524cca5 idautils: added Strings class to enumerate strings (check ex_strings.py)
gdl.i: added FlowChart and BasicBlock classes (check examples / ex_gdl_qflow_chart)
idc.py : fixed MakeName() and AnalyseArea() (they were not returning return values)
2009-09-16 14:00:31 +00:00
gergely.erdelyi
39d692c258 idc.py: Removed redundant definition of OpFloat() 2009-09-07 17:16:06 +00:00
gergely.erdelyi
02c6a5519e idc.py: IDC wrapper brought up to par with IDA 5.5 2009-08-30 12:17:50 +00:00
gergely.erdelyi
b0d8723ccb idc.py: AddStrucMember() and SetMemberType() switched to native IDC implementation 2009-07-17 17:58:57 +00:00
gergely.erdelyi
e64fdf16b3 idc.py: GetFchunkAttr() now calls the IDC implementation and should return identical results 2009-07-12 15:05:49 +00:00
gergely.erdelyi
f2e422d208 idc.py: Fixed a wrong copy & paste 2009-05-23 16:35:07 +00:00
gergely.erdelyi
d197df5653 idc.py: Added 64-bit versions of constants 2009-05-23 15:33:25 +00:00
gergely.erdelyi
b21e3b5230 idc.py: Added OpFloat()
idc.py: Stricter type check in SetRegValue(). Thanks to Igor Skochinsky for the patches.
2009-04-28 16:13:57 +00:00
gergely.erdelyi
864165a44c Added support for retrieving large local types 2009-04-27 17:38:17 +00:00
gergely.erdelyi
1c4a240cfb Updated year in copyright strings 2009-04-26 18:28:59 +00:00
gergely.erdelyi
252fcf8052 idc.py: A batch of docstring fixes. Thanks to Ange Albertini for the patch! 2009-04-25 17:55:37 +00:00
gergely.erdelyi
f4f5aa0441 idc.py: Fixed GetOpType() and GetOperandValue() to use decode_insn() so they are not destructive
idc.py: Fixed MakeCode() to use the new create_insn()
2009-03-22 15:27:46 +00:00