Associer de la donnée à un fichier

Le
meta
Bonjour,

Il y a quelques années, j'ai du nettoyer manuellement sur mon PC un virus
qui recopiait des exécutables vérolés dans le répertoire Windows et les
avait rendus invisibles.

Je m'interroge depuis sur la manière dont il l'a fait: où dans le système
a-t'il écrit l'information que tel fichier devait être non visible sous
l'explorateur.

Mon but est moins de savoir comment rendre un fichier invisible que de
déterminer comment associer de l'information supplémentaire à un fichier. Un
bit d'information suffirait, plus serait évidemment mieux, car bien
évidemment c'est pour être exploité mais pas par un virus. Pour un fichier
quelconque nouvellement créé, je voudrais pouvoir lui rajouter par programme
un bit de données soit dans son descripteur soit au niveau du SGF ? Est-ce
faisable ?

Même question éventuellement pour Linux.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sergio
Le #26323134
Le 15/11/2014 10:37, meta a écrit :
Bonjour,

Il y a quelques années, j'ai du nettoyer manuellement sur mon PC un virus qui recopiait des exécutables vérolés dans le répertoire
Windows et les avait rendus invisibles.

Je m'interroge depuis sur la manière dont il l'a fait: où dans le système a-t'il écrit l'information que tel fichier devait être non
visible sous l'explorateur.



C'est un attribut des fichiers depuis que la FAT existe :
Un fichier peut avoir les attributs r (read-only) h (hidden) et s (system)

On peut le modifier avec la commande attrib :
attrib +r +s +h <fichiers>
(pour rendre un fichier lecture seule, caché et système)

Mon but est moins de savoir comment rendre un fichier invisible que de déterminer comment associer de l'information supplémentaire à
un fichier. Un bit d'information suffirait, plus serait évidemment mieux, car bien évidemment c'est pour être exploité mais pas par
un virus. Pour un fichier quelconque nouvellement créé, je voudrais pouvoir lui rajouter par programme un bit de données soit dans
son descripteur soit au niveau du SGF ? Est-ce faisable ?



Il y a la fonction système correspondant à attrib.

Même question éventuellement pour Linux.



Linux gère différemment les droits :
- Un fichier commençant par un point est caché.
- Chaque fichier a un propriétaire et un groupe.
- Chaque fichier a des droits en lecture / écriture / exécution pour tous / le groupe / le propriétaire.

Ça se règle avec la commande chown (changement de propriétaire/groupe) et chmod (changement des droits) ou les fonctions systèmes
correspondantes.

Notons que ces droits ne sont pas gérés (sous Linux) sur les partitions FAT ou NTFS.

--
Serge http://leserged.online.fr/
Mon blog: http://cahierdesergio.free.fr/
Soutenez le libre: http://www.framasoft.org
Jean-Claude BELLAMY
Le #26323148
Le samedi 15/11/2014 10:37:33, meta a écrit dans le message
Bonjour,

Il y a quelques années, j'ai du nettoyer manuellement sur mon PC un virus qui
recopiait des exécutables vérolés dans le répertoire Windows et les avait
rendus invisibles.

Je m'interroge depuis sur la manière dont il l'a fait: où dans le système
a-t'il écrit l'information que tel fichier devait être non visible sous
l'explorateur.

Mon but est moins de savoir comment rendre un fichier invisible que de
déterminer comment associer de l'information supplémentaire à un fichier. Un
bit d'information suffirait, plus serait évidemment mieux, car bien
évidemment c'est pour être exploité mais pas par un virus. Pour un fichier
quelconque nouvellement créé, je voudrais pouvoir lui rajouter par programme
un bit de données soit dans son descripteur soit au niveau du SGF ? Est-ce
faisable ?




Les attributs de base d'un fichier sont (cela a commencé avec DOS 1.0,
soit 1981) :


