From 64797d7c23824a991fe6285a6a3bb0dcee2dd495 Mon Sep 17 00:00:00 2001 From: Peter LaFosse Date: Wed, 27 Oct 2021 07:33:08 -0400 Subject: Add IL class heirarchy graph report --- python/highlevelil.py | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'python/highlevelil.py') diff --git a/python/highlevelil.py b/python/highlevelil.py index 0ae927e4..c8751c8f 100644 --- a/python/highlevelil.py +++ b/python/highlevelil.py @@ -37,6 +37,7 @@ from . import types from . import highlight from . import flowgraph from . import variable +from .interaction import show_graph_report from .commonil import (ILInstruction, Call, Tailcall, Syscall, Comparison, Signed, UnaryOperation, BinaryOperation, SSA, Phi, Loop, ControlFlow, Memory, Constant, Arithmetic, DoublePrecision, Terminal, FloatingPoint) @@ -261,6 +262,14 @@ class HighLevelILInstruction(ILInstruction): HighLevelILOperation.HLIL_FCMP_UO: [("left", "expr"), ("right", "expr")] } + @staticmethod + def show_hlil_hierarchy(): + graph = flowgraph.FlowGraph() + nodes = {} + for instruction in ILInstruction.values(): + instruction.add_subgraph(graph, nodes) + show_graph_report("HLIL Class Hierarchy Graph", graph) + @classmethod def create(cls, func:'HighLevelILFunction', expr_index:ExpressionIndex, as_ast:bool=True, instr_index:Optional[InstructionIndex]=None) -> 'HighLevelILInstruction': assert func.arch is not None, "Attempted to create IL instruction with function missing an Architecture" -- cgit v1.3.1