[ ljyxx @ 30.01.2006. 20:21 ] @
Uzeti u obzir da zelim da prikazem listu fajlova a ne procesa. Ili eventualno uhvatiti trenutak kada se fajl startuje tako da ne mora da se gleda na to sta je trenutno otvoreno.

Pozdrav.
[ obucina @ 30.01.2006. 22:22 ] @
Koliko sam mogao da vidim nije lako. SysInternals alati otvorene fajlove otkrivaju uz pomoc drajvera (smesten u resurse). A u drajveru se pozivaju funkcije cija imena nikada nisam video. Mislim da nije lako...
[ reiser @ 31.01.2006. 00:00 ] @
Ako hoces da "hvatas trenutak" kad se fajl otvara, moras da hookujes neke fje koje su zaduzene za to, samo gledaj da hookujes sto "nize" fje, a ne wrappere istih (recimo, OpenProcess je wrapper od NtOpenProcess fje - mislim da je i NtOpenProcess wrapper neke fje, nisam siguran).
Elem, siguran sam da postoji tablica unutar sistema koja sadrzi spisak otvorenih handle-ova ka fajlovima - ali opet, tesko je da se sve to iscita...

Korisni linkovi - www.rootkit.com & www.sysinternals.com

---- EDIT
Sad mi je palo na pamet - mozda mozes da napravis popis svih aktivnih procesa na sistemu, i da iz njih kreiras popis fajlova koji su ti procesi otvorili - verovatno je lakse od ove prve dve ultra-mega-driver tehnike :D ali pitanje je koliko ces dobiti pouzdane rezultate.

poz

[Ovu poruku je menjao reiser dana 31.01.2006. u 01:05 GMT+1]
[ ljyxx @ 31.01.2006. 01:01 ] @
Imam resenje da popisem sve procese i putanje tih EXE fajlova ali da li imas konkretnu ideju kako popisati fajlove otvorene iz tih procesa ? Mislim da ce mi rezultati biti dovoljno pouzdani jer bukvalno obracam paznju na samo par ekstenzija koje su otvorene tipa *.doc, *.txt, *.xls i mozda jos koja.
[ 0.C00L @ 31.01.2006. 18:22 ] @
Zasto jednostavno ne hookovati CreateFileA/W i tu proveriti sa kojim flagovima se otvara koji fajl. Struktura:

HANDLE CreateFile(
LPCTSTR lpFileName,
DWORD dwDesiredAccess,
DWORD dwShareMode,
LPSECURITY_ATTRIBUTES lpSecurityAttributes,
DWORD dwCreationDisposition,
DWORD dwFlagsAndAttributes,
HANDLE hTemplateFile
);

Naravo trebace ti system hook, koji ce se odnositi na sve procese.
[ obucina @ 02.02.2006. 01:02 ] @
U prilogu. Rekoh ja - treba drajver. Imaj u vidu da drajver u prilogu neki AV programi detektuju kao virus.

A mozes jednostavno da uzmes i onaj SysInternalsov handle.exe, izvrsis ga, pokupis izlaz i isparsujes - dobices listu otvorenih fajlova.

Inace, sve radi uz pomoc Object Managera, nedokumentovanog Windows mehanizma.

[Ovu poruku je menjao obucina dana 02.02.2006. u 02:04 GMT+1]