Foro de elhacker.net

Seguridad Informática => Análisis y Diseño de Malware => Mensaje iniciado por: 0xDani en 2 Diciembre 2012, 18:33 pm



Título: Darle la vuelta a una direccion de memoria.
Publicado por: 0xDani en 2 Diciembre 2012, 18:33 pm
Bueno estoy haciendo un pequeño crypter, y tengo que hardcodear un push. Tengo que meter en la pila un puntero al entrypoint del ejecutable, y desensamblando un programa simple para ver cual es el opcode de un push me doy cuenta de que detras del opcode (0x68) se pone el valor que se quiere empujar, pero con los bytes al reves. Entonces un codigo simple como este:
Código
  1. push 0x80484ee

Genera:
Código
  1. 68 ee 84 04 08

Entonces como puedo, en C o en ASM, darle la vuelta a una direccion de memoria para hardcodear un push?


Título: Re: Darle la vuelta a una direccion de memoria.
Publicado por: Karcrack en 2 Diciembre 2012, 19:26 pm
Esto se conoce como Endianness (http://en.wikipedia.org/wiki/Endianness). Lo forma más fácil de invertirla es usando la instrucción bswap.

Saludos :)


Título: Re: Darle la vuelta a una direccion de memoria.
Publicado por: 0xDani en 2 Diciembre 2012, 21:02 pm
Gracias, no sabia que existia una instruccion asi.