summaryrefslogtreecommitdiff
path: root/python/variable.py
diff options
context:
space:
mode:
authorRusty Wagner <rusty.wagner@gmail.com>2024-08-22 12:55:49 -0600
committerRusty Wagner <rusty.wagner@gmail.com>2024-10-21 13:56:55 -0400
commitd8e3001e535fad178c621ff07418f81f25123dc4 (patch)
tree54c03cef2f0bdfd9a3b6df4334c81becb63e4993 /python/variable.py
parent0e281a30d73c0f31ef9442fef0346779164231ad (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.py10
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: