begin process at 2012 02 11 17:58:35
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Windows

 > 

Driver

 > 

Stopper hook ZwCreateFile


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Stopper hook ZwCreateFile

lundi 15 décembre 2008 à 15:16:20 | Stopper hook ZwCreateFile

chevalboiteux

Bonjour à tous,

Je vous expose mon problème :

J'ai créer un driver pour hooker la fonction ZwCreateFile, cela marche presque bien, je fais le traitement que je veux lors de l'ouverture d'un fichier. Le problème, c'est que j'aimerais que le fichier ne s'ouvre pas ensuite.

J'aimerais qu'à la fin de la fonction hookZwCreateFile, il ne se passe plus rien, car en ce moment, lorsque je hook ZwCreateFile, mon driver effectue le traitement sur l'ouverture du fichier et ensuite ouvre le fichier. Moi, j'aimerais qu'il n'ouvre pas le fichier.

J'ai essayé en passant des retours bidon, mais cela m'indique que le handle est invalide.

Merci d'avance pour vos réponses.

lundi 15 décembre 2008 à 19:35:00 | Re : Stopper hook ZwCreateFile

racpp

Administrateur CodeS-SourceS
Salut,
Généralement les fonctions de hook des fonctions du kernel interceptent l'appel, traitent les paramètres et finissent par appeler la fonction originale pour ne pas perturber le fonctionnement du système. Si dans certains cas on souhaite bloquer l'accès à la fonction originale, il suffit de ne pas appeler cette dernière dans la fonction de hook et retourner une valeur d'erreur immédiatement.
lundi 15 décembre 2008 à 20:21:51 | Re : Stopper hook ZwCreateFile

chevalboiteux

Bonne idée !! mais j'y avais déjà pensé et j'ai essayé. Mais même en retournant une valeur d'erreur, il continue à essayer d'ouvrir le fichier et c'est là qu'il me dit que le handle est incorrect.

LA valeur de retour est de type NTSTATUS, si tu connais la valeur de retour qu'il faut donner, merci de me l'indiquer.
mercredi 17 décembre 2008 à 03:08:10 | Re : Stopper hook ZwCreateFile

racpp

Administrateur CodeS-SourceS
Je n'ai pas bien compris ce que tu veux faire exactement. Normalement, c'est l'application en User-Mode qui décidera de l'action à entreprendre en cas d'échec de CreateFile(). Cette dernière appelle NTCreateFile() qui à son tour appelle zwCreateFile(). Si ta fonction zwCreateFile() retourne une valeur d'erreur, celle-ci sera reconduite vers l'application appelante (User-Mode) qui attend une valeur de retour et affichera un message d'erreur ou agira autrement. Mais dans tous les cas le fichier ne sera pas ouvert (ou créé). Il y'a beaucoup de valeurs de retour NTSTATUS que tu peux utiliser. Exemples:
STATUS_OBJECT_NAME_NOT_FOUND
STATUS_OBJECT_NAME_INVALID
STATUS_OBJECT_PATH_NOT_FOUND
STATUS_OBJECT_PATH_INVALID

Tu peux même retourner STATUS_SUCCESS et mettre le handle du fichier à INVALID_HANDLE_VALUE qui correspond à -1 ou 0xFFFFFFFF:
*pHandle=(HANDLE)-1;
return STATUS_SUCCESS;




mercredi 17 décembre 2008 à 08:09:35 | Re : Stopper hook ZwCreateFile

chevalboiteux

Je susi d'accord avec toi sur le raisonnement, mais le problème c'est que par exemple, si je double-clique sur un fichier.txt, le notepad de Windows s'ouvre et me renvoie le message d'erreur "Le handle est invalide".

Donc je ne vois pas comment faire pour que l'application par defaut ne s'ouvre pas.

mercredi 17 décembre 2008 à 08:10:03 | Re : Stopper hook ZwCreateFile

chevalboiteux

Sinon, je vais essayer avec les codes d'erreurs que tu m'as donné.
samedi 20 décembre 2008 à 12:57:23 | Re : Stopper hook ZwCreateFile

yex

Réponse acceptée !
Si ton but est de filtrer des fichiers, un hook sur ZwCreateFile n'est pas forcement la methode la plus judicieuse.
On peut définir sous windows des driver de filtres voir le document "Filter Driver Development Guide".
Je me suis toujours dit qu'il fallait que j'en fasse un un jour et je n'ai toujours pas eu le temps de m'y mettre :(
lundi 22 décembre 2008 à 09:06:48 | Stopper hook ZwCreateFile

chevalboiteux

@ yes : Connais-tu de bons tutoriels pour faire des Filter Driver ?



Cette discussion est classée dans : fichier, ouvre, hook, stopper, zwcreatefile


Répondre à ce message

Sujets en rapport avec ce message

Prob de prog !!! [ par thomas ] Voila mon probleme. tout d'abord j'utilise Builder C++.Je veux que quand je clique sur un fichier specifique a mon logiciel, ilouvre celui-ci et mette Prob de prog !!! [ par thomas ] Voila mon probleme. tout d'abord j'utilise Builder C++.Je veux que quand je clique sur un fichier specifique a mon logiciel, ilouvre celui-ci et mette Lancer un fichier sans stopper le prog [ par takecontroll ] Bonjour, Je développe actuellement un petit programme en C++ qui est amené à changer l'extension d'un fichier puis à le lancer.j'exécute le fichier p ouvre un fichier txt et, faire un filtrage des lignes qui m'interessent sur visualC++ [ par drcmomo ] Please aidez moi j'ai un fichier txt de 428ko j'arrive pas a l'ouvrir sur visual ke dois je faire, AIDEZ MOI SVP. Passage de IE6 à IE7 [ par hfranck15 ] Bonjour et meilleurs voeux à tous,voici mon problème :J'ai un fichier d'aide au format html. Dans ce fichier d'aide, j'ai des ancres qui me permettent [CS]Extension C et C++ qui ne s'ouvre pas par un lien dans les sources [ par CptPingu ] Bonjour. Une petite chose gênante, qu'il serait sympa d'ajouter. Dans un code source on peut voir la source d'un fichier .cpp ou d'un fichier .h. Or, Problème de compilation [ par shinji63 ] #include #include #include #include #include #include #include #include #include #include #include #include #incl Ouvrir le nom d'un fichier dans une chaîne de caractères [ par noname001 ] Bonjour à tous, J'ai un soucis dans le développement d'un programme. En effet, j'ouvre tout d'abord un fichier.txt qui contient toute une liste de no problème de passage de fonctions via dll [ par youppyy ] Bonjour, J'ai deux fonctions sont enregistrées dans une dll ecrite en langage C sur Dec-c++ : J'ai une fonction A qui renvoie une donnée et une fonct recherche fichier séquentiel [ par peter2010 ] Bonjour, j'ai un fichier séquentiel contenant des informations séparées par des ; qui contient l'inventaire d'une épicerie,en paramètre j'ai le nom du


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,437 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales