summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2016-01-31 03:10:41 -0500
committerRusty Wagner <rusty.wagner@gmail.com>2016-01-31 03:10:41 -0500
commitf0ab57068974f11cc19a95e9672af22ba2ea2ae2 (patch)
tree054ef39ec6824ca2cb8f2252e5d8c5feb32a07ab
parenta48ce3f4aa1266d5b8619cf320a703ba4f697854 (diff)
Create functions and types from function pointer parameters, now finds main() on Linux armv7
-rw-r--r--binaryninjaapi.h2
-rw-r--r--function.cpp12
2 files changed, 14 insertions, 0 deletions
diff --git a/binaryninjaapi.h b/binaryninjaapi.h
index c57bdf3a..42a29388 100644
--- a/binaryninjaapi.h
+++ b/binaryninjaapi.h
@@ -1246,6 +1246,7 @@ namespace BinaryNinja
Ref<Symbol> GetSymbol() const;
bool WasAutomaticallyDiscovered() const;
bool CanReturn() const;
+ bool HasExplicitlyDefinedType() const;
std::vector<Ref<BasicBlock>> GetBasicBlocks() const;
void MarkRecentUse();
@@ -1267,6 +1268,7 @@ namespace BinaryNinja
Ref<Type> GetType() const;
void ApplyImportedTypes(Symbol* sym);
+ void ApplyAutoDiscoveredType(Type* type);
Ref<FunctionGraph> CreateFunctionGraph();
};
diff --git a/function.cpp b/function.cpp
index 20b7ee89..ee2c5d36 100644
--- a/function.cpp
+++ b/function.cpp
@@ -46,6 +46,12 @@ bool Function::CanReturn() const
}
+bool Function::HasExplicitlyDefinedType() const
+{
+ return BNFunctionHasExplicitlyDefinedType(m_object);
+}
+
+
vector<Ref<BasicBlock>> Function::GetBasicBlocks() const
{
size_t count;
@@ -193,6 +199,12 @@ void Function::ApplyImportedTypes(Symbol* sym)
}
+void Function::ApplyAutoDiscoveredType(Type* type)
+{
+ BNApplyAutoDiscoveredFunctionType(m_object, type->GetObject());
+}
+
+
Ref<FunctionGraph> Function::CreateFunctionGraph()
{
BNFunctionGraph* graph = BNCreateFunctionGraph(m_object);