2015-03-13 3 views
1

J'essaye d'extraire le contenu de la table principale de dossier (MFT). J'ai copié le MFT de mon volume de NTFS et l'ai enregistré comme dossier .bin. Maintenant, j'essaye de lire ce fichier en utilisant la fonction unpack fournie en python. Je lis les 8 bits alloués pour la taille de fichier réelle stockée dans l'attribut File Name d'un enregistrement de fichier. Le code est d ['real_fsize'] = struct.unpack (".Comment extraire la taille de fichier de MFT

Le problème que je suis confronté est que la taille de fichier que je reçois est comme 3.5e-323 Le MFT enregistre la taille du fichier en octets, mais le réponse que je reçois semble absurde. donc, est-il possible que je puisse la corriger?

Répondre

1

l'attribut de nom de fichier ne précise pour afficher la taille du fichier correctement. si je comprends bien, il est mis à jour lorsque le fichier est vu dans l'explorateur Windows car l'attribut du nom de fichier fait partie des blocs INDX pour les dossiers, il est donc plus facile de montrer ce que vous avez dans l'arborescence que de ré-analyser l'enregistrement du fichier pour trouver sa taille. tailles dans la structure d'attribut de nom de fichier qui se réfèrent au nom de l'attribut et à la taille réelle du nom de fichier.

La taille précise du fichier est donnée par l'attribut DATA (type 0x80) et un fichier peut avoir plusieurs attributs de données. Les attributs DATA non nommés sont le contenu principal du fichier.

+0

J'ai essayé en lisant la longueur de l'attribut DATA comme indiqué dans son en-tête. Cependant, la longueur affichée semble toujours incorrecte. Pour n'importe quel fichier (peu importe la taille) il a une valeur de base de 72 par exemple j'ai un fichier de taille 3kb la longueur affichée est de 72 unités, pour un fichier de taille 27kb longueur est 80kb et 270kb ses 92 unités. TOUT EXPLICATION pour ceci? @ Sebastian-Laurenţiu-Plesciuc – user3294786