From ea8f992f355a9152e0a77fa861d01f39081d9670 Mon Sep 17 00:00:00 2001 From: Jon Palmisciano Date: Tue, 27 Jul 2021 07:59:29 -0400 Subject: Function: Add C++ bindings for `Get{Medium,High}LevelILVariables()` --- function.cpp | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) (limited to 'function.cpp') diff --git a/function.cpp b/function.cpp index 9c9e5e68..fc90a8d1 100644 --- a/function.cpp +++ b/function.cpp @@ -1107,6 +1107,42 @@ map Function::GetVariables() } +set Function::GetMediumLevelILVariables() +{ + auto mlil = this->GetMediumLevelIL(); + if (!mlil) + return {}; + + size_t count; + BNVariable* vars = BNGetMediumLevelILVariables(mlil->GetObject(), &count); + + set result; + for (size_t i = 0; i < count; i++) + result.insert({vars[i]}); + + BNFreeVariableList(vars); + return result; +} + + +set Function::GetHighLevelILVariables() +{ + auto hlil = this->GetHighLevelIL(); + if (!hlil) + return {}; + + size_t count; + BNVariable* vars = BNGetHighLevelILVariables(hlil->GetObject(), &count); + + set result; + for (size_t i = 0; i < count; i++) + result.insert({vars[i]}); + + BNFreeVariableList(vars); + return result; +} + + void Function::CreateAutoVariable(const Variable& var, const Confidence>& type, const string& name, bool ignoreDisjointUses) { -- cgit v1.3.1