MBR, Systèmes de fichier et espaces réservés.

Résolu
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 - 6 févr. 2013 à 01:42
 Profil bloqué - 15 févr. 2013 à 17:56
Bonjour à tous.

Voilà je développe actuellement un programme utilisant les supports USB (Clé, disques durs...) pour stocker des informations (environ 25 ko). Pour le moment je stock ces infos dans un fichier sur le disque mais ce fichier n'est lu que par le programme et n'est pas lancé par l'utilisateur. Pour éviter la suppression manuelle par erreur j'aimerais écrire ces infos directement dans un secteur sur le disque en dehors du système de fichier.

Le problème c'est que le système de fichier peut être FAT,FATEx, FAT32 ou NTFS. Je ne sais pas s'il y a des normes pour ces systèmes de fichier, des emplacements réservés et libres dans lesquels je pourrais écrire sans risquer de détériorer le système de fichier du lecteur?

Si quelqu'un passe par la et a des infos sur le sujet je suis preneur.

Merci d'avance.


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.

9 réponses

Profil bloqué
14 févr. 2013 à 18:21
Salut ghuysman99 et Mayzz
Pour la lecture directe secteurs aucun problème ! C'est l'écriture qui coince sérieusement !
Pour Mayzz si l'utilisateur formate le clef USB en faisant un formatage complet il efface aussi tes infos en Brut à mon avis !

En NTFS tout est fichier ! même le secteur de Boot ! la MFT ( Table des fichiers maître) gère des enregistrements et les 24 premiers sont réservés au système !
En FAT32 on a 3 zones principales sur le disque : la zone de Boot, les 2 tables FAT et la zones des clusters allouée par ces tables FAT !
En FAT32 la zone entre la zone de Boot et la première table FAT est inutilisée ! Celle ci pourrait être utilisable !
En NTFS aucune zone n'est disponible à mon avis!
toutes ces indications sont données suite à ma propre expérience lors de l'élaboration de la source "Accès direct disques Net" dont voici le lien http://www.vbfrance.com/codes/ACCES-DIRECT-DISQUES-PARTITIONS-VB-NET_46012.aspx
bonne prog à vous !

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
3
Profil bloqué
14 févr. 2013 à 18:28
désolé Mayzz : voici le lien correcte de la discussion précédente

http://www.vbfrance.com/forum/sujet-ECRITURE-SECTEUR-DISQUE-VB-NET_1208130.aspx?p=4

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
3
Profil bloqué
6 févr. 2013 à 06:54
Bonjour
Oh que si il y a des normes comme tu dit !
Première difficulté : écrire directement sur un secteur ! Windows et le Framework ne l'autorise pas à nous pauvres petits programmeurs que nos sommes !
Et même si cela était où écrire !
regarde la source "Accès Direct Disques en VB Net" et tu verras la complexité du problème !
Bonne journée !

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
9 févr. 2013 à 23:35
Les secteurs d'un DD peuvent être lus comme un fichier, jette un coup d'oeil sur MSDN.
Sinon faudra m'expliquer comment des utilitaires comme HxD peuvent y accéder directement...

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0

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

Posez votre question
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
14 févr. 2013 à 12:09
Bonjour et merci à vous pour vos réponses.

En fait, le problème c'est pas vraiment l'écriture sur le disque c'est appartement possible en .Net via les API. En fait c'est surtout l'emplacement ou je peux écrire sans abîmer le système de fichier du périphérique. J'aimerais savoir s'il existe une norme internationale qui autorise l'écriture d'un système de fichier q'à partir d'un certain secteur. Par exemple pour le boot il me semble que c'est les 1024 premiers octets du disque.

En gros j'aimerais écrire des infos invisibles (du moins pour le commun des mortels ) sur un support USB.

En fait je suis en train d'améliorer un programme utilisant les supports USB pour stocker des informations de sécurité. Actuellement je place ces infos dans un fichier chiffré ".bin" sur le disque et lui donne les attributs caché, système et readonly. Cependant si l’utilisateur format la clé ou s'il supprime le fichier par inadvertance il perd ses infos. C'est pourquoi je souhaiterais écrire ces infos directement dans les secteurs du disque en brut.

Voilà, en tous cas merci encore pour vos réponses.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Profil bloqué
14 févr. 2013 à 18:26
pour Mayzz
Si tu arrives à écrire un secteur de disque dur en Api Net je suis preneur !
regarde cette discussion : http://www.vbfrance.com/codes/ACCES-DIRECT-DISQUES-PARTITIONS-VB-NET_46012.aspx

A + et bonne prog

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0
cs_ghuysmans99 Messages postés 3982 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
14 févr. 2013 à 18:27
Bonjour à tous,

À l'instinct je dirais qu'il devrait y avoir un ou deux secteurs libres au tout début du disque...
Mais tu devras probablement choisir l'emplacement selon le système de fichiers.

VB.NET is good ... VB6 is better
Utilise Réponse acceptée quand un post répond à ta question
0
Mayzz Messages postés 2813 Date d'inscription mardi 15 avril 2003 Statut Membre Dernière intervention 2 juin 2020 28
15 févr. 2013 à 10:45
Galain> Merci pour ces infos. Je ne pense pas aller aussi loin juste pour cacher un fichier. Mais cette conversation est très instructive. Cela me rappelle qu'il y a des choses qu'on ne peu pas faire sous Windows (comme envoyer un paquet OSI par exemple). Je pense que déjà il faudrait étudier les différents systèmes de fichiers pour trouver un emplacement, je m'étais fais à l'idée que peut être il y aurait une zone spécifique "interdite" aux systèmes de fichiers par une norme quelconque... De plus si l'écriture est une galère bah alors la c'est le bouquet final qui vient achever le peu de motivation qu'il me restait !

En même temps c'est pas très grave, mon soft fonctionne très bien comme ça. Encore merci à vous pour vos réponse, je ne viens plus trop sur le forum de ce temps mais je suis content de voir qu'il y a toujours du monde pour porter de l'aide.

Bonne journée à vous !


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
0
Profil bloqué
15 févr. 2013 à 17:56
Merci bien Mayzz !
Si tu penses que ce topic est à clôturer tu sais ce qu'il faut faire ! Bonne prog à toi et vive Codes-Sources !

La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi.

GRENIER Alain
0
Rejoignez-nous