From fe7d9fdb402193a8c4f48487e99275d3e22819cb Mon Sep 17 00:00:00 2001 From: Arnaud Diederen Date: Mon, 9 Mar 2020 13:58:30 +0100 Subject: [PATCH] Backported fixes --- out_of_tree/parsed_notifications.zip | Bin 4188693 -> 4188693 bytes pywraps/py_idp.hpp | 20 ++++++++++++++++++++ pywraps/py_idp.py.in | 11 ++++++----- release_pydoc_injections2.txt | 10 ++++++---- release_pydoc_injections3.txt | 12 ++++++------ swig/ua.i | 4 ++-- tools/genhooks/recipe_idphooks.py | 5 +++++ tools/patch_codegen.py | 5 ++++- tools/patch_codegen/idp.py | 13 +++++++++++++ 9 files changed, 62 insertions(+), 18 deletions(-) diff --git a/out_of_tree/parsed_notifications.zip b/out_of_tree/parsed_notifications.zip index 1ba40efb70e9cf4633524f99dfdf0da3784939fe..05ec806115d3b704dcd5f280cfab41b5023f2f2f 100644 GIT binary patch delta 41278 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 ZTKa{%{WxCtUi^Yu0)5?^dH2E|^?%G@K@k7| diff --git a/pywraps/py_idp.hpp b/pywraps/py_idp.hpp index eda6d8f..dcd48a0 100644 --- a/pywraps/py_idp.hpp +++ b/pywraps/py_idp.hpp @@ -621,6 +621,26 @@ struct IDP_Hooks : public hooks_base_t return ret; } +protected: + static PyObject *new_PyObject_from_idpopt_value( + int value_type, + const void *value) + { + switch ( value_type ) + { + case IDPOPT_STR: + return IDAPyStr_FromUTF8((const char *) value); + case IDPOPT_NUM: + return IDAPyInt_FromLong(*(const uval_t *) value); + case IDPOPT_BIT: + return IDAPyInt_FromLong(*(const int *) value); + case IDPOPT_I64: + return PyLong_FromLongLong(*(const int64 *) value); + default: + return nullptr; + } + } + private: static ssize_t bool_to_insn_t_size(bool in, const insn_t *insn) { return in ? insn->size : 0; } static ssize_t bool_to_1or0(bool in) { return in ? 1 : 0; } diff --git a/pywraps/py_idp.py.in b/pywraps/py_idp.py.in index 49d8b8c..e747bdb 100644 --- a/pywraps/py_idp.py.in +++ b/pywraps/py_idp.py.in @@ -131,10 +131,11 @@ class processor_t(IDP_Hooks): """ Base class for all processor module scripts - A processor_t instance is both an ida_idp.IDP_Hooks, and - an ida_idp.IDB_Hooks at the same time: any method of - those two classes can be overridden in your processor_t - subclass. + A processor_t instance is both an ida_idp.IDP_Hooks, and an + ida_idp.IDB_Hooks at the same time: any method of those two classes + can be overridden in your processor_t subclass (with the exception of + 'ida_idp.IDP_Hooks.ev_init' (replaced with processor_t.__init__), + and 'ida_idp.IDP_Hooks.ev_term' (replaced with processor_t.__del__)). """ def __init__(self): IDP_Hooks.__init__(self, ida_idaapi.HBF_CALL_WITH_NEW_EXEC) @@ -220,7 +221,7 @@ class processor_t(IDP_Hooks): def ev_endbinary(self, *args): return self._get_notify("endbinary")(*args) - def ev_set_idp_options(self, keyword, value_type, value): + def ev_set_idp_options(self, keyword, value_type, value, idb_loaded): res = self._get_notify("set_idp_options", unimp_val=None)(keyword, value_type, value) if res is None: return 0 diff --git a/release_pydoc_injections2.txt b/release_pydoc_injections2.txt index a27c30e..ebe2d75 100644 --- a/release_pydoc_injections2.txt +++ b/release_pydoc_injections2.txt @@ -41282,7 +41282,7 @@ class IDP_Hooks(__builtin__.object) | ev_set_code16_mode(self, ea, code16) -> int | | ev_set_idp_options(self, *args) - | ev_set_idp_options(self, keyword, value_type, value, errbuf, idb_loaded) -> int + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int | | ev_set_proc_options(self, *args) | ev_set_proc_options(self, options, confidence) -> int @@ -42508,7 +42508,7 @@ class processor_t(IDP_Hooks) | | ev_rename(self, *args) | - | ev_set_idp_options(self, keyword, value_type, value) + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) | | ev_set_proc_options(self, *args) | @@ -71563,7 +71563,7 @@ class insn_t(__builtin__.object) | Methods defined here: | | __get_auxpref__(self, *args) - | __get_auxpref__(self) -> uint16 + | __get_auxpref__(self) -> uint32 | | __get_operand__(self, *args) | __get_operand__(self, n) -> op_t @@ -71653,7 +71653,7 @@ class insn_t(__builtin__.object) | list of weak references to the object (if defined) | | auxpref - | __get_auxpref__(self) -> uint16 + | __get_auxpref__(self) -> uint32 | | cs | insn_t_cs_get(self) -> ea_t @@ -75612,6 +75612,7 @@ get_idb_path() Help on function get_inf_attr in module idc: get_inf_attr(attr) + Deprecated. Please ida_ida.inf_get_* instead. Help on function get_input_file_path in module ida_nalt: @@ -78290,6 +78291,7 @@ set_ida_state(*args) Help on function set_inf_attr in module idc: set_inf_attr(attr, value) + Deprecated. Please ida_ida.inf_set_* instead. Help on function set_local_type in module idc: diff --git a/release_pydoc_injections3.txt b/release_pydoc_injections3.txt index 81c8e10..058ae4c 100644 --- a/release_pydoc_injections3.txt +++ b/release_pydoc_injections3.txt @@ -41265,7 +41265,7 @@ class IDP_Hooks(builtins.object) | ev_set_code16_mode(self, ea, code16) -> int | | ev_set_idp_options(self, *args) -> 'int' - | ev_set_idp_options(self, keyword, value_type, value, errbuf, idb_loaded) -> int + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int | | ev_set_proc_options(self, *args) -> 'int' | ev_set_proc_options(self, options, confidence) -> int @@ -42632,8 +42632,8 @@ class processor_t(IDP_Hooks) | - If returns value <0, then the kernel should | not rename it. See also the 'renamed' event | - | ev_set_idp_options(self, keyword, value_type, value) - | ev_set_idp_options(self, keyword, value_type, value, errbuf, idb_loaded) -> int + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) + | ev_set_idp_options(self, keyword, value_type, value, idb_loaded) -> int | | ev_set_proc_options(self, *args) | ev_set_proc_options(self, options, confidence) -> int @@ -71611,8 +71611,8 @@ class insn_t(builtins.object) | | Methods defined here: | - | __get_auxpref__(self, *args) -> 'uint16' - | __get_auxpref__(self) -> uint16 + | __get_auxpref__(self, *args) -> 'uint32' + | __get_auxpref__(self) -> uint32 | | __get_operand__(self, *args) -> 'op_t *' | __get_operand__(self, n) -> op_t @@ -71705,7 +71705,7 @@ class insn_t(builtins.object) | list of weak references to the object (if defined) | | auxpref - | __get_auxpref__(self) -> uint16 + | __get_auxpref__(self) -> uint32 | | cs | insn_t_cs_get(self) -> ea_t diff --git a/swig/ua.i b/swig/ua.i index d31b742..7fa05bd 100644 --- a/swig/ua.i +++ b/swig/ua.i @@ -67,8 +67,8 @@ return wrapped_array_t($self->ops); } op_t *__get_operand__(int n) { QASSERT(30502, n >= 0 && n < UA_MAXOP); return &($self->ops[n]); } - uint16 __get_auxpref__() { return $self->auxpref; } - void __set_auxpref__(uint16 v) { $self->auxpref = v; } + uint32 __get_auxpref__() { return $self->auxpref; } + void __set_auxpref__(uint32 v) { $self->auxpref = v; } void assign(const insn_t &other) { *($self) = other; } diff --git a/tools/genhooks/recipe_idphooks.py b/tools/genhooks/recipe_idphooks.py index c906ca7..21bf6cc 100644 --- a/tools/genhooks/recipe_idphooks.py +++ b/tools/genhooks/recipe_idphooks.py @@ -181,4 +181,9 @@ recipe = { "convertor_pass_args" : True, } }, + "ev_set_idp_options" : { + "params" : { + "errbuf" : { "suppress_for_call" : True, "qnotused" : True }, + }, + }, } diff --git a/tools/patch_codegen.py b/tools/patch_codegen.py index 2f143da..ddac206 100644 --- a/tools/patch_codegen.py +++ b/tools/patch_codegen.py @@ -223,7 +223,10 @@ with open(args.input) as f: elif patch_kind == "repl_text": idx = line.find(patch_data[0]) if idx > -1: - subst = line.rstrip().replace(patch_data[0], patch_data[1]) + repl = patch_data[1] + if not isinstance(repl, str): + repl = "\n".join(repl) + subst = line.rstrip().replace(patch_data[0], repl) subst = "%s %s" % (subst, patched_cmt) elif patch_kind == "insert_before_text": idx = line.find(patch_data[0]) diff --git a/tools/patch_codegen/idp.py b/tools/patch_codegen/idp.py index 747f8ff..a9179e9 100644 --- a/tools/patch_codegen/idp.py +++ b/tools/patch_codegen/idp.py @@ -31,6 +31,19 @@ if ( __argcnt == 2 ) } } """)), + ], + "SwigDirector_IDP_Hooks::ev_set_idp_options" : [ + ( + "repl_text", + ( + "obj2 = SWIG_NewPointerObj(SWIG_as_voidptr(value), SWIGTYPE_p_void, 0 );", + ( + "obj2 = new_PyObject_from_idpopt_value(value_type, value);", + " if ( ((PyObject *) obj2) == nullptr )", + " Swig::DirectorException::raise(\"Unknown 'value_type'\");", + ), + ), + ), ], }