MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / DisassemblyTextRenderer

Class DisassemblyTextRenderer

python/function.py:3580–3857  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

3578
3579
3580class DisassemblyTextRenderer:
3581 def __init__(
3582 self, func: Optional[AnyFunctionType] = None, settings: Optional['DisassemblySettings'] = None,
3583 handle: Optional[core.BNDisassemblySettings] = None
3584 ):
3585 if handle is None:
3586 if func is None:
3587 raise ValueError("function required for disassembly")
3588 settings_obj = None
3589 if settings is not None:
3590 settings_obj = settings.handle
3591 if isinstance(func, Function):
3592 self.handle = core.BNCreateDisassemblyTextRenderer(func.handle, settings_obj)
3593 elif isinstance(func, lowlevelil.LowLevelILFunction):
3594 self.handle = core.BNCreateLowLevelILDisassemblyTextRenderer(func.handle, settings_obj)
3595 elif isinstance(func, mediumlevelil.MediumLevelILFunction):
3596 self.handle = core.BNCreateMediumLevelILDisassemblyTextRenderer(func.handle, settings_obj)
3597 elif isinstance(func, highlevelil.HighLevelILFunction):
3598 self.handle = core.BNCreateHighLevelILDisassemblyTextRenderer(func.handle, settings_obj)
3599 else:
3600 raise TypeError("invalid function object")
3601 else:
3602 self.handle = handle
3603
3604 def __del__(self):
3605 if core is not None:
3606 core.BNFreeDisassemblyTextRenderer(self.handle)
3607
3608 @property
3609 def function(self) -> 'Function':
3610 return Function(handle=core.BNGetDisassemblyTextRendererFunction(self.handle))
3611
3612 @property
3613 def il_function(self) -> Optional[ILFunctionType]:
3614 llil = core.BNGetDisassemblyTextRendererLowLevelILFunction(self.handle)
3615 if llil:
3616 return lowlevelil.LowLevelILFunction(handle=llil)
3617 mlil = core.BNGetDisassemblyTextRendererMediumLevelILFunction(self.handle)
3618 if mlil:
3619 return mediumlevelil.MediumLevelILFunction(handle=mlil)
3620 hlil = core.BNGetDisassemblyTextRendererHighLevelILFunction(self.handle)
3621 if hlil:
3622 return highlevelil.HighLevelILFunction(handle=hlil)
3623 return None
3624
3625 @property
3626 def basic_block(self) -> Optional['basicblock.BasicBlock']:
3627 result = core.BNGetDisassemblyTextRendererBasicBlock(self.handle)
3628 if result:
3629 return basicblock.BasicBlock._from_core_block(handle=result)
3630 return None
3631
3632 @basic_block.setter
3633 def basic_block(self, block: Optional['basicblock.BasicBlock']) -> None:
3634 if block is not None:
3635 core.BNSetDisassemblyTextRendererBasicBlock(self.handle, block.handle)
3636 else:
3637 core.BNSetDisassemblyTextRendererBasicBlock(self.handle, None)

Callers 2

generateLinesMethod · 0.90
populate_nodesMethod · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected