diff options
| author | serpilliere <serpilliere@users.noreply.github.com> | 2014-12-04 08:25:57 +0100 |
|---|---|---|
| committer | serpilliere <serpilliere@users.noreply.github.com> | 2014-12-04 08:25:57 +0100 |
| commit | f1ef12bb57495d01281bde28869134452e598af4 (patch) | |
| tree | 93d4acc39b1d57cee195aa3f587ff636924889ee /miasm2/core/bin_stream.py | |
| parent | e52881b8dee1dbbf6c09c03fbc738d5ac89fe811 (diff) | |
| parent | 2ce28c9d3ac0b20b1b6ceb19ddccdac3f187b679 (diff) | |
| download | miasm-f1ef12bb57495d01281bde28869134452e598af4.tar.gz miasm-f1ef12bb57495d01281bde28869134452e598af4.zip | |
Merge pull request #13 from commial/refactoring
Refactoring
Diffstat (limited to 'miasm2/core/bin_stream.py')
| -rw-r--r-- | miasm2/core/bin_stream.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/miasm2/core/bin_stream.py b/miasm2/core/bin_stream.py index 6dafecfd..48471b2f 100644 --- a/miasm2/core/bin_stream.py +++ b/miasm2/core/bin_stream.py @@ -171,3 +171,35 @@ class bin_stream_pe(bin_stream): class bin_stream_elf(bin_stream_pe): pass + + +class bin_stream_vm(bin_stream): + + def __init__(self, vm, offset=0L, base_offset=0L): + self.offset = offset + self.base_offset = base_offset + self.vm = vm + + def getlen(self): + return 0xFFFFFFFFFFFFFFFF + + def getbytes(self, start, l=1): + try: + s = self.vm.get_mem(start + self.base_offset, l) + except: + raise IOError('cannot get mem ad', hex(start)) + return s + + def readbs(self, l=1): + try: + s = self.vm.get_mem(self.offset + self.base_offset, l) + except: + raise IOError('cannot get mem ad', hex(self.offset)) + self.offset += l + return s + + def writebs(self, l=1): + raise ValueError('writebs unsupported') + + def setoffset(self, val): + self.offset = val |