Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

AFS (File format): Difference between revisions

No edit summary
No edit summary
Line 3: Line 3:
Le format de fichier AFS permet de packer un ensemble de fichier dans un seul et unique fichier. Il n'y a pas de compression. Tous les éléments (fichiers, et blocks système de l'afs) sont alignés sur des blocks de 0x800 octets. En dehors des fichiers, l'afs est en little endian.
Le format de fichier AFS permet de packer un ensemble de fichier dans un seul et unique fichier. Il n'y a pas de compression. Tous les éléments (fichiers, et blocks système de l'afs) sont alignés sur des blocks de 0x800 octets. En dehors des fichiers, l'afs est en little endian.


Un AFS se compose de 4 parties :
Un AFS se compose de '''4 parties''' :
# Le header (4 octets avec le magic number "AFS\x00", 4 octets pour le nombre total de fichiers)
# '''Le header'''
# La Table Of Content (TOC) :
#* 4 octets : magic number = "AFS\x00"
:: * un tableau avec pour chaque fichier - offset fichier (4 octets), taille fichier (4 octets).
#* 4 octets : nombre total de fichiers
:: * Ensuite, 3 cas sont alors possibles :
# '''La Table Of Content''' (TOC) :
## soit tout de suite après ce tableau, on retrouver l'offset de la filename directory (4 octets) et sa taille (4 octets)
#* un tableau avec pour chaque fichier :
## soit on retrouve un padding (NULL bytes) avant de trouver la filename directory (4 octets) et sa taille (4 octets)
#** 4 octets : offset fichier
## soit il n'y a tout simplement pas de filename directory (pas d'offset ni de taille)
#** 4 octets : taille fichier
# La partie qui contient l'ensemble des fichiers
#* A la suite de ce tableau, 3 cas sont alors possibles :
# Le Filename Directory qui se constitue, pour chaque fichier, de :
## on trouve l'offset de le filename directory (4 octets) et sa taille (4 octets)
:: * 32 octets : Le nom du fichier paddé avec des NULL bytes
## on trouve un padding (NULL bytes) puis l'offset du filename directory (4 octets) et sa taille (4 octets)
:: * 2 octets : année
## on a tout simplement pas de filename directory (ni offset ni taille)
:: * 2 octets : mois
# La partie qui contient '''l'ensemble des fichiers'''
:: * 2 octets : jour
# '''Le Filename Directory''' qui se constitue, pour chaque fichier, de :
:: * 2 octets : heure
#* 32 octets : Le nom du fichier paddé avec des NULL bytes
:: * 2 octets : minute
#* 2 octets : année
:: * 2 octets : seconde
#* 2 octets : mois
:: * 4 octets : La taille du fichier
#* 2 octets : jour
#* 2 octets : heure
#* 2 octets : minute
#* 2 octets : seconde
#* 4 octets : La taille du fichier

Revision as of 15:12, 15 January 2022

Le format de fichier AFS permet de packer un ensemble de fichier dans un seul et unique fichier. Il n'y a pas de compression. Tous les éléments (fichiers, et blocks système de l'afs) sont alignés sur des blocks de 0x800 octets. En dehors des fichiers, l'afs est en little endian.

Un AFS se compose de 4 parties :

  1. Le header
    • 4 octets : magic number = "AFS\x00"
    • 4 octets : nombre total de fichiers
  2. La Table Of Content (TOC) :
    • un tableau avec pour chaque fichier :
      • 4 octets : offset fichier
      • 4 octets : taille fichier
    • A la suite de ce tableau, 3 cas sont alors possibles :
    1. on trouve l'offset de le filename directory (4 octets) et sa taille (4 octets)
    2. on trouve un padding (NULL bytes) puis l'offset du filename directory (4 octets) et sa taille (4 octets)
    3. on a tout simplement pas de filename directory (ni offset ni taille)
  3. La partie qui contient l'ensemble des fichiers
  4. Le Filename Directory qui se constitue, pour chaque fichier, de :
    • 32 octets : Le nom du fichier paddé avec des NULL bytes
    • 2 octets : année
    • 2 octets : mois
    • 2 octets : jour
    • 2 octets : heure
    • 2 octets : minute
    • 2 octets : seconde
    • 4 octets : La taille du fichier