From ae7753487db7e3cbd4d4c5b0f464a6868da42817 Mon Sep 17 00:00:00 2001 From: Rusty Wagner Date: Mon, 11 Jul 2016 04:44:55 -0400 Subject: Add APIs for querying data and code before address, and add settings parameter to linear disassembly position API --- python/__init__.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'python') diff --git a/python/__init__.py b/python/__init__.py index cdced08c..ab45dfc0 100644 --- a/python/__init__.py +++ b/python/__init__.py @@ -1551,8 +1551,19 @@ class BinaryView(object): def get_next_data_after(self, addr): return core.BNGetNextDataAfterAddress(self.handle, addr) - def get_linear_disassembly_position_at(self, addr): - pos = core.BNGetLinearDisassemblyPositionForAddress(self.handle, addr) + def get_previous_function_start_before(self, addr): + return core.BNGetPreviousFunctionStartBeforeAddress(self.handle, addr) + + def get_previous_start_of_data_before(self, addr): + return core.BNGetPreviousStartOfDataBeforeAddress(self.handle, addr) + + def get_previous_data_before(self, addr): + return core.BNGetPreviousDataBeforeAddress(self.handle, addr) + + def get_linear_disassembly_position_at(self, addr, settings): + if settings is not None: + settings = settings.handle + pos = core.BNGetLinearDisassemblyPositionForAddress(self.handle, addr, settings) func = None block = None if pos.function: @@ -1622,7 +1633,7 @@ class BinaryView(object): self.settings = settings def __iter__(self): - pos = self.view.get_linear_disassembly_position_at(self.view.start) + pos = self.view.get_linear_disassembly_position_at(self.view.start, self.settings) while True: lines = self.view.get_next_linear_disassembly_lines(pos, self.settings) if len(lines) == 0: -- cgit v1.3.1