Toutes les manières de charger un fichier (Sous Windows) ?

cs_Booster Messages postés 235 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 6 octobre 2009 - 17 avril 2009 à 18:49
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 19 avril 2009 à 23:38
Bonjour à tous,

Je suis entrain de faire un petit soft qui snif tous les fichiers que load un programme.

Je hook donc toute les fonctions susceptible de charger un fichier, mais voilà il m'en manque. Certains programmes arrivent à charger des fichiers sans que mon sniffer ne les détectes.

Je m'en remet donc à vous pour connaitre d'autre fonction, voici ce que j'ai déjà hooké :

Loadlibrary et Createfile, oui c'est tout car fopen, openfile ... passent toutes par createfile.
Donc mon problème est le suivant : j'ai soit une fonction en dessous de createfile (que createfile appelle) soit une autre fonction similaire à createfile existe dont je n'ai pas connaissance.

Quelqu'un connait il, donc, d'autre fonctions, que celles cité, pour charger un fichier ?

Merci d'avance !

7 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
17 avril 2009 à 20:14
0
cs_Booster Messages postés 235 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 6 octobre 2009
18 avril 2009 à 15:36
Salut,


Merci pour ta réponse.


Cette source je la connai et le problème de cette methode c'est que je n'arrive pas à obtenir le nom du fichier qu'essai d'ouvrir le soft je m'explique :

Voici ce que j'obtients :

ZWCREATE: notepad.exe:1076   FILE:\DEVICE\HARDDISKVOLUME1
ZWCREATE: notepad.exe:1076   FILE:\DEVICE\HARDDISKVOLUME1
ZWCREATE: notepad.exe:1076   FILE:\DEVICE\HARDDISKVOLUME1\
ZWCREATE: notepad.exe:1076   FILE:\DEVICE\HARDDISKVOLUME1\PROGRAM FILES\

Ce que je te montre sont les log que j'obtiens avec le code suivant (A partir de la source de Arnotic) :

NTSTATUS arnZwCreateFile(.....)
{
  ....
  
//Ici je récupére le nom du "fichier" qu'essai de creer zwcreatefile.
  theRet = wcstombs(theConvert, ObjectAttributes->ObjectName->Buffer, sizeof(theConvert));
  
  sprintf(theResult,"ZWCREATE: %s   FILE: %s\r\n", theProcess, theConvert);
  Log(theResult);

  ....
}

Le problème est donc que lorsque je rentre dans ZwCreateFile ce dernier ne me fourni pas le nom du fichier qu'il essai d'ouvrir/creer mais au mieux juste le répertoire.

Est ce un problème dans mon code ? Ou est ce normal ?

Merci d'avance de vos réponses !

PS : j'ai aussi hooker ZwOpenFile et même problème !
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
19 avril 2009 à 19:45
Salut,

Pour ce qui est des fichiers, il y a une autre méthode que le hook d'appel système : un driver de filtrage.
0
cs_Booster Messages postés 235 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 6 octobre 2009
19 avril 2009 à 20:51
Merci rt15 pour ce lien mais quand est ce que Microsoft fera quelque chose de gratuit ... ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 avril 2009 à 22:30
Qu'y a-t-il de payant ?
Pas vu.

ciao...
BruNews, MVP VC++
0
cs_Booster Messages postés 235 Date d'inscription mercredi 30 octobre 2002 Statut Membre Dernière intervention 6 octobre 2009
19 avril 2009 à 22:34
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
19 avril 2009 à 23:38
A oui vu cette fois, faut être abonné MSDN pour download le WDK.

Malgré tout ça peut se comprendre, c'est un énorme produit avec tout un tas d'outils et de codes exemples.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous