Newsgroup: it.comp.programmare.win32
Titolo: Hook

Possiedo Mocrosoft Visual Studio 2005. Devo fare l'hook alla funzione
OpenFile della kernel32.dll. Ma non sò come fare?
Mi spigo meglio ;voglio agganciare alla funzione openFile un pezzo di
codice fatto da me( per esempio un message box con la scritta : Stai
aprendo un file). Ho letto qualcosa sull'API HOOKING, ma praticamente
non sò some fare visto che non ho trovota nessun esempio completo.
Qualcuno potrebbe spiegarmelo? o farmelo vedere praticamente in un
pezzo di codice. (Basterebbe per capire pure l'hook a qualunque
funzione); Aiutatemi.........

  Aiutatemi.........
sono tecniche complicate, soprattutto al primo approccio, ma ormai 
documentatissime
cerca "code injecting" "api hooking" "dll stub" e troverari sezaltro un 
sacco di codice
ciao
p.s.
tieni presente che è aggirabilissima (es. ntopenfile)
-- 
********************************************************************
"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"
********************************************************************

non sò some fare visto che non ho trovota nessun esempio completo.
Usa meglio Google:
http://www.codeproject.com/dll/Win32APIHooking_Trouble.asp
http://www.codeproject.com/system/hooksys.asp
http://jacquelin.potier.free.fr/winapioverride32/
http://www.osix.net/modules/article/index.php?id=728
http://www.woodmann.com/fravia/fragas1.htm
etc...

Una cosa importatnte.
Scusate se le mie domante sembrano ovvie.
Ho i sequnenti dubbi:
1) l'hook che devo realizzare devo metterlo all'interno della dll dove
vi è il codice della openFile (in questo caso kernel32.dll), o devo
creare un nuovo progetto e importare la Dll con LoadLibrary.
2) Come faccio a vedere il codice all'interno delle Dll? ho provato
con il visual studio 2005 ma me lo dà sotto forma di esadecimale.

 2) Come faccio a vedere il codice all'interno delle Dll?
di *quali* DLL? spero ovviamente che ti sia chiaro che i sorgenti di
qualsiasi componente di Windows (dicitura che include anche kernel32.dll)
sono Trade Secret :)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Sapevo che non era possibile modificare la kernel32 direttamente, ma
ho letto che è possibile fare un clone e modificare quello.
E' vero? Sto realizzando una tesi universitaria. e vorrei usare quel
metodo.

ho letto che è possibile fare un clone e modificare quello.
Puoi farlo ma:
1) Non e' possibile sostituire la kernel32.dll a sistema
operativo avviato.
2) Rischi di scontrati con la licenza d'uso della Microsoft.

Come faccio allora a intercettare le chiamate di sistema al file
system. Potreste mandarmi qualche progettino fatto anche su altre
librerie e funzioni per capire come fare guardando il codice.

librerie e funzioni per capire come fare guardando il codice.
I link ai codici te li ho postati due giorni fa. Oltre non posso
fare.

lionking81 ha scritto:

una tesi universitaria sulle proxy DLL? scusa ma fa un po' ridere... da'
la netta impressione di un hackeronzolo che non capisce una mazza di
design e che si mette a pasticciare con gli internals di Windows NT
sentendosi molto figo e producendo inevitabilmente una cagata che smette
di funzionare alla prossima build del sistema operativo. no dico, a sto
punto vacci di API Native e fai un proxy di ntdll.dll o direttamente della
Int 2Eh, perchè se il tuo scopo è far vedere che "ce l'hai lungo" così ci
riesci benissimo... rotfl
il modo per filtrare chiamate di sistema al file system esiste, e non si
tratta di pasticciare con gli internals, ma è un modo ben documentato che
consiste nella realizzazione di un cosiddetto File System Filter:
http://msdn2.microsoft.com/en-us/library/ms793575.aspx
oppure, se ti è possibile, solo un minifilter:
http://msdn2.microsoft.com/en-us/library/aa488085.aspx
comincia a leggerti quel papocchio di roba, che se vuoi fare quella tesi
ne hai da studiare :) (a dirla tutta io preferirei un'altra tesi :D )


 operativo avviato.
è possibile però modificare la sua immagine in memoria, e senza mancare
alle ottimizzazioni del COW, ma non dico come perché non voglio suggerire
metodi per fare programmi cagosi :)


 metodi per fare programmi cagosi :)
Non sono nè un hacker ne niente del genere ho solo letto alcune
discussioni e cerco di risolvere il mio problema nel modo più semplice
possibile data la mia non eccessiva conoscenza di programmazione.
Vorrei solo consigli per capire.
Ringrazio chiunque nella sua buona fede voglia fare ciò

 Ringrazio chiunque nella sua buona fede voglia fare ciň
io i consigli te li ho dati, ma non credo proprio che tu li stia seguendo.
non farmi riscrivere quei due link per la terza volta :)
