Título: [?] call que no llama a quien debería (AT&T) Publicado por: Nork en 26 Mayo 2009, 19:43 pm Hola, aquí estoy otra vez con el jodido ASM y la sintaxis AT&T :P 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
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 :huh: 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 xD S4ludos y gracias!! :-* Título: Re: [?] call que no llama a quien debería (AT&T) Publicado por: Eternal Idol en 26 Mayo 2009, 21:19 pm Mmm ... ¿Lo depuraste? ¿No estaras por casualidad tomando el contenido al que apunta eax para despues llamarlo?
Título: Re: [?] call que no llama a quien debería (AT&T) Publicado por: Arkangel_0x7C5 en 26 Mayo 2009, 21:22 pm es por los () que le dicen que lea el contenido de esa direccion y salte a el valor leido.
En fijate en el code que te pase, el call lo hacia asi: Código
saludos Título: Re: [?] call que no llama a quien debería (AT&T) Publicado por: Nork en 26 Mayo 2009, 21:40 pm es por los () que le dicen que lea el contenido de esa direccion y salte a el valor leido. En fijate en el code que te pase, el call lo hacia asi: Código
saludos Sí, sí también lo he probado tal y como dices sólo que lo probé con los "()" y lo dejé así xD El problema igualmente es el mismo, un error de memoria (aunque en diferente posición según ponga los () o no) Mmm ... ¿Lo depuraste? ¿No estaras por casualidad tomando el contenido al que apunta eax para despues llamarlo? Pues la verdad no se como comprobar eso :-\ Título: Re: [?] call que no llama a quien debería (AT&T) Publicado por: Eternal Idol en 26 Mayo 2009, 21:53 pm Por lo que comento Arcangel_0x7C5 es exactamente lo que te dije (la sintaxis de AT&T no la uso jamas) y que sean dos errores de memoria no importa ya que no son el mismo seguramente. Podes usar gdb para depurar tu programa.
Título: Re: [?] call que no llama a quien debería (AT&T) Publicado por: Nork en 26 Mayo 2009, 21:58 pm Por lo que comento Arcangel_0x7C5 es exactamente lo que te dije (la sintaxis de AT&T no la uso jamas) y que sean dos errores de memoria no importa ya que no son el mismo seguramente. Podes usar gdb para depurar tu programa. Voy a intentar depurarlo a ver si saco algo o si no tendré que enviar un correo a Stallman que por lo visto los contesta y a ver si sabe que pasa xD Gracias! |