R : readonly (lecture seule, pour empêcher une suppression
accidentelle par la commande "del", ou une modification
par un logiciel quelconque)
Valeur = 0x00000001
H : hidden (caché, sert à masquer l'affichage du fichier ou
dossier avec les outils standards tels que la commande
"dir" sans commutateurs)
Valeur = 0x00000002
S : system (attribut permettant des filtrages supplémentaires,
destiné a priori aux fichiers principaux du système
d'exploitation)
Valeur = 0x00000004
V : volume (attribut réservé à l'entrée du répertoire racine
contenant le nom de la partition)
NB: cet attribut sert aussi dans les FAT32 pour les noms
longs de fichiers
Valeur = 0x00000008
D : Directory (attribut réservé à tout répertoire)
Valeur = 0x00000010
A : Archive (attribut activé quand un fichier ou dossier a été
créé ou modifié. Il est effacé par les logiciels de backup)
Valeur = 0x00000020

Et dans le cas de partitions NTFS, d'autres attributs sont apparus :

D : device
Valeur = 0x00000040
T : temporary
Valeur = 0x00000100
S : sparse file (fichier clairsemé)
Valeur = 0x00000200
L : Link (lien ou alias)
Valeur = 0x00000400
C : compressed (compressé, mutuellement exclusif
avec l'attribut chiffré)
Valeur = 0x00000800
O : offline (?)
Valeur = 0x00001000
E : encrypted (chiffré, mutuellement exclusif
avec l'attribut compressé)
Valeur = 0x00004000
W : virtuel
Valeur = 0x00010000


http://msdn.microsoft.com/en-us/library/gg258117.aspx




PAR AILLEURS, l'affichage (ou non) d'un fichier dans l'EXPLORATEUR
(cela ne concerne QUE l'explorateur!) est conditionné par des
paramètres stockés dans la clef :

HKCUSoftwareMicrosoftWindowsCurrentVersionExplorerAdvanced

Les entrées concernées sont toutes des REG_DWORD.

Il y en a 3 essentiellement :


1)afficher les dossiers et fichiers cachés
"hidden"
2 pour ne pas afficher
1 pour afficher


2)cacher les extensions des fichiers dont le type est connu
"HideFileExt"
0 pour ne pas cacher
1 pour cacher


3)masquer les fichiers protégés du système d'exploitation
qui ont à la fois les attributs "system" et "hidden"
"ShowSuperhidden"
0 pour masquer
1 pour ne pas masquer


En résumé, si on veut TOUT afficher (ce que je préconise, AMHA),
on doit donc avoir :
hidden=1
HideFileExt=0
ShowSuperhidden=1


et si on ne veut rien :
hidden=2
HideFileExt=1
ShowSuperhidden=0

--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY
http://www.bellamyjc.fr ou http://jc.bellamy.free.fr
DuboisP
Le #26323167
Le 15/11/2014 11:15, Sergio a écrit :
Le 15/11/2014 10:37, meta a écrit :
Bonjour,

Il y a quelques années, j'ai du nettoyer manuellement sur mon PC un
virus qui recopiait des exécutables vérolés dans le répertoire
Windows et les avait rendus invisibles.



Je m'interroge depuis sur la manière dont il l'a fait: où dans le
système a-t'il écrit l'information que tel fichier devait être non
visible sous l'explorateur.



C'est un attribut des fichiers depuis que la FAT existe :
Un fichier peut avoir les attributs r (read-only) h (hidden) et s (system)

On peut le modifier avec la commande attrib :
attrib +r +s +h <fichiers>
(pour rendre un fichier lecture seule, caché et système)




le fichier vérolé restait probablement caché même après changement de
l'attribut hidden.
à une époque, on pouvait mettre dans le début du nom de fichier un
"espace" spécial, un ALT+0+255 si mes souvenirs sont justes, et le
fichier disparaissait.
ou quelque chose dans le genre
Otomatic
Le #26323188
Jean-Claude BELLAMY
En résumé, si on veut TOUT afficher (ce que je préconise, AMHA),
on doit donc avoir :
hidden=1
HideFileExt=0
ShowSuperhidden=1


Oui, mais...
ShowSuperhidden=1 a un « effet de bord » qui fait que l'on se retrouve
avec (au moins) trois icônes superfétatoires et du plus mauvais effet
sur le bureau :
- desktop.ini (deux fois)
- RECYCLER
et ça dérange la méticuleuse organisation de mon bureau !

--
Ayez l'obligeance de me parler avec douceur, sans élever le ton et sans me
contredire en aucune manière. Chez les gens de mon âge, le bruit et la
contradiction provoquent des hausses brusque de tension, de l'hyperacidité
gastrique, des troubles cardiaques, et je deviens très rapidement désagréable.
meta
Le #26323206
J'ai lu plein de réponses détaillées très intéressantes, mais la vraie
question reste quand même celle-ci:

Mon but est ............................... de déterminer comment associer
de l'information supplémentaire à un fichier. Un bit d'information
suffirait, plus serait évidemment mieux, car bien évidemment c'est pour
être exploité mais pas par un virus. Pour un fichier quelconque
nouvellement créé, je voudrais pouvoir lui rajouter par programme un bit de
données soit dans son descripteur soit au niveau du SGF ? Est-ce faisable ?

Même question éventuellement pour Linux.
Publicité
Poster une réponse
Anonyme