Derechos de acceso y API Hooking

Iniciado por fary, 12 Septiembre 2012, 11:53 AM

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

fary

Que hay gente  :P

Bueno mi problema es el siguiente, en mi programa realizo dos hook a dos funciones, si realizo un hook solo me va perfecto pero si realizo los dos a la vez falla alguno. Llevo como 2 horas intentando ver el fallo he intentado todo lo que se me a ocurrido pero me sigue sin funcionar... el código es este:

Código (asm) [Seleccionar]
        invoke VirtualProtectEx,-1,[Procesar],6,PAGE_EXECUTE_READWRITE,addr oPerm

        mov eax,[Procesar]

        mov byte[eax],0x68      ; push
        inc eax
        mov dword[eax],mProcesar     ; direccion
        add eax,4
        mov byte[eax],0xC3     ; ret

        invoke VirtualProtectEx,-1,[Imprimir],6,PAGE_EXECUTE_READWRITE,addr oPerm

        mov eax,[Imprimir]

        mov byte[eax],0x68      ; push
        inc eax
        mov dword[eax],mImprimir     ; direccion
        add eax,4
        mov byte[eax],0xC3     ; ret 


echando un ojo desde OllyDbg me percate de que es la API VirtualProtectEx la que no da bien los permisos y falla al hookear pero no consigo saber porque... de igual forma seguro que a alguno de vosotros le a pasado lo mismo y sabe porque es.

un saludo!!
Un byte a la izquierda.

avesudra

#1
Hola mDrinky , yo no sé mucho de la api de windows pero , el -1 no es un handle válido creo yo ¿no? ¿o es que apunta al mismo proceso que la llama? En todo caso esto es lo que pone en la msdn para esa función.

hProcess [in]

   A handle to the process whose memory protection is to be changed. The handle must have the PROCESS_VM_OPERATION access right. For more information, see Process Security and Access Rights.

Código (asm) [Seleccionar]
invoke GetCurrentProcess ;Este devuelve el handle del proceso actual con todos los permisos(PROCESS_ALL_ACCESS)
mov [handle],eax ;No se si esto es válido porque esto no es masm32 ¿verdad?

EDITO: No había leido bien el problema , igual es por eso , no tengo ni idea mDrinky
Regístrate en

fary

Hola Avesudra, con el -1 en esa API se indica que es el mismo proceso, no lo pone en la msdn, pero es asi  :rolleyes:

saludos.
Un byte a la izquierda.

avesudra

Pues ni idea , estuve buscando por google pero nada de nada. Una pregunta ese código está en fasm ¿no?
Regístrate en

fary

Cita de: avesudra en 12 Septiembre 2012, 16:02 PM
Pues ni idea , estuve buscando por google pero nada de nada. Una pregunta ese código está en fasm ¿no?

Sí, con el lo ensamblo.
Un byte a la izquierda.


[Zero]

Con VirtualProtect te funciona? Si no es así seguramente el error se dé antes, o sea un error de lógica, los 2 hooks redirigen al mismo código? Cada uno de esos hooks te funciona bien por separado?

Saludos

"El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche

fary

Ya lo arregle, el error de daba por ahí como bien dice Zero, pero la que fallaba era VirtualProtectEx  :P. Ya he terminado mi juguete!

[youtube=425,350]

http://www.youtube.com/watch?v=PaqGUNp_QV4&feature=youtu.be[/youtube]

saludos.
Un byte a la izquierda.

.:UND3R:.

Cita de: mDrinky en 13 Septiembre 2012, 08:59 AM
Ya lo arregle, el error de daba por ahí como bien dice Zero, pero la que fallaba era VirtualProtectEx  :P. Ya he terminado mi juguete!

[youtube=425,350]

http://www.youtube.com/watch?v=PaqGUNp_QV4&feature=youtu.be[/youtube]

saludos.

Interesante proyecto, me surge una duda a ver si me guías, Cómo lograste insertar texto dentro del texto?, saludos.

Solicitudes de crack, keygen, serial solo a través de mensajes privados (PM)

fary

Perdón Under por no contestar antes, no me habia fijado que habías respondido!!
Te refieres al texto dentro de la pantalla del juego, no?

Usando las funciones nativas del juego, ya que el juego imprimia de forma normal los datos cuando solicitabas al servidor información.

un saludo.
Un byte a la izquierda.