Título: [Solucionado] Ayuda con ASM inline Publicado por: saawyeer en 28 Marzo 2013, 00:26 am Bueno tengo el siguiente problema, he realizado con éxito un salto (jmp) en una dirección de un proceso:
Código: DWORD dwDireccion = 0x00692B0C; Se inyectan correctamente las instrucciones pero acá esta mi problema, las instrucciones originales de la dirección antes de ser inyectadas eran 6 bytes en la memoria pero con la inyección anterior equivale a mas de 6 bytes, lo que origina que se cuelgue el programa: Instrucciones originales de 6 bytes: Código: 0042276B - 29 83 64 04 00 00 - sub [ebx+00000464],eax Se podría hacer con un simple salto; Pero da error el copilador, se vería en memoria asi: Código: __asm Son solo 5 bytes en la memoria le agregamos 1 mas con un nop y tendríamos el salto correctamente: Código: 00540967 - E9 A0 21 15 00 - jmp 00692B0C Hay alguna forma de hacer el salto sin ocupar mas de 6 bytes? Agradecería mucho sus respuestas o comentarios. Título: Re: Ayuda con ASM inline Publicado por: BloodSharp en 28 Marzo 2013, 03:00 am Son solo 5 bytes en la memoria le agregamos 1 mas con un nop y tendríamos el salto correctamente: Código: 00540967 - E9 A0 21 15 00 - jmp 00692B0C Hay alguna forma de hacer el salto sin ocupar mas de 6 bytes? Agradecería mucho sus respuestas o comentarios. Si te referís a otra manera de hacer un salto con 6 bytes a lo sumo si la hay, aún así te estás respondiendo tu misma pregunta un par de renglones arriba... :P B# Título: Re: Ayuda con ASM inline Publicado por: x64core en 28 Marzo 2013, 03:18 am Bueno tengo el siguiente problema, he realizado con éxito un salto (jmp) en una dirección de un proceso: Código: DWORD dwDireccion = 0x00692B0C; Se inyectan correctamente las instrucciones pero acá esta mi problema, las instrucciones originales de la dirección antes de ser inyectadas eran 6 bytes en la memoria pero con la inyección anterior equivale a mas de 6 bytes, lo que origina que se cuelgue el programa: Instrucciones originales de 6 bytes: Código: 0042276B - 29 83 64 04 00 00 - sub [ebx+00000464],eax Se podría hacer con un simple salto; Pero da error el copilador, se vería en memoria asi: Código: __asm Son solo 5 bytes en la memoria le agregamos 1 mas con un nop y tendríamos el salto correctamente: Código: 00540967 - E9 A0 21 15 00 - jmp 00692B0C Hay alguna forma de hacer el salto sin ocupar mas de 6 bytes? Agradecería mucho sus respuestas o comentarios. Código: jmp dword ptr [0x80808080] Título: Re: Ayuda con ASM inline Publicado por: BloodSharp en 28 Marzo 2013, 03:42 am La alternativa con 6 bytes: (que me falto agregar :P)
Código
B# Título: Re: Ayuda con ASM inline Publicado por: saawyeer en 28 Marzo 2013, 06:28 am @IEAX
@x64Core Muchas gracias por sus respuestas, ya solucione el problema :) |