diff options
| author | Peter LaFosse <peter@vector35.com> | 2020-05-28 09:49:16 -0400 |
|---|---|---|
| committer | Peter LaFosse <peter@vector35.com> | 2020-05-28 11:27:33 -0400 |
| commit | 1f8ca3f77de08b5c581693153bf1ef580c912a0e (patch) | |
| tree | 8a9c3d33c730513b1d16f7dbc15db73fd188b848 | |
| parent | 95c8fa5b0cea3daa4dba774a2dab612c3d3fe39f (diff) | |
Add optional type to define as in Function::ApplyImportedTypes and BinaryView::DefineImportedFunction APIs
| -rw-r--r-- | binaryninjaapi.h | 4 | ||||
| -rw-r--r-- | binaryninjacore.h | 4 | ||||
| -rw-r--r-- | binaryview.cpp | 4 | ||||
| -rw-r--r-- | function.cpp | 4 | ||||
| -rw-r--r-- | python/binaryview.py | 4 | ||||
| -rw-r--r-- | python/function.py | 4 |
6 files changed, 12 insertions, 12 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h index d0e23d28..c5367026 100644 --- a/binaryninjaapi.h +++ b/binaryninjaapi.h @@ -1580,7 +1580,7 @@ __attribute__ ((format (printf, 1, 2))) void DefineUserSymbol(Ref<Symbol> sym); void UndefineUserSymbol(Ref<Symbol> sym); - void DefineImportedFunction(Ref<Symbol> importAddressSym, Ref<Function> func); + void DefineImportedFunction(Ref<Symbol> importAddressSym, Ref<Function> func, Ref<Type> type = nullptr); void AddTagType(Ref<TagType> tagType); void RemoveTagType(Ref<TagType> tagType); @@ -3027,7 +3027,7 @@ __attribute__ ((format (printf, 1, 2))) void SetRegisterStackAdjustments(const std::map<uint32_t, Confidence<int32_t>>& regStackAdjust); void SetClobberedRegisters(const Confidence<std::set<uint32_t>>& clobbered); - void ApplyImportedTypes(Symbol* sym); + void ApplyImportedTypes(Symbol* sym, Ref<Type> type = nullptr); void ApplyAutoDiscoveredType(Type* type); Ref<FlowGraph> CreateFunctionGraph(BNFunctionGraphType type, DisassemblySettings* settings = nullptr); diff --git a/binaryninjacore.h b/binaryninjacore.h index a78e5b3b..a3302aea 100644 --- a/binaryninjacore.h +++ b/binaryninjacore.h @@ -2928,7 +2928,7 @@ __attribute__ ((format (printf, 1, 2))) BNRegisterStackAdjustment* adjustments, size_t count); BINARYNINJACOREAPI void BNSetUserFunctionClobberedRegisters(BNFunction* func, BNRegisterSetWithConfidence* regs); - BINARYNINJACOREAPI void BNApplyImportedTypes(BNFunction* func, BNSymbol* sym); + BINARYNINJACOREAPI void BNApplyImportedTypes(BNFunction* func, BNSymbol* sym, BNType* type); BINARYNINJACOREAPI void BNApplyAutoDiscoveredFunctionType(BNFunction* func, BNType* type); BINARYNINJACOREAPI bool BNFunctionHasExplicitlyDefinedType(BNFunction* func); @@ -3479,7 +3479,7 @@ __attribute__ ((format (printf, 1, 2))) BINARYNINJACOREAPI void BNUndefineAutoSymbol(BNBinaryView* view, BNSymbol* sym); BINARYNINJACOREAPI void BNDefineUserSymbol(BNBinaryView* view, BNSymbol* sym); BINARYNINJACOREAPI void BNUndefineUserSymbol(BNBinaryView* view, BNSymbol* sym); - BINARYNINJACOREAPI void BNDefineImportedFunction(BNBinaryView* view, BNSymbol* importAddressSym, BNFunction* func); + BINARYNINJACOREAPI void BNDefineImportedFunction(BNBinaryView* view, BNSymbol* importAddressSym, BNFunction* func, BNType* type); BINARYNINJACOREAPI void BNDefineAutoSymbolAndVariableOrFunction(BNBinaryView* view, BNPlatform* platform, BNSymbol* sym, BNType* type); diff --git a/binaryview.cpp b/binaryview.cpp index 30aeeae8..24a50c11 100644 --- a/binaryview.cpp +++ b/binaryview.cpp @@ -2034,9 +2034,9 @@ void BinaryView::UndefineUserSymbol(Ref<Symbol> sym) } -void BinaryView::DefineImportedFunction(Ref<Symbol> importAddressSym, Ref<Function> func) +void BinaryView::DefineImportedFunction(Ref<Symbol> importAddressSym, Ref<Function> func, Ref<Type> type) { - BNDefineImportedFunction(m_object, importAddressSym->GetObject(), func->GetObject()); + BNDefineImportedFunction(m_object, importAddressSym->GetObject(), func->GetObject(), type ? type->GetObject() : nullptr); } diff --git a/function.cpp b/function.cpp index e4e8af17..fd3760b4 100644 --- a/function.cpp +++ b/function.cpp @@ -869,9 +869,9 @@ void Function::SetClobberedRegisters(const Confidence<std::set<uint32_t>>& clobb } -void Function::ApplyImportedTypes(Symbol* sym) +void Function::ApplyImportedTypes(Symbol* sym, Ref<Type> type) { - BNApplyImportedTypes(m_object, sym->GetObject()); + BNApplyImportedTypes(m_object, sym->GetObject(), type ? type->GetObject() : nullptr); } diff --git a/python/binaryview.py b/python/binaryview.py index 994d9edd..01da5517 100644 --- a/python/binaryview.py +++ b/python/binaryview.py @@ -3587,7 +3587,7 @@ class BinaryView(object): """ core.BNUndefineUserSymbol(self.handle, sym.handle) - def define_imported_function(self, import_addr_sym, func): + def define_imported_function(self, import_addr_sym, func, type=None): """ ``define_imported_function`` defines an imported Function ``func`` with a ImportedFunctionSymbol type. @@ -3595,7 +3595,7 @@ class BinaryView(object): :param Function func: A Function object to define as an imported function :rtype: None """ - core.BNDefineImportedFunction(self.handle, import_addr_sym.handle, func.handle) + core.BNDefineImportedFunction(self.handle, import_addr_sym.handle, func.handle, None if type is None else type.handle) def create_tag_type(self, name, icon): """ diff --git a/python/function.py b/python/function.py index 76c8de0c..1c244ae4 100644 --- a/python/function.py +++ b/python/function.py @@ -1960,8 +1960,8 @@ class Function(object): settings_obj = None return binaryninja.flowgraph.CoreFlowGraph(core.BNCreateFunctionGraph(self.handle, graph_type, settings_obj)) - def apply_imported_types(self, sym): - core.BNApplyImportedTypes(self.handle, sym.handle) + def apply_imported_types(self, sym, type=None): + core.BNApplyImportedTypes(self.handle, sym.handle, None if type is None else type.handle) def apply_auto_discovered_type(self, func_type): core.BNApplyAutoDiscoveredFunctionType(self.handle, func_type.handle) |
