Newsgroup: it.comp.lang.delphi
Titolo: Hook detector

Salve,
volevo chiedere se è possibile (e in che modo) realizzare un programma che
sia in grado di mostrare una lista dei programmi che in un certo momento
hanno attivi degli hook.
Per esempio... se nella mia macchina è installato un keylogger... io vorrei
vedere il suo nome o il nome del suo eseguibile (o DLL) apparire in questa
lista.
Ciao,
   Luca

 hanno attivi degli hook.
No, non è possibile poichè la gestione dell'intero meccanismo di
funzionamento degli hook è affidato al sistema operativo
(caricamento/scaricamento della libreria, chiamata della procedura di
callback etc...).
Il sistema operativo non mette a disposizione queste informazioni per gli
utenti. L'unica idea, legale, per realizzare questo programma è quello di
cercare le DLL mappate ad indirizzi "strani".
Da esperimenti fatti ho notato che le DLL vengono caricate dal SO ad
indirizzi diversi da quelli standard. Però questa potrebbe essere solo una
condizione necessaria ma non sufficiente per scoprire la presenza di un hook
... è possibile che un utente abbia deciso di caricare una certa DLL ad un
indirizzo particolare ...
Ciao! :-)
--
- Carlo -
cbertu81(at)libero(dot)it

 funzionamento degli hook è affidato al sistema operativo
Cioè....
Non esiste modo x leggere gli hook in funzione/installati etc etc etc?
Grazie che WinSozz è bucato come una forma di formaggio svizzero.
Non credo proprio che che i SO unix-based abbiano una cosa del genere.
Bye
A.

 Non credo proprio che che i SO unix-based abbiano una cosa del genere.
Del mondo unix devo ancora studiare bene tutte le chiamate etc, tuttavia ho
già qualche conoscenza.
Vedi su Windows il massimo che tu puoi caricare in un processo remoto è una
libreria (puoi mappargli anche un exe volendo, ma questo verrà visto come
modulo) appunto tramite la tecnica degli hook.
Per quanto riguarda unix, invece, ancora non conosco le tecniche di Code
Injection, ma ti garantisco che una volta che l'injection è stata effettuata
le conseguenze possono essere *molto* più devastanti di quelle del mondo
Windows, grazie ai nested tasks (task innestati). Infatti in unix() è
sufficiente una chiamata alla system call fork() per biforcare il processo
chiamante ... ed ecco che tu hai iniettato un processo totalmente
indipendente dall'applicazione chiamante. Infatti su Win se il processo che
ha chiamato SetWindowsHookEx() muore con lui muoiono tutte le dll caricate
nei processi remoti.
Ciao


 creerebbero gli utenti meno abituati a queste operazioni?
Per loro anche una calcolatrice a 8 cifre che fa solo lo 4 operazioni è già
troppo....
E poi, Winsozz per avere i pirotecnici non ha bisogni di niente e di
nessuno:
li fa gia da se.
Bye
A.

 nessuno:  li fa gia da se.
Se parli di Win9x concordo pienamente.


"Carlo Bertuccini" <cber...@DOHlibero.it> ha scritto nel messaggio
news:yoVT8.91862$j65.2...@twister1.libero.it...


 meccanismi di funzionamento di un certo programma, e questo non č lecito.
Se entriamo in un conteso "legale" la cosa cambia aspetto.
Ha volte ho idea che chi "legifera" vive in un altra dimensione.
"Tu viluppatore non puoi mettere cose strane che blocchino il tuo sw se il
cliente non ti paga".
Ma il cliente puo non pagarti e tu non non ci puoi fare quasi niente.
"Tu non puoi leggere hook, pw, etc etc etc"
pero zio billy puo mettere la robba strana dentro windows e siccome ha un
fottio
di soldi puo pagarsi i migliori avvovati del mondo e vincere tutte le cause
che vuole.
Se ti entrano i ladtri in casa e tu spari x difenderti finisci dentro x
reazione esagerata.
Se poi ti tagliano la gola, ti puoi godere lo spettacolo del tuo funerale su
TeleAltroMondo e godere della presenza dei politici di turno venuti a
rendere omaggio alla tua salma.
Al solito!
Le leggi sono fatte x tutelare i disonesti quando essi cadono nelle manni
degli onesti inkazzati per i loro soprusi.
Bye
A.