Tengo un puntero a una función (que obtengo de un vtable) y deseo editar la función cambiando el código del ensamblador (cambiando algunos bytes) en tiempo de ejecución. Intenté usar memset y también intenté asignar el nuevo valor directamente (algo así como mPtr [0] = X, mPtr [1] = Y etc.) pero sigo recibiendo errores de segmentación. ¿Cómo puedo cambiar el código?Cambio de código en tiempo de ejecución
(estoy usando C++)
sistema operativo es Windows.
¿Qué sistema operativo? – elcuco
¿Por qué estás tratando de hacer esto? seguramente la única razón es reducir la cantidad de memoria de trabajo ya que puede cargar secciones de código desde el disco. Si explica lo que está tratando de hacer, tal vez podamos ayudarlo. – thecoshman
Código de auto-modificación es difícil. Este SO se escribió completamente en ensamblador porque ningún lenguaje de nivel medio tiene sintaxis para permitir el código de modificación automática: http://valerieaurora.org/synthesis/SynthesisOS/abs.html. –