at master 2.1 kB view raw
1From fd2a6b2899c8b836a086b43ec9ebccf726f71ec4 Mon Sep 17 00:00:00 2001 2From: Moritz Sanft <58110325+msanft@users.noreply.github.com> 3Date: Sat, 11 May 2024 11:04:19 +0200 4Subject: [PATCH] core: remove IDAPython dependency 5 6Signed-off-by: Moritz Sanft <58110325+msanft@users.noreply.github.com> 7--- 8 miasm/core/bin_stream_ida.py | 45 ------------------------------------ 9 1 file changed, 45 deletions(-) 10 delete mode 100644 miasm/core/bin_stream_ida.py 11 12diff --git a/miasm/core/bin_stream_ida.py b/miasm/core/bin_stream_ida.py 13deleted file mode 100644 14index 15bd9d8b..00000000 15--- a/miasm/core/bin_stream_ida.py 16+++ /dev/null 17@@ -1,45 +0,0 @@ 18-from builtins import range 19-from idc import get_wide_byte, get_segm_end 20-from idautils import Segments 21-from idaapi import is_mapped 22- 23-from miasm.core.utils import int_to_byte 24-from miasm.core.bin_stream import bin_stream_str 25- 26- 27-class bin_stream_ida(bin_stream_str): 28- """ 29- bin_stream implementation for IDA 30- 31- Don't generate xrange using address computation: 32- It can raise error on overflow 7FFFFFFF with 32 bit python 33- """ 34- def _getbytes(self, start, l=1): 35- out = [] 36- for ad in range(l): 37- offset = ad + start + self.base_address 38- if not is_mapped(offset): 39- raise IOError(f"not enough bytes @ offset {offset:x}") 40- out.append(int_to_byte(get_wide_byte(offset))) 41- return b''.join(out) 42- 43- def readbs(self, l=1): 44- if self.offset + l > self.l: 45- raise IOError("not enough bytes") 46- content = self.getbytes(self.offset) 47- self.offset += l 48- return content 49- 50- def __str__(self): 51- raise NotImplementedError('Not fully functional') 52- 53- def setoffset(self, val): 54- self.offset = val 55- 56- def getlen(self): 57- # Lazy version 58- if hasattr(self, "_getlen"): 59- return self._getlen 60- max_addr = get_segm_end(list(Segments())[-1] - (self.offset - self.base_address)) 61- self._getlen = max_addr 62- return max_addr 63-- 642.44.0 65