From c3ec3f8b7357a86563dcc8d30e2f4464b7426b10 Mon Sep 17 00:00:00 2001 From: rdbo Date: Mon, 8 Jan 2024 02:45:00 -0300 Subject: [PATCH] fixed unhook code crashing due to bad argument parsing --- bindings/python/src/libmem/_libmem/libmem-py.c | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/bindings/python/src/libmem/_libmem/libmem-py.c b/bindings/python/src/libmem/_libmem/libmem-py.c index 03bb90be..52f57b3c 100644 --- a/bindings/python/src/libmem/_libmem/libmem-py.c +++ b/bindings/python/src/libmem/_libmem/libmem-py.c @@ -1286,16 +1286,12 @@ py_LM_UnhookCode(PyObject *self, PyObject *args) { lm_address_t from; - PyObject *pytrampoline; lm_address_t trampoline; lm_size_t size; - if (!PyArg_ParseTuple(args, "k(kk)", &from, &pytrampoline)) + if (!PyArg_ParseTuple(args, "k(kk)", &from, &trampoline, &size)) return NULL; - trampoline = (lm_address_t)PyLong_AsSize_t(PyTuple_GetItem(pytrampoline, 0)); - size = (lm_size_t)PyLong_AsSize_t(PyTuple_GetItem(pytrampoline, 1)); - if (!LM_UnhookCode(from, trampoline, size)) Py_RETURN_FALSE; @@ -1310,16 +1306,12 @@ py_LM_UnhookCodeEx(PyObject *self, { py_lm_process_obj *pyproc; lm_address_t from; - PyObject *pytrampoline; lm_address_t trampoline; lm_size_t size; - if (!PyArg_ParseTuple(args, "Ok(kk)", &pyproc, &from, &pytrampoline)) + if (!PyArg_ParseTuple(args, "Ok(kk)", &pyproc, &from, &trampoline, &size)) return NULL; - trampoline = (lm_address_t)PyLong_AsSize_t(PyTuple_GetItem(pytrampoline, 0)); - size = (lm_size_t)PyLong_AsSize_t(PyTuple_GetItem(pytrampoline, 1)); - if (!LM_UnhookCodeEx(&pyproc->proc, from, trampoline, size)) Py_RETURN_FALSE;