summaryrefslogtreecommitdiff
path: root/python/examples/linear_mlil.py
diff options
context:
space:
mode:
Diffstat (limited to 'python/examples/linear_mlil.py')
-rw-r--r--python/examples/linear_mlil.py47
1 files changed, 33 insertions, 14 deletions
diff --git a/python/examples/linear_mlil.py b/python/examples/linear_mlil.py
index 9be79ad1..e4df1765 100644
--- a/python/examples/linear_mlil.py
+++ b/python/examples/linear_mlil.py
@@ -1,5 +1,5 @@
# Copyright (c) 2019-2022 Vector 35 Inc
-#
+#
# Permission is hereby granted, free of charge, to any person obtaining a copy
# of this software and associated documentation files (the "Software"), to
# deal in the Software without restriction, including without limitation the
@@ -46,16 +46,28 @@ class LinearMLILView(TokenizedTextView):
# Sort basic blocks by IL instruction index
blocks = il.basic_blocks
- blocks.sort(key = lambda block: block.start)
+ blocks.sort(key=lambda block: block.start)
# Function header
result = []
- result.append(LinearDisassemblyLine(LinearDisassemblyLineType.FunctionHeaderStartLineType,
- self.function, None, DisassemblyTextLine([], self.function.start)))
- result.append(LinearDisassemblyLine(LinearDisassemblyLineType.FunctionHeaderLineType,
- self.function, None, DisassemblyTextLine(self.function.type_tokens, self.function.start)))
- result.append(LinearDisassemblyLine(LinearDisassemblyLineType.FunctionHeaderEndLineType,
- self.function, None, DisassemblyTextLine([], self.function.start)))
+ result.append(
+ LinearDisassemblyLine(
+ LinearDisassemblyLineType.FunctionHeaderStartLineType, self.function, None,
+ DisassemblyTextLine([], self.function.start)
+ )
+ )
+ result.append(
+ LinearDisassemblyLine(
+ LinearDisassemblyLineType.FunctionHeaderLineType, self.function, None,
+ DisassemblyTextLine(self.function.type_tokens, self.function.start)
+ )
+ )
+ result.append(
+ LinearDisassemblyLine(
+ LinearDisassemblyLineType.FunctionHeaderEndLineType, self.function, None,
+ DisassemblyTextLine([], self.function.start)
+ )
+ )
# Display IL instructions in order
lastAddr = self.function.start
@@ -64,20 +76,27 @@ class LinearMLILView(TokenizedTextView):
for block in il:
if lastBlock is not None:
# Blank line between basic blocks
- result.append(LinearDisassemblyLine(LinearDisassemblyLineType.CodeDisassemblyLineType,
- self.function, block, DisassemblyTextLine([], lastAddr)))
+ result.append(
+ LinearDisassemblyLine(
+ LinearDisassemblyLineType.CodeDisassemblyLineType, self.function, block, DisassemblyTextLine([], lastAddr)
+ )
+ )
for i in block:
lines, length = renderer.get_disassembly_text(i.instr_index)
lastAddr = i.address
lineIndex = 0
for line in lines:
- result.append(LinearDisassemblyLine(LinearDisassemblyLineType.CodeDisassemblyLineType,
- self.function, block, line))
+ result.append(
+ LinearDisassemblyLine(LinearDisassemblyLineType.CodeDisassemblyLineType, self.function, block, line)
+ )
lineIndex += 1
lastBlock = block
- result.append(LinearDisassemblyLine(LinearDisassemblyLineType.FunctionEndLineType,
- self.function, lastBlock, DisassemblyTextLine([], lastAddr)))
+ result.append(
+ LinearDisassemblyLine(
+ LinearDisassemblyLineType.FunctionEndLineType, self.function, lastBlock, DisassemblyTextLine([], lastAddr)
+ )
+ )
return result