about summary refs log tree commit diff stats
path: root/miasm2/jitter/vm_mngr_py.c
diff options
context:
space:
mode:
Diffstat (limited to 'miasm2/jitter/vm_mngr_py.c')
-rw-r--r--miasm2/jitter/vm_mngr_py.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/miasm2/jitter/vm_mngr_py.c b/miasm2/jitter/vm_mngr_py.c
index 5aece270..891d4459 100644
--- a/miasm2/jitter/vm_mngr_py.c
+++ b/miasm2/jitter/vm_mngr_py.c
@@ -195,6 +195,25 @@ PyObject* vm_set_mem(VmMngr* self, PyObject* args)
 
 
 
+PyObject* vm_get_mem_access(VmMngr* self, PyObject* args)
+{
+        PyObject *py_addr;
+        uint64_t page_addr;
+        struct memory_page_node * mpn;
+
+        if (!PyArg_ParseTuple(args, "O", &py_addr))
+                return NULL;
+
+        PyGetInt(py_addr, page_addr);
+
+        mpn = get_memory_page_from_address(&self->vm_mngr, page_addr, 1);
+        if (!mpn){
+                PyErr_SetString(PyExc_RuntimeError, "cannot find address");
+                return 0;
+        }
+      
+        return PyLong_FromUnsignedLongLong((uint64_t)mpn->access);
+}
 
 PyObject* vm_get_mem(VmMngr* self, PyObject* args)
 {
@@ -606,6 +625,8 @@ static PyMethodDef VmMngr_methods[] = {
 	 "X"},
 	{"add_code_bloc",(PyCFunction)vm_add_code_bloc, METH_VARARGS,
 	 "X"},
+	{"get_mem_access", (PyCFunction)vm_get_mem_access, METH_VARARGS,
+	 "X"},
 	{"get_mem", (PyCFunction)vm_get_mem, METH_VARARGS,
 	 "X"},
 	{"add_memory_page",(PyCFunction)vm_add_memory_page, METH_VARARGS,