Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Directory Entries
The general concept of a CFB File is the containment of a
hierarchical structure of storages and streams. These are analogous to
directories and files in the traditional FAT file system used in the DOS and
Windows Operating Systems. A storage can be considered a folder or a directory
while a stream is considered to be like that of a file. Both storages and
streams are represented by Directory Sectors which are a type of file sector. The
number of directory entries per sector depends on the version of the file.
Version 3 equates to 4 directory entries per sector while version 4 has 32
directory entries per sector.
These entries take on a form similar to that of the CFB
Header. Thus to read a Directory Sector would take on a logic similar to the
following:
if majver == 3:
for
i in range ( 0, 3 ):
read_dir_entry
( )
if majver == 4:
for
j in range ( 0, 31 ):
read_dir_entry
( )
This logic would continue based upon the Directory Sector
Markers found in the FAT. The Directory Entry itself takes on a rather simple
form:
def read_dir_entry:
dir_entry_name
= f.read (
64 )
dir_entry_name_len
= f.read ( 2 )
object_type
=
f.read ( 1 )
color_flag
=
f.read ( 1 )
left_sibling_id
= f.read
( 4 )
right_sibling_id =
f.read ( 4 )
child_id
=
f.read ( 4 )
clsid
=
f.read ( 16 )
state_bits
=
f.read ( 4 )
creation_time
=
f.read ( 8 )
modified_time
= f.read
( 8 ) starting_sector_location
= f.read ( 4 )
stream_size
=
f.read ( 8 )
Thus, every time a directory sector is located inside of the FAT, this
logic could be used in the subsequent storing of each individual directory
entry.