summaryrefslogtreecommitdiff
path: root/functionrecognizer.cpp
diff options
context:
space:
mode:
authorPeter LaFosse <peter@vector35.com>2018-01-09 16:47:47 -0500
committerPeter LaFosse <peter@vector35.com>2018-01-09 16:47:47 -0500
commit6ef9dd016c957e796f89f94f00c6d71e2f7589e8 (patch)
tree5ab4ab48cf8f47c4e5325f3b3ae4cf9e5e8d5194 /functionrecognizer.cpp
parent16a4d413d58d2cb29be97781bba0b52546afa390 (diff)
parent26edabfdd7211012c7c8a03186d3025eea9aa345 (diff)
Merge branch 'dev'
Diffstat (limited to 'functionrecognizer.cpp')
-rw-r--r--functionrecognizer.cpp18
1 files changed, 18 insertions, 0 deletions
diff --git a/functionrecognizer.cpp b/functionrecognizer.cpp
index 32c7245c..34f1db80 100644
--- a/functionrecognizer.cpp
+++ b/functionrecognizer.cpp
@@ -38,11 +38,22 @@ bool FunctionRecognizer::RecognizeLowLevelILCallback(void* ctxt, BNBinaryView* d
}
+bool FunctionRecognizer::RecognizeMediumLevelILCallback(void* ctxt, BNBinaryView* data, BNFunction* func, BNMediumLevelILFunction* il)
+{
+ FunctionRecognizer* recog = (FunctionRecognizer*)ctxt;
+ Ref<BinaryView> dataObj = new BinaryView(BNNewViewReference(data));
+ Ref<Function> funcObj = new Function(BNNewFunctionReference(func));
+ Ref<MediumLevelILFunction> ilObj = new MediumLevelILFunction(BNNewMediumLevelILFunctionReference(il));
+ return recog->RecognizeMediumLevelIL(dataObj, funcObj, ilObj);
+}
+
+
void FunctionRecognizer::RegisterGlobalRecognizer(FunctionRecognizer* recog)
{
BNFunctionRecognizer reg;
reg.context = recog;
reg.recognizeLowLevelIL = RecognizeLowLevelILCallback;
+ reg.recognizeMediumLevelIL = RecognizeMediumLevelILCallback;
BNRegisterGlobalFunctionRecognizer(&reg);
}
@@ -52,6 +63,7 @@ void FunctionRecognizer::RegisterArchitectureFunctionRecognizer(Architecture* ar
BNFunctionRecognizer reg;
reg.context = recog;
reg.recognizeLowLevelIL = RecognizeLowLevelILCallback;
+ reg.recognizeMediumLevelIL = RecognizeMediumLevelILCallback;
BNRegisterArchitectureFunctionRecognizer(arch->GetObject(), &reg);
}
@@ -60,3 +72,9 @@ bool FunctionRecognizer::RecognizeLowLevelIL(BinaryView*, Function*, LowLevelILF
{
return false;
}
+
+
+bool FunctionRecognizer::RecognizeMediumLevelIL(BinaryView*, Function*, MediumLevelILFunction*)
+{
+ return false;
+}