El problema ahora es que el call llama a una zona de memoria que se la saca de la manga (se la inventa), el trocito de código es éste:Código
movl %0, %%eax"::"g"(tem) movl %%eax,%0"::"g"(buf) lcall *(%eax)"
tem es una variable que contiene la dirección de un buffer que posteriormente tengo que ejecutar, entonces le paso esa dirección a eax luego para asegurarme que eax contenía tal dirección lo comprobé pasando el valor que tenía a la variable buf y hasta aquí todo correcto, la memoria pues está en eax correctamente (supongamos que la memoria es 0x3d00000)... luego PORQUE cuando hago un call *(%eax) me salta con un error de memoria diciéndome que:
Citar
"La instrucción en "0x00405458" hace referencia a la memoria en "0xffffffff". La memoria no se puede "read".
0x00405458?? Pero si tenía que ser 0x3d00000
Alguien sabe que estoy haciendo mal? Porque vale que no sepa apenas nada de asm pero madre mía lo que me está dando por culo 4 lineas de nada xDS4ludos y gracias!!






Autor



En línea





