Newsgroup: it.comp.programmare.win32
Titolo: Realizzare un driver per intercettare le chiamate di sistema

ho in possesso il visual studio 2005. Dovrei creare un qualcosa che mi
permette di filtrare tutte le chiamate di sistema. Quelle al disco
rigido dovranno essere reindirizzate ad una applicazione.
Per spiegarnmi meglio faccio un esempio:
Voglio andare a scrivere un file sul disco, la chiamata di sistema per
la scrittura al disco deve essere bloccata per esempio fino a quando
non si inserisce una password. una volta inserita la password la
scrittura può essere effettuata. Il tutto deve essere fatto in
linguaggio c.
Grazie a tutti coloro volessero darmi una mano.....

non si inserisce una password. 
Detto in tutta onestà, è una specifica un po' strana: se apro dieci
thread e ognuno vuol creare un file che succede ? inserisco 10
password ? e poi questa fantomatica password come andrebbe inserita ?

 password ? e poi questa fantomatica password come andrebbe inserita ?
Mi sono spiegato male!!!!!!!!!!
Io voglio intercettare le chiamate di sistema e reindirizzare quelle
relative all'accesso al disco ad un programmino fatto ma me. Questo
programmino svolge delle operazioni( per Es. come detto da te ogni
thread che vuole accedere al disco deve inserire la password, se la
password è inserita correttamente permette l'accesso al disco
altrimenti blocca la chiamata di sistema).


Qullo della password è un esempio. Il programmino può svolgere
miliardi di altre operazioni.
A me interessava solo capire come è possibile intercettare le chiamate
e inoltrarle ad un altro programma fatto da me.....

 e inoltrarle ad un altro programma fatto da me.....
devi scrivere un filter driver e metterlo nello stack corrispondente (es 
filtro degli accessi al disco nello stack dei driver del file system,...)
al contrario delle normali appicazioni, per i driver la documentazione 
ed i relativi sdk non sono gratuiti
-- 
********************************************************************
"E' un bene che gli abitanti della nazione non capiscano abbastanza il 
nostro sistema bancario e monetario, perchè se lo facessero, credo che 
ci sarebbe una rivoluzione prima di domattina"
"Mi si dia la facoltà di battere e controllare la moneta di una nazione 
e non mi importerà chi ne stabilisce le leggi"
********************************************************************

 filtro degli accessi al disco nello stack dei driver del file system,...)
E scrivere uno "stub" per le DLL di sistema come lo vedi ?
Cioè, DLL che semplicemente espongono la stessa interfaccia della DLL
omonima (kernel32.dll, es.), ma ogni funzione compie le proprie
operazioni, prima di rimandare alla funzione originale. Non l'ho mai
fatto, chiedo se si possa fare...
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 ha scritto nel messaggio 
news:45dd9485$1...@news.unimib.it...


 Non proprio, puoi scaricare gratuitamente il WDK 
davvero? ottimo!
quando lo cercai io, qualche anno fa, ms non lo rendeva disponibile per 
il download
dovetti scaricarlo "altrove"


 E scrivere uno "stub" per le DLL di sistema come lo vedi ?
questo ed in generale le varie tecniche di hooking e code injecting sono 
strade alternative ma ho letto che rimangono comunque alcune chiamate 
non intercettabili (anche se non ricordo quali)
per avere un controllo totale sul sistema (...rootkit?) bisogna agire 
come driver (ring 0)


Riguardo quando da me detto nei primi messaggi, ho letto in alcuni
forum che è possibile intercettare le chiamate di sistema nel seguente
modo:
In Win32 puoi usare un approccio intermedio.
programmi al kernel sono chiamate alla libreria dinamica kernel32.dll
Puoi duplicare questa dll, istallando prima
_tua_ kernel32.dll che:
-- carica quella vera con LoadLibrary,
-- duplica tutti gli entry point delle API del Kernel,
-- tutti quelli che non sono relativi al filesystem li delega
pari pari con chiamate a quella vera,
-- tutti quelli relativi al filesystem li gestisce lei
é possibile?
se si come fare a duplicare la dll?
La libreria da duplicare per windows Xp è sempre la kernel32.dll?

Puoi duplicare questa dll, istallando prima
Era esattamente ciň che proponevo nel mio messaggio in questo stesso
thread.

 thread.
Sai per caso dove posso reperire qualche documento?