Explorer la mft d'une partition ntfs

Soyez le premier à donner votre avis sur cette source.

Vue 14 525 fois - Téléchargée 876 fois

Description

Cette source vous permet de naviguer au travers de la MFT d'une partition NTFS.
Pour faire simple la MFT est la table des fichiers d'une partition NTFS, toute les infos (sécurité, quotas, flux supplémentaires, etc...) sur un enregistrement(répertoire/fichier) y sont stockés. Enfin wikipedia le résume assez bien (http://en.wikipedia.org/wiki/NTFS)

La classe principale <Ntfs.cs> n'est que du code unsafe avec pointeurs à gogo mais rassuez vous sa reste du c# ^^.
Cette classe vous permet de faire les choses suivantes:
- Lire les infos sur la MFT.
- Naviguer à l'interieur de celle-ci.
- Récupèrer via un événement les infos détaillés sur les enregistrements qu'elle contient (flag pour fichier supprimer présent)
- Lire une grande quantité d'enregistrement.
- etc.... la liste des fonctions est longue. !

Malgrès la compléxité du code celui-ci est commenté (anglais dsl).
J'ai ajouté 2 démos pour montrer l'utilisation de toute les fonctions de la classe Ntfs.

Voir également sur Technet pour plus d'infos: http://technet.microsoft.com/en-us/library/cc781134(WS.10).aspx

Voila voila.
Have fun ;)

Conclusion :


Je tiens à remercier Galain qui m'a apporté énormément sur le système de fichier NTFS !
Sans oublier le livre de Gary Nebbett et son livre "Windows NT/2000 Native API Reference".
Sans c'est deux références je n'aurais pas pu rendre cette copie sur NTFS et en particulier la MFT. Merci encore à Galain ;)

Si vous avez des questions des remarques n'hésitez pas !
bon dév !

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_GG29
Messages postés
326
Date d'inscription
vendredi 23 décembre 2005
Statut
Membre
Dernière intervention
8 février 2011
10
Bravo pour cette source.
cs_Galain
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
Salut AvengerFrance
au sujet de la structure NONRESIDENT_ATTRIBUT cela ne change pas grand chose
Seul le premier byte de CompressionUnit est utilisé et si on prend cette valeur sur 2 octets c'est loctet de poids faible et donc le premier qui sert
La Padding sert pour l'alignement modulo 8 des attributs
A+
avengerfrance
Messages postés
10
Date d'inscription
mercredi 17 septembre 2003
Statut
Membre
Dernière intervention
26 janvier 2010

Re-Salut !
Juste une petite remarque/question : dans la structure NONRESIDENT_ATTRIBUTE, tu as mis
public byte CompressionUnit;
public fixed byte Padding[5];
mais dans d'autres documentations sur le NTFS il apparait plutôt que CompressionUnit est sur 2 octets et Padding sur 4 (de plus en théorie toujours à 0 car non utilisé...)
(J'ai deux informations de sources différentes qui convergent sur ce point ...)
Mais cela ne nuit toutes fois pas au bon fonctionnement !

(Dommage que les commentaires ne soit pas Anglais et Français !)
cs_Galain
Messages postés
1270
Date d'inscription
mardi 11 novembre 2003
Statut
Membre
Dernière intervention
24 juillet 2013
6
Salut à tous
Le projet de Willi n'a peut-être pas été testé sous Vista mais il n'y a aucune raison qu'il ne fonctionne point sous ce OS. Un projet similaire "Acces direct Disques et Partitions" en VB Net a été développé avec VB 2008 sous Windows Vista et fonctionne de façon parfaite sous cet OS. Ce projet en VB Net est bien sûr disponible sur codes-sources (http://www.vbfrance.com/codes/ACCES-DIRECT-DISQUES-PARTITIONS-VB-NET_46012.aspx). Il suffit de lancer l'éditeur C# pour le projet de Willi en mode Administrateur.
Axoltl
Messages postés
11
Date d'inscription
mercredi 8 septembre 2004
Statut
Membre
Dernière intervention
19 janvier 2007

Cher willi, cher avenger (nous on se connait hein, dark side team rulez), il me semble qu'on se trouve là devant une rencontre au sommet.
Loin de moi l'idée de jouer les entremetteuses pour geek mais a mon humble avis, vous devriez rester en contact tous les deux.
Mon petit doigt me dit que vous avez des choses en commun.

Donc oui, ce sera 10/10
et voici pourquoi:
NTFS, ce n'est pas une partie de plaisir, c'est propriétaire, la pêche aux infos et longue et laborieuse (pleins d'infos partout mais rarement complet).

Quelques rares codes source sous windows qui ont une facheuse tendance a disparaitre.

Il faut etre rigoureux.

On trouve des sources vraiment très complettes sous linux (ntfs-3g) mais la lecture n'est pas triviale, non plus que le portage.

C'est relativement propre et ca fonctionne, c'est du bon boulot.

Bon on sacrifie à la mode du c#.

nul n'est parfait.
Mais du coup le portage en delphi s'en trouve facilité.

Tu tiens quelque chose qui fait office de CV dans quelques boites.

Voilà, continue comme ça.
Et merci de publier tes sources, ca fait avancer le shmilblick

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.