diff options
| author | Rusty Wagner <rusty.wagner@gmail.com> | 2024-08-22 12:55:49 -0600 |
|---|---|---|
| committer | Rusty Wagner <rusty.wagner@gmail.com> | 2024-10-21 13:56:55 -0400 |
| commit | d8e3001e535fad178c621ff07418f81f25123dc4 (patch) | |
| tree | 54c03cef2f0bdfd9a3b6df4334c81becb63e4993 /python/variable.py | |
| parent | 0e281a30d73c0f31ef9442fef0346779164231ad (diff) | |
Allow multiple high level representations for display, add Pseudo Rust and a Pseudo Python example plugin
Diffstat (limited to 'python/variable.py')
| -rw-r--r-- | python/variable.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/python/variable.py b/python/variable.py index 8ed3f545..7b4121bf 100644 --- a/python/variable.py +++ b/python/variable.py @@ -20,14 +20,14 @@ # IN THE SOFTWARE. import ctypes -from typing import List, Generator, Optional, Union, Set, Dict +from typing import List, Generator, Optional, Union, Set, Dict, Tuple from dataclasses import dataclass import binaryninja from . import _binaryninjacore as core from . import databuffer from . import decorators -from .enums import RegisterValueType, VariableSourceType, DeadStoreElimination, FunctionGraphType +from .enums import RegisterValueType, VariableSourceType, DeadStoreElimination, FunctionGraphType, BuiltinType FunctionOrILFunction = Union["binaryninja.function.Function", "binaryninja.lowlevelil.LowLevelILFunction", "binaryninja.mediumlevelil.MediumLevelILFunction", @@ -223,6 +223,12 @@ class ConstantData(RegisterValue): raise ValueError(f"ConstantData requires a Function instance: {self.size}") return self.function.get_constant_data(self.type, self.value, self.size) + @property + def data_and_builtin(self) -> Tuple[databuffer.DataBuffer, BuiltinType]: + if self.function is None: + raise ValueError(f"ConstantData requires a Function instance: {self.size}") + return self.function.get_constant_data_and_builtin(self.type, self.value, self.size) + @dataclass(frozen=True) class ValueRange: |
