summaryrefslogtreecommitdiff
path: root/highlevelil.cpp
diff options
context:
space:
mode:
authorBrian Potchik <brian@vector35.com>2022-02-07 13:40:03 -0500
committerBrian Potchik <brian@vector35.com>2022-02-07 13:40:03 -0500
commit8040830ef060f98801b797c58caba2848e36937c (patch)
tree275aa0e14e862821051b65d062cfd14a2d9394d4 /highlevelil.cpp
parenta9ecb3d5566f86eb4d690a0672e6d5cdcb6ecbe8 (diff)
Expose HLIL GenerateSSAForm via API and add python wrapper.
Diffstat (limited to 'highlevelil.cpp')
-rw-r--r--highlevelil.cpp19
1 files changed, 19 insertions, 0 deletions
diff --git a/highlevelil.cpp b/highlevelil.cpp
index 5bebcca8..aab49ea0 100644
--- a/highlevelil.cpp
+++ b/highlevelil.cpp
@@ -428,6 +428,25 @@ void HighLevelILFunction::Finalize()
}
+void HighLevelILFunction::GenerateSSAForm(const set<Variable>& aliases)
+{
+ BNVariable* aliasList = new BNVariable[aliases.size()];
+
+ size_t i = 0;
+ for (auto& alias : aliases)
+ {
+ aliasList[i].type = alias.type;
+ aliasList[i].index = alias.index;
+ aliasList[i].storage = alias.storage;
+ i++;
+ }
+
+ BNGenerateHighLevelILSSAForm(m_object, aliasList, aliases.size());
+
+ delete[] aliasList;
+}
+
+
vector<DisassemblyTextLine> HighLevelILFunction::GetExprText(ExprId expr, bool asFullAst, DisassemblySettings* settings)
{
size_t count;