From fd2a6b2899c8b836a086b43ec9ebccf726f71ec4 Mon Sep 17 00:00:00 2001 From: Moritz Sanft <58110325+msanft@users.noreply.github.com> Date: Sat, 11 May 2024 11:04:19 +0200 Subject: [PATCH] core: remove IDAPython dependency Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com> --- miasm/core/bin_stream_ida.py | 45 ------------------------------------ 1 file changed, 45 deletions(-) delete mode 100644 miasm/core/bin_stream_ida.py diff --git a/miasm/core/bin_stream_ida.py b/miasm/core/bin_stream_ida.py deleted file mode 100644 index 15bd9d8b..00000000 --- a/miasm/core/bin_stream_ida.py +++ /dev/null @@ -1,45 +0,0 @@ -from builtins import range -from idc import get_wide_byte, get_segm_end -from idautils import Segments -from idaapi import is_mapped - -from miasm.core.utils import int_to_byte -from miasm.core.bin_stream import bin_stream_str - - -class bin_stream_ida(bin_stream_str): - """ - bin_stream implementation for IDA - - Don't generate xrange using address computation: - It can raise error on overflow 7FFFFFFF with 32 bit python - """ - def _getbytes(self, start, l=1): - out = [] - for ad in range(l): - offset = ad + start + self.base_address - if not is_mapped(offset): - raise IOError(f"not enough bytes @ offset {offset:x}") - out.append(int_to_byte(get_wide_byte(offset))) - return b''.join(out) - - def readbs(self, l=1): - if self.offset + l > self.l: - raise IOError("not enough bytes") - content = self.getbytes(self.offset) - self.offset += l - return content - - def __str__(self): - raise NotImplementedError('Not fully functional') - - def setoffset(self, val): - self.offset = val - - def getlen(self): - # Lazy version - if hasattr(self, "_getlen"): - return self._getlen - max_addr = get_segm_end(list(Segments())[-1] - (self.offset - self.base_address)) - self._getlen = max_addr - return max_addr -- 2.44.0