in

hooking / detouring functions

Last post 06-22-2007 16:16 by argvc. 6 replies.
Page 1 of 1 (7 items)
Sort Posts: Previous Next
  • 06-19-2007 2:36

    • argvc
    • Top 25 Contributor
    • Joined on 06-17-2007
    • Posts 7
    • Points 103

    hooking / detouring functions

    hola!! quisiera que alguien pudiera explicar sobre estos dos temas hooking y detouring, para ir haciendo una intro al tema y luego explicar más avanzado. graX
    • Post Points: 39
  • 06-19-2007 18:59 In reply to

    Re: hooking / detouring functions

    Hola,

    El tema es bastante amplio, tal vez si nos delimitas un poco más lo que necesitas saber podamos ayudarte mejor. En cualquier caso este tipo de tareas no suelen realizarse demasiado con managed code, que es la principal area de conocimiento de la gente de Baleares on .NET.

    Como introducción al hooking, decir que es una técnica que se utiliza para interceptar llámadas a funciones, básicamente lo que haces es poner tu código entre el origen y el destino para ejecutar diversas acciones, ya sea: monitorizar, reemplazar una llamada por otra, etc.

    Hay varios ejemplos por ahí genéricos que te permiten hacerlo de forma genérica, además hace ya unos cuantos años vi un libro que te explicaba como hacer hooking incluso a nivel de Kernel, aunque no recuerdo el título (lo siento mi memoria es bastante limitada para estas cosas).

    Una buena forma para iniciarse sería capturar las pulsaciones del teclado o del ratón, puedes empezar mirando las API de user32.dll: SetWindowsHookEx, UnhookWindowsHookEx, CallNextHookEx.

    Si tengo tiempo intentaré montarlo con C#, aunque no prometo nada que últimamente no tengo tiempo ni de respirar.

    Jose Fco Bonnin
    -----------------------
    Coordinador Baleares on .NET
    www.josefcobonnin.com
    Filed under: , ,
    • Post Points: 5
  • 06-19-2007 21:44 In reply to

    Re: hooking / detouring functions

    Hola,

      Como bien dice Jose, el uso de Windows Hooks no es una técnica que se utilice cuando programas en managed code, pero en ocasiones no hay más remedio que hacerlo

      Aquí tienes un enlace sumamente interesante a un artículo escrito por Dino Esposito en el que encontrarás bastante información: http://msdn.microsoft.com/msdnmag/issues/02/10/cuttingedge/

      Espero que te sirva de algo.

     

    Salvador de la Rosa
    • Post Points: 5
  • 06-20-2007 1:21 In reply to

    Re: hooking / detouring functions

    Hola,

    Al final he sacado algo de tiempo, acabo de publicar en mi blog un artículo acerca de cómo montar con C# global hooks para interceptar los eventos del ratón y del teclado.

    El artículo muestra los pasos básicos de cómo hacer cada cosa, además adjunta una aplicacioncilla de prueba, la cual básicamente consiste en una clase en C# que encapsula la parte de interop de manera que sea más sencillo de utilizar desde aplicaciones .NET. El ejemplo podría completarse más, por ejemplo, añadiendo el código necesario para obtener información más precisa de los eventos del teclado y pasarla como HookKeyboardArgs, es muy sencillo y como todo el resto podrás ver como hacerlo si te lees la documentación que te decía en el post anterior del MSDN.

    Aparte de esta hay otras maneras de montar hooking functions, podrías hacerlo también filtrando los mensajes que recibe una ventana, etc. pero bueno creo que ya tienes material para ir viendo tu mismo.

    Jose Fco Bonnin
    -----------------------
    Coordinador Baleares on .NET
    www.josefcobonnin.com
    • Post Points: 22
  • 06-20-2007 3:30 In reply to

    • argvc
    • Top 25 Contributor
    • Joined on 06-17-2007
    • Posts 7
    • Points 103

    Re: hooking / detouring functions

    graX por la información,, se agradece en serio. y sobre detours se podría decir algo como para ir cerrando el tema...........
    • Post Points: 22
  • 06-21-2007 20:08 In reply to

    • jjofre
    • Top 10 Contributor
    • Joined on 01-24-2007
    • Posts 112
    • Points 1,434

    Re: hooking / detouring functions

    Detouring es el uso de Detours, que es una librería de funciones creada por Microsoft Research precisamente para hacer Hooking. Aquí tienes el enlace para bajártela (http://research.microsoft.com/sn/detours/) y por otra parte, te recomiendo leer el artículo de Galen Hunt y Doug Brubacher sobre el tema.

    Javier Jofre
    Coordinador Baleares on .NET
    http://www.balearsinnovacio.com/blog/
    Filed under: ,
    • Post Points: 22
  • 06-22-2007 16:16 In reply to

    • argvc
    • Top 25 Contributor
    • Joined on 06-17-2007
    • Posts 7
    • Points 103

    Re: hooking / detouring functions

    haha.. gracias amigo, pero aunke no lo creas ya habia visitado el link de microsoft y descargado esa librería y también ese artículo; es que no te imaginás lo que buské de estos temas antes de preguntar por aquí hehe.. igual ya tengo suficiente información, más que nada lo que pregunto son ejemplos personales de cada uno.. pero creo que ya tengo suficiente.. gracias igualmente. por ahora estoy leyendo este artículo sobre estos temas. http://softlab.technion.ac.il/project/Win32APIInterceptor/html/Description.htm Salu2
    • Post Points: 5
Page 1 of 1 (7 items)
Baleares on .NET®
Powered by Community Server (Commercial Edition), by Telligent Systems