Darle la vuelta a una direccion de memoria.

Iniciado por 0xDani, 2 Diciembre 2012, 18:33 PM

0 Miembros y 1 Visitante están viendo este tema.

0xDani

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 (asm) [Seleccionar]
push 0x80484ee

Genera:
Código (asm) [Seleccionar]
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?
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM

Karcrack

Esto se conoce como Endianness. Lo forma más fácil de invertirla es usando la instrucción bswap.

Saludos :)

0xDani

Gracias, no sabia que existia una instruccion asi.
I keep searching for something that I never seem to find, but maybe I won't, because I left it all behind!

I code for $$$
Hago trabajos en C/C++
Contactar por PM