Des API Windows pour obtenir des descripteurs de fichiers en plus de createfile et openfile ?

StackOverflow https://stackoverflow.com/questions/13806

  •  08-06-2019
  •  | 
  •  

Question

J'essaie de fouiner dans un fichier journal dans lequel une application écrit.

J'ai réussi à associer createfile à la bibliothèque detours de MSR, mais createfile ne semble jamais être appelé avec le fichier que je souhaite espionner.J'ai également essayé d'accrocher openfile avec les mêmes résultats.

Je ne suis pas un programmeur Windows/C++ expérimenté (ni même un programmeur expérimenté), donc mes deux premières pensées étaient soit que l'application appelle createfile avant d'accrocher l'API, soit qu'il existe une autre API pour créer des fichiers/obtenir des handles pour eux. .

Modifier:Merci pour les deux excellentes réponses.Je voterais pour la réponse de codingthewheel car elle était informative, mais je n'ai pas assez de représentants :(

Était-ce utile?

La solution

Vous pouvez utiliser Sysinternal FichierMon.Il s'agit d'un excellent moniteur qui peut vous dire exactement quels appels système liés à des fichiers sont effectués et quels sont les paramètres.

Je pense que cette approche est beaucoup plus simple que le hooking des appels API et beaucoup moins intrusive.

Autres conseils

Voici un lien qui pourrait être utile :

Surveillance de fichiers de style guérilla avec C# et C++

Il est possible de créer un fichier sans toucher à l'API CreateFile mais puis-je demander quelle méthode d'injection de DLL vous utilisez?Si vous utilisez quelque chose comme Windows Hooks, votre DLL ne sera installée que quelque temps après l'initialisation de l'application cible et vous manquerez les premiers appels à CreateFile.Alors que si vous utilisez quelque chose comme DetourCreateProcessWithDll, votre hook CreateFile peut être installé avant l'exécution du code de démarrage de l'application.

D'après mon expérience, 99,9 % des fichiers créés/ouverts entraînent un appel à CreateFile, y compris les fichiers ouverts via des bibliothèques C et C++, des bibliothèques tierces, etc.Il existe peut-être des fonctions DDK non documentées qui ne transitent pas par CreateFile, mais pour un fichier journal typique, j'en doute.

Moniteur de processus de sysinternals pourrait également aider.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top