SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: Zirrosis en Miércoles 23 de Enero de 2008, 15:40

Título: Problema Hookeando Zwdeletefile
Publicado por: Zirrosis en Miércoles 23 de Enero de 2008, 15:40
Tengo un problema hookeando la ZwDeleteFile, e escrito un modulo de kernel basandome en ejemplos que encontre por la red y el codigo me hookea bien, ya que verificandolo con un "visor de SSDT" veo que si me hookea la dirección correctamente. El problema es que cuando llamo a la DeleteFile desde Ring3 no se llama a mi función, y no encuentro explicacion a eso. :blink:

La direcciónes me las da correctamente, y se hookea bien, pero a la hora de llamar a DeleteFile nunca aparece el emnsage de Me llaman por la pantalla del DebugView....alguna idea???  :unsure:

Un Saludo.

EI: saco el codigo, no es necesario y no quiero que prolifere.
Título: Re: Problema Hookeando Zwdeletefile
Publicado por: Eternal Idol en Miércoles 23 de Enero de 2008, 16:20
Primero y principal te recomiendo no usar hooks, especialmente para temas de filesystem, Microsoft provee maneras documentadas y correctas que pueden ser usadas en la amplia mayoria de los casos para no utilizar un hack como son los hooks.

Si comprobas el codigo de DeleteFileA/W vas a ver que no llaman a ZwDeleteFile (funcion solo disponible en XP y superiores por cierto) sino que hacen ZwOpenFile + ZwSetInformationFile para borrar un archivo. Consulta la documentacion para esta ultima y vas a ver como funciona, sino desensambla DeleteFileA/W.
Título: Re: Problema Hookeando Zwdeletefile
Publicado por: Zirrosis en Miércoles 23 de Enero de 2008, 16:29
Vaya, creia que DeleteFile llamaba directamente a ZwDeleteFile  :blink:

Tu como desensamblas las APIS a Ring3??? Olly o con el Windbg???

Muchas gracias Eternal ;)
Título: Re: Problema Hookeando Zwdeletefile
Publicado por: Eternal Idol en Miércoles 23 de Enero de 2008, 16:32
Cita de: "Zirrosis"
Vaya, creia que DeleteFile llamaba directamente a ZwDeleteFile  :blink:

No, el punto fundamental esta en que es una funcion nueva solo disponible desde XP en adelante.

Cita de: "Zirrosis"
Tu como desensamblas las APIS a Ring3??? Olly o con el Windbg???

Como trabajo principalmente en modo Kernel el Ollydbg no me serviria asi que uso el WinDbg siempre (ademas es mucho mas potente)  B)

Cita de: "Zirrosis"
Muchas gracias Eternal ;)

De nadas  :comp:
Título: Re: Problema Hookeando Zwdeletefile
Publicado por: Zirrosis en Miércoles 23 de Enero de 2008, 16:41
Cita de: "Eternal Idol"
Como trabajo principalmente en modo Kernel el Ollydbg no me serviria asi que uso el WinDbg siempre (ademas es mucho mas potente)  B)
Cierto, aunque para Ring3 el olly sirve, es que tengo mucha mas experiencia en el Olly que en el Windbg, y se que es mas potente, pero me cuesta adaptarme xDDD

Por cierto, para desensamblar es: u <api> en el Windbg, no???
Título: Re: Problema Hookeando Zwdeletefile
Publicado por: Eternal Idol en Miércoles 23 de Enero de 2008, 17:57
Cita de: "Zirrosis"
Cierto, aunque para Ring3 el olly sirve, es que tengo mucha mas experiencia en el Olly que en el Windbg, y se que es mas potente, pero me cuesta adaptarme xDDD

Por cierto, para desensamblar es: u <api> en el Windbg, no???
Si, en este caso por ejemplo:

u Kernel32!DeleteFileA
Título: Re: Problema Hookeando Zwdeletefile
Publicado por: Zirrosis en Miércoles 23 de Enero de 2008, 18:28
Me da lo siguiente :S


lkd> u Kernel32!DeleteFileA
Couldn't resolve error at 'Kernel32!DeleteFileA'
Título: Re: Problema Hookeando Zwdeletefile
Publicado por: Eternal Idol en Miércoles 23 de Enero de 2008, 18:39
Cita de: "Zirrosis"
Me da lo siguiente :S


lkd> u Kernel32!DeleteFileA
Couldn't resolve error at 'Kernel32!DeleteFileA'
Eso pasa por usar lkd ... no tenes que depurar el Kernel para una DLL de modo Usuario ...
Título: Re: Problema Hookeando Zwdeletefile
Publicado por: Zirrosis en Miércoles 23 de Enero de 2008, 18:45
Entonces donde voy????

PD: Ya te dije que no me adapto muy bien al Windbg todavia :S
Título: Re: Problema Hookeando Zwdeletefile
Publicado por: Eternal Idol en Miércoles 23 de Enero de 2008, 18:49
Cita de: "Zirrosis"
Entonces donde voy????

PD: Ya te dije que no me adapto muy bien al Windbg todavia :S
Por ejemplo abris el WinDbg:

File>>Open Executable y seleccionas cualquier ejecutable, todos cargan Kernel32.dll cosa que el Kernel no hace. Sino podes abrir el mismo Kernel32.dll con File>>Open Crash Dump.
Título: Re: Problema Hookeando Zwdeletefile
Publicado por: Zirrosis en Miércoles 23 de Enero de 2008, 18:58
Ahora si....muchas gracias Eternal ;)