Lister les handles (fichiers, clé de registres,...) ouverts par un programme (nt/2000/xp)

Soyez le premier à donner votre avis sur cette source.

Vue 13 529 fois - Téléchargée 1 068 fois

Description

Ce code permet d'obtenir la liste des handles ouverts par un programme :
- fichiers
- sections
- clé de registre
- événement
- mutex
- ...

Ce code permet aussi de recherché un nom de handle dans tous les processus, pour savoir, par exemple, le nom de l'application qui a ouvert le fichier toto.txt... ou une clé de registre, ou un mutex...

Ce code liste aussi les programmes en execution. Il utilise des APIs natives non documentées pour NT/2000/XP...

Conclusion :


Pour plus d'infos sur les API Native de Windows NT/2000/XP, regarder le livre "Windows NT/2000 NATIVE API Reference" de Gary Nebbett

Ce code ne fonctionne pas sous 9x/ME.

Concu avec Visual C# Express 2005

Une version de compiler se trouve dans le dossier du projet, renommer en .ex_...

IMPORTANT : si vous voulez avoir la liste des fichiers ouverts,
il est important de mettre KernelMemory.sys
-> dans le même dossier que win32lsof.exe si vous l'utilisez à part
-> dans le dossier win32lsof\bin\Debug
-> dans le dossier win32lsof\bin\Release

Si win32lsof ne trouve pas le fichier KernelMemory.sys, il n'affichera pas les handles de type fichier et affichera "Fichier introuvable"

Certain handle sont nommés, d'autres pas...

N'hésitez pas à commenter et à noter...

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
ça marche nickel maintenant, sûr que ça doit pouvoir servir à quelque chose, il faudrait ouvrir un wiki sur la stratégie d'utilisation du logiciel dans différent cas !
cs_LordBob
Messages postés
2865
Date d'inscription
samedi 2 novembre 2002
Statut
Membre
Dernière intervention
11 mai 2009
8 -
c'est une très bonne source, qui m'a fait découvrir de nouvelle API :)
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
J'ai bien mis KernelMemory.sys dans le même dossier que win32lsof.exe mais j'obtiens :
System.IndexOutOfRangeException: Avertissement : Du code non managé a provoqué un dépassement de capacité de mémoire tampon StringBuilder. Le processus peut devenir instable. Une capacité insuffisante a été allouée à StringBuilder avant son marshaling.
à win32lsof.COpenedHandles.GetLogicalDriveStrings(Int32 nBufferLength, StringBuilder lpBuffer)
à win32lsof.COpenedHandles.GetDosFileName(String strInternalFilename)
à win32lsof.COpenedHandles.RetrieveObject(SYSTEM_HANDLE_INFORMATION& Handle)
à win32lsof.COpenedHandles.CreateQueryHandlesBuffer()
à win32lsof.Form1.cmdRefresh_Click(Object sender, EventArgs e)
à System.Windows.Forms.Control.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnClick(EventArgs e)
à System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
à System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ButtonBase.WndProc(Message& m)
à System.Windows.Forms.Button.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
ShareVB
Messages postés
2717
Date d'inscription
vendredi 28 juin 2002
Statut
Membre
Dernière intervention
13 janvier 2016
11 -
salut,

dsl de la latence...

il ne faut pas oublier de mettre KernelMemory.sys dans le même dossier que win32lsof.exe...

ShareVB
cs_Patrice99
Messages postés
1222
Date d'inscription
jeudi 23 août 2001
Statut
Membre
Dernière intervention
9 septembre 2018
-
Tu pourrais mettre l'exe renommé SVP ? Merci.

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.