Foro de elhacker.net

Programación => Ingeniería Inversa => Mensaje iniciado por: ViejoMajara en 17 Diciembre 2014, 09:39 am



Título: Relación entre Hex Dump y Disassembly
Publicado por: ViejoMajara en 17 Diciembre 2014, 09:39 am
¡Hola!

Voy por la lección 33 de la Introducción al Cracking con OLLY del Maestro Narvaja y trabajando con alguna otra cosilla y aún no termino de entender, en la ventana de Desensamblado, la relación existente entre la columna de Hex Dump y la de Disassembly.

Yo pensaba que lo que aparece en Hex Dump traducido a binario es lo que se pasa al procesador pero, por ejemplo, leo esta línea:

Address 0040135C; Hex Dump E8 D9000000; Disassembly CALL 0040143A; Comment MessageBoxA.

E8 equivale a CALL, pero ¿qué tiene que ver D9000000 con 0040143A?

No sé si esto tiene importancia, pero si es sencillo de explicar y de entender os agradecería una respuesta.

Estas preguntas de novato ¿Habría que plantearlas en otro foro?

Saludos



Título: Re: Relación entre Hex Dump y Disassembly
Publicado por: MCKSys Argentina en 17 Diciembre 2014, 15:54 pm
Voy por la lección 33 de la Introducción al Cracking con OLLY del Maestro Narvaja y trabajando con alguna otra cosilla y aún no termino de entender, en la ventana de Desensamblado, la relación existente entre la columna de Hex Dump y la de Disassembly.

Excelente!  ;)

Address 0040135C; Hex Dump E8 D9000000; Disassembly CALL 0040143A; Comment MessageBoxA.

E8 equivale a CALL, pero ¿qué tiene que ver D9000000 con 0040143A?

No sé si esto tiene importancia, pero si es sencillo de explicar y de entender os agradecería una respuesta.

E8 es el opcode de la instruccion CALL como bien has puesto, Ahora, los CALLs, son relativos a la posición en que se encuentran (al igual que los JMPs). Entonces, el argumento de la instrucción (el D9000000) es un offset al lugar donde llama/salta el CALL. Dicho argumento se interpreta con signo, por lo que si el valor es negativo, salta hacia arriba (osea, a una dirección menor), de lo contrario hacia abajo (dirección mayor).

En otras palabras, el valor 0xD9000000 es la distancia desde el CALL hasta la instruccion a la que salta.

Por esta pregunta, veo que te falta leer un poco acerca de las instrucciones ASM. Pero no te preocupes, pues todos hemos pasado por este tema.

Estas preguntas de novato ¿Habría que plantearlas en otro foro?

Aquí, estás en el lugar correcto.   :)

Saludos!


Título: Re: Relación entre Hex Dump y Disassembly
Publicado por: ViejoMajara en 19 Diciembre 2014, 08:30 am
¡Hola!

Aclarado perfectamente el asunto.

Muchas gracias.