summaryrefslogtreecommitdiff
path: root/python
diff options
context:
space:
mode:
Diffstat (limited to 'python')
-rw-r--r--python/binaryview.py19
-rw-r--r--python/function.py13
2 files changed, 31 insertions, 1 deletions
diff --git a/python/binaryview.py b/python/binaryview.py
index c28e225a..fbbba6f9 100644
--- a/python/binaryview.py
+++ b/python/binaryview.py
@@ -105,6 +105,25 @@ class ReferenceSource:
return ReferenceSource(func, arch, ref.addr)
+ @property
+ def llil(self) -> Optional[lowlevelil.LowLevelILInstruction]:
+ """Returns the low level il instruction at the current location if one exists"""
+ if self.function is None or self.arch is None:
+ return None
+ return self.function.get_low_level_il_at(self.address, self.arch)
+
+ @property
+ def mlil(self) -> Optional[mediumlevelil.MediumLevelILInstruction]:
+ """Returns the medium level il instruction at the current location if one exists"""
+ llil = self.llil
+ return llil.mlil if llil is not None else None
+
+ @property
+ def hlil(self) -> Optional[highlevelil.HighLevelILInstruction]:
+ """Returns the high level il instruction at the current location if one exists"""
+ mlil = self.mlil
+ return mlil.hlil if mlil is not None else None
+
class BinaryDataNotification:
def __init__(self):
diff --git a/python/function.py b/python/function.py
index 4d859683..c43a5868 100644
--- a/python/function.py
+++ b/python/function.py
@@ -3120,7 +3120,7 @@ class Function:
``callers`` returns a list of functions that call this function
Does not point to the actual address where the call occurs, just the start of the function that contains the call.
- :return: List of start addresess for Functions that call this function
+ :return: List of start addresses for Functions that call this function
:rtype: list(int)
"""
functions = []
@@ -3130,6 +3130,17 @@ class Function:
return functions
@property
+ def caller_sites(self) -> Generator['ReferenceSource', None, None]:
+ """
+ ``caller_sites`` returns a list of ReferenceSource objects corresponding to the addresses
+ in functions which reference this function
+
+ :return: List of start ReferenceSource objects of the call sites to this function
+ :rtype: list(int)
+ """
+ return self.view.get_code_refs(self.start)
+
+ @property
def workflow(self):
handle = core.BNGetWorkflowForFunction(self.handle)
if handle is None: