about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--example/asm/shellcode.py9
-rw-r--r--example/jitter/unpack_upx.py2
-rw-r--r--miasm2/core/bin_stream.py6
-rw-r--r--miasm2/jitter/loader/elf.py6
-rw-r--r--miasm2/jitter/loader/pe.py2
5 files changed, 15 insertions, 10 deletions
diff --git a/example/asm/shellcode.py b/example/asm/shellcode.py
index 253386b5..ce84238a 100644
--- a/example/asm/shellcode.py
+++ b/example/asm/shellcode.py
@@ -96,8 +96,13 @@ if args.encrypt:
     patches = new_patches
 
 print patches
-for offset, raw in patches.items():
-    virt[offset] = raw
+if isinstance(virt, StrPatchwork):
+    for offset, raw in patches.items():
+        virt[offset] = raw
+else:
+    for offset, raw in patches.items():
+        virt.set(offset, raw)
+
 
 # Produce output
 open(args.output, 'wb').write(str(output))
diff --git a/example/jitter/unpack_upx.py b/example/jitter/unpack_upx.py
index 58507506..c27ecdd8 100644
--- a/example/jitter/unpack_upx.py
+++ b/example/jitter/unpack_upx.py
@@ -86,7 +86,7 @@ def update_binary(jitter):
     logging.info('updating binary')
     for s in sb.pe.SHList:
         sdata = sb.jitter.vm.get_mem(sb.pe.rva2virt(s.addr), s.rawsize)
-        sb.pe.virt[sb.pe.rva2virt(s.addr)] = sdata
+        sb.pe.rva.set(s.addr, sdata)
 
     # Stop execution
     jitter.run = False
diff --git a/miasm2/core/bin_stream.py b/miasm2/core/bin_stream.py
index 6e158061..e02523d8 100644
--- a/miasm2/core/bin_stream.py
+++ b/miasm2/core/bin_stream.py
@@ -142,13 +142,13 @@ class bin_stream_container(bin_stream):
         if self.offset + l > self.l:
             raise IOError("not enough bytes")
         self.offset += l
-        return self.bin(self.offset - l, self.offset)
+        return self.bin.get(self.offset - l, self.offset)
 
     def getbytes(self, start, l=1):
-        return self.bin(start, start + l)
+        return self.bin.get(start, start + l)
 
     def __str__(self):
-        out = self.bin(self.offset, self.l)
+        out = self.bin.get(self.offset, self.offset + self.l)
         return out
 
     def setoffset(self, val):
diff --git a/miasm2/jitter/loader/elf.py b/miasm2/jitter/loader/elf.py
index b3946000..12670977 100644
--- a/miasm2/jitter/loader/elf.py
+++ b/miasm2/jitter/loader/elf.py
@@ -57,10 +57,10 @@ def vm_load_elf(vm, fdata, **kargs):
     i = interval()
     all_data = {}
     for p in e.ph.phlist:
-        if p.ph.type != 1:
+        if p.ph.type != elf_csts.PT_LOAD:
             continue
-        log.debug('0x%x 0x%x 0x%x 0x%x', p.ph.vaddr, p.ph.memsz, p.ph.offset,
-                  p.ph.filesz)
+        log.debug('0x%x 0x%x 0x%x 0x%x 0x%x', p.ph.vaddr, p.ph.memsz, p.ph.offset,
+                  p.ph.filesz, p.ph.type)
         data_o = e._content[p.ph.offset:p.ph.offset + p.ph.filesz]
         addr_o = p.ph.vaddr
         a_addr = addr_o & ~0xFFF
diff --git a/miasm2/jitter/loader/pe.py b/miasm2/jitter/loader/pe.py
index 32d92164..168a5e7d 100644
--- a/miasm2/jitter/loader/pe.py
+++ b/miasm2/jitter/loader/pe.py
@@ -70,7 +70,7 @@ def is_redirected_export(e, ad):
     # test is ad points to code or dll name
     out = ''
     for i in xrange(0x200):
-        c = e.virt(ad + i)
+        c = e.virt.get(ad + i)
         if c == "\x00":
             break
         out += c