about summary refs log tree commit diff stats
path: root/test/jitter/vm_mngr.py
diff options
context:
space:
mode:
authorPierre Graux <pierre.graux@ensimag.grenoble-inp.fr>2016-08-31 14:09:40 +0200
committerPierre Graux <pierre.graux@ensimag.grenoble-inp.fr>2016-09-01 12:28:35 +0200
commit4c019ff2a7d53e3b8b1d74f6bdae6a7523d7871b (patch)
treecedcef86bdc3c18b100923aa6a82201e2f9f8219 /test/jitter/vm_mngr.py
parent6d518de0330d3ffecffb138fd1d94b258052e0d0 (diff)
downloadmiasm-4c019ff2a7d53e3b8b1d74f6bdae6a7523d7871b.tar.gz
miasm-4c019ff2a7d53e3b8b1d74f6bdae6a7523d7871b.zip
Add a way to retrieve memory access right
Diffstat (limited to 'test/jitter/vm_mngr.py')
-rw-r--r--test/jitter/vm_mngr.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/test/jitter/vm_mngr.py b/test/jitter/vm_mngr.py
new file mode 100644
index 00000000..b2b7336b
--- /dev/null
+++ b/test/jitter/vm_mngr.py
@@ -0,0 +1,26 @@
+from miasm2.jitter.csts import PAGE_READ, PAGE_WRITE
+from miasm2.analysis.machine import Machine
+
+myjit = Machine("x86_32").jitter()
+
+base_addr = 0x13371337
+page_size = 0x1000
+data = "\x00" * page_size
+rights = [0, PAGE_READ, PAGE_WRITE, PAGE_READ|PAGE_WRITE]
+shuffled_rights = [PAGE_READ, 0, PAGE_READ|PAGE_WRITE, PAGE_WRITE]
+
+# Add pages
+for i, access_right in enumerate(rights):
+    myjit.vm.add_memory_page(base_addr + i * page_size, access_right, data)
+
+# Check rights
+for i, access_right in enumerate(rights):
+    assert myjit.vm.get_mem_access(base_addr + i * page_size) == access_right
+
+# Modify rights
+for i, access_right in enumerate(shuffled_rights):
+    myjit.vm.set_mem_access(base_addr + i * page_size, access_right)
+
+# Check for modification
+for i, access_right in enumerate(shuffled_rights):
+    assert myjit.vm.get_mem_access(base_addr + i * page_size) == access_right