Re[4]: [so] Intrebari tema 2
Catalin Alexandru
so@cursuri.cs.pub.ro
Sat, 13 Nov 2004 17:53:06 +0200
> Nu prea vad ce ai putea sa faci cu hookul ala... Poti sa elaborezi?
E destul de simplu:
- in dll faci o functie GetMsgProc(), care nu face decat sa cheme
urmatoarea functie in lantul de hook-uri; nu ne intereseaza functia
in sine, doar faptul ca obtinem acces gratuit la mecanismul de
injectie oferit de sistemul de operare.
- din server incarci dll-ul, obtii un pointer la functia GetMsgProc()
si chemi SetWindowsHookEx() folosind functia asta. Toate procesele or
sa adauge functia asta in lant, ocazie cu care o sa incarce si dll-ul.
Singura chestie e ca trebuie ca dll-ul sa contina o sectiune de
date "shared" pentru a permite ca toate procesele sa vada handle-ul
hook-ului (intors de SetWindowsHookEx).
Frumos la metoda asta este ca dll-ul poate fi descarcat printr-un
apel la UnhookWindowsHookEx().
Dar, data fiind modificarea temei, chestiile astea nu mai conteaza :)
Catalin