-
[C\C++]Cacher un fichier
Bonjour,
je suis en train de programmer une petite application, et je voudrais qu'elle cache automatiquement certains fichiers ( dont le chemin d'acès est connu ) afin de les protéger.
J'ai tenté une recherche sur la msdn, mais je n'ai absolument rien compris.
http://msdn2.microsoft.com/en-us/lib...ttributes.aspx
Quelqu'un peut-il m'expliquer un peu ? Me montrer un example d'utilisation ?
Merci d'avance.
-
L'attribut "hidden", ce n'est pas grand-chose.
Il suffit de changer une option dans l'explorateur pour afficher les fichiers cachés.
En plus, ils apparaissent avec l'icone grisée, donc on sait tout de suite qu'ils sont "cachés"!
Il existe des techniques pour dissimuler vraiment un fichier, mais elles sont utilisées par des programmes malveillants et détectées comme telles par le RootkitRevealer de Mark Russinovich...
-
Il n'y a donc aucune solution ?
Ce n'est pas que je veuille faire un programme malveillant, mais si la seule solution possible à mon problème est d'utiliser l'une de leurs techniques, je voudrais bien me renseigner.
Merci de ton aide.
-
Pour protéger le fichier, je pense que le mieux serait plutôt de changer les droits dessus...
Pour cela, sous Windows, tu peux utiliser des fonctions comme CreateFile(), GetKernelObjectSecurity(), SetEntriesInAcl(), SetSecurityDescriptorDacl() et j'en passe...
-
Merci pour l'info. A part msdn, tu connais pas un tuto un peu spécialisé ? En francais ce serait encore mieu, enfin, on fera avec ce qu'on a.
-
Je ne sais pas ce que tu développes comme appli, mais ce genre de pratiques est très mal perçu. Sony en a fait les frais récemment.
http://www.sysinternals.com/blog/200...al-rights.html
La solution propre, c'est de les mettre dans un répertoire auquel tu ajustes les droits comme il faut. Il y a des articles sur codeproject. Tu peux aussi utiliser cacls sous XP, pas très élégant, mais plus simple.
-
Pour protéger des fichiers contre toute écriture:
La commande CACLS est très bien pour modifier les droits. Sous Windows XP familial, c'est le seul moyen préinstallé de le faire sans rebooter en mode sans échec...
Pour cacher des fichiers:
Tu peux faire un répertoire qui contient les fichiers, et qui permet de lire les fichiers sans permettre de lire le contenu du dossier...
Pour cela, je crois qu'il faut donner le droit FILE_TRAVERSE et refuser le droit FILE_LIST_DIRECTORY sur le répertoire.
Mais je ne crois pas que la commande CACLS ait la granularité suffisante pour autoriser les droits individuellement...
De plus l'utilisateur propriétaire d'un fichier/répertoire a toujours tous les droits, quels que soient les ACL (Mais si on installe le programme en Admin par exemple, les utilisateurs limités ne pourront pas lire le contenu du dossier et les fichiers dedans seront donc "cachés" pour eux...)
-
-
Ok, je vais voir tout ca.
Merci.