1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462
|
TODO
* pyfsntfs convert lookup path to support additional character range
* libfsntfs and fsntfsmount how to support \\ in file name? since \\ is separator used by the library
* extent: flag WofCompressedData extent as wof_compressed?
* extent: rename compressed flag to lznt1_compressed?
* fsntfsinfo: print volume size
* fsntfsinfo: print extents/data runs of $DATA stream?
* get_file_entry_by_path determine unicode form
* fsntfsmount: cache last 3 recently used directories?
* test if format version 1.2 is supported and updated README
* refactor $I30 index to file entry
** refactor libfsntfs_mft_entry_has_directory_entries_index
* Ntfs compressed stream add uncompressed size check
* add raw (no valid size) data stream support
* check data size of WOF reparse point
* add has WOF compressed data stream function (for dfVFS)
* complete read/write lock support
** refactor volume and file entry to use file system
** file entry
*** libfsntfs_file_entry_get_name_attribute_index
*** libfsntfs_file_entry_get_security_descriptor_size
*** libfsntfs_file_entry_get_security_descriptor
*** continue with libfsntfs_file_entry_get_sub_file_entry_by_index
** MFT metadata file
** specific attribute values functions
** USN journal
* MFT entry
** preserve attribute list data MFT entries?
** libfsntfs_attribute add function to indicate partial attribute (has attribute_list_entry but no mft_attribute)
* bitmap values
** handle sparse data runs more efficiently
* fsntfsinfo complete bodyfile support
** fix libfsntfs_file_entry_get_security_descriptor_size: unable to retrieve security descriptor from index for identifier: 0.
** add support for tsk metadata address calculation? inside MFT attribute?
* fsntfsinfo -F add support for ADS notation
* API changes
** rename libfsntfs_volume_get_number_of_file_entries to libfsntfs_volume_get_number_of_mft_entries
* change libfsntfs_mft_attribute_get_utf[8,16]_name[_size] to return 0 if not set
* add debug compare of long and short names
* refactor index to better handle get entry by identifier
** make index value cache a passthrough for index node cache
** use tree for get entry by filename
** use tree for get entry by security identifier
** remove the need for a local cache in libfsntfs_index_read_sub_nodes, use cache value lock instead
* rename libfsntfs_internal_attribute_get_data to libfsntfs_internal_attribute_get_resident_data
* libfsntfs_attribute add read / seek functions
* change calls to libfsntfs_mft_entry_get_index_by_utf8_name to utf16 for optimization
* change calls to libfsntfs_mft_entry_get_data_attribute_by_utf8_name to utf16 for optimization
* enforce LIBFSNTFS_FILE_ENTRY_FLAGS_MFT_ONLY when trying to read data runs
* libfsntfs_volume_get_root_directory return 0 if MFT entry 5 does not exists
* Check if mft_entry should be cloned before passing to
libfsntfs_file_entry_initialize in case it is cached out
otherwise remove it from file_entry
* tests: pass mft_metadata_file different input files
* look into handling directories with high number of entries
* libfsntfs/pyfsntfs attribute
- expose raw attribute data?
* USN change journal
- add support for values in $Max
* resident data
- handle valid data size
* enforce LIBFSNTFS_FILE_ENTRY_FLAGS_MFT_ONLY when trying to read data runs
* fix or remove TODO_CASE_INSENSITIVE
* compressed data
- handle decompression errors e.g.
compression tuple offset value out of bounds.
- have means to map sparse ranges outside compressed blocks
- handle valid data size
* create fsntfsexport tool to export file entry data
* handle pre 3.1 attribute names?
* check file entry life times
* set file entry name, if get by index and number of filenames is 1
* cached indexes?
* data runs block
- add a check to see if data run sizes add up
* volume
- complete libfsntfs_volume_has_bitlocker_drvie_encryption
- complete libfsntfs_volume_has_volume_shadow_snapshots
* file entry
- add API get file name by attribute index functions?
- add API get parent file_reference name by attribute index functions?
- add API function for owner
- add API function for security identifier
- only retrieve file name from the directory entry?
or make clear in function documentation that first
non-short filename is the fallback?
- add support to retrieve name of the root entry if directory entry is missing
* pyfsntfs
- add attribute type enum
* pyfsntfs file entry
- expose more MFT entry values through API and pyfsntfs
- add is empty function
- add has_reparse_point function
- add has_symbolic_link function
- add is_corrupt function?
- how to handle file-like object functions for non-data file entry
* pyfsntfs file entry/data stream
- add extents iterator?
* libfsntfs/pyfsntfs file entry
- expose default data stream
- add support for short file name
- fallback to short file name if no long
* libfsntfs_mft_entry_read_element_data set MFT only flag using element flags
* libfsntfs_attribute_read_from_mft handle attribute size out of bounds
* mft metadata file parsing mark file entry as in complete if data is stored
outside the $MFT
* change MFT entry flags value checks to named definitions
* attribute data parsing
- add SSIZE_MAX check for attribute->data_size before (size_t) cast
* cached approach of reading attributes ?
* fix issue on win2k image
- stack overflow infinite loop
- determine MFT entry index based on offset
do not rely on value in structure
* MFT entry create get data segment function for internal usage
* how to handle named index roots e.g. $ObjId:$O, $Quota:$O
* fix issue with bounded MFT entry cache
* support MFT entry 0 consisting of multiple $DATA attributes
- add segment support to ntfs attribute data reference
* file_entry: clone directory entry ?
* what about ADS support ?
- todo read from ads
* change libfsntfs_attribute_reference_append_attribute into insert and sort
attribute ranges
* add function to retrieve MFT entry by index
* check if check_signature function uses the right offset
* refactor: libfsnt_array_append_entry in index ?
* move get mft entry to file entry initialize ?
- clone mft entry in file entry initialize (for now the mft entry cache
contains a slot for every entry)
* move volume header from io handle to separate object ?
* $MFT scan
- mark ignored attribute list
- mark ignored data stream
- mark ignored index
- handle corrupt MFT entries (e.g. missing FILE signature) (+/-)
- allow to read data runs but do not allow to read data
* $UsnJrnl:$J parsing
- move UsnJrnl parsing into library ?
- add support for $UsnJrnl:$J file parsing
* API
- expose logged utility stream attribute
Format:
* index
- group equivalent index data values
* boot block
- remove value restriction add sanity check
* add support for attributes:
- logged utillity stream (LOGGED_UTILITY_STREAM) (partial)
* pre NTFS 3.0 attribute types
- volume version
* filenames
- ignoring short filenames for now?
* ntfs3g indicates volume is hibernated, could this be stored in the volume flags?
Tools:
* fsntfsinfo
- print ADS
- move UsnJrnl to separate tool?
- fix remnant data in buffer and remove work around
- sanitize control characters in filenames
- add detection of BDE and VSS
- add support for $LogFile
- print $DATA attribute size
Error tolerance:
* Support partial images/file systems
Tests:
* file with resident data
* file with non-resident data
* file with sparse data
* file with compressed data
* file with valid data size < data size
* file with ADS
* directory with ADS
Performance:
* compact attribute union data/file reference (use type to distinguish between them)
Debug:
* print volume information flags description
Deployment
* write man pages
20141011
* see `git log' for more recent change log
* updated dependencies
* changes for project site move
20141004
* removed README.macosx
20140810
* worked on exposing the attributes
20140809
* worked on data streams support
* worked on exposing the attributes
20140808
* worked on data streams support
20140803
* bug fix in Python bindings
20140628
* Worked on format support
20140530
* Worked on Python bindings
20140529
* updated dependencies
* Worked on Python bindings
20140417
* small changes
20140318
* worked on non-resident attribute list support
20140207
* worked on libfdata refactor
20140206
* worked on libfdata refactor
20140205
* worked on libfdata refactor
20140204
* worked on libfdata refactor
20140203
* worked on libfdata refactor
20140119
* worked on libfdata refactor
20140118
* 2014 update
* updated dependencies
* worked on libfdata refactor
20131109
* updated dependencies
20130915
* code clean up
20130914
* updated dependencies
* added libcthreads build support
20130224
* updated dependencies
* 2013 update
20120929
* updated dependencies
20120821
* improve NTFS version 3.0 support
20120820
* applied update
* improved reading MFT attribute lists and data MFT entries
20120526
* worked on MFT read and seek data functions
20120520
* 2012 update
* updated dependencies
* added libfusn
* fsntfsinfo:
- added info handle
20111125
* code clean up
* added support for empty volume name
20111124
* removed libvshadow
* updated configure.ac and m4 scripts
* added include/codepage.h
* updated common, array type
* updated libcstring, libsystem, libuna, libfdata, libfdatetime, libfguid,
libfwnt
* added libfcache
* code clean up
20110510
* update libvshadow
20110509
* dist fixes
20110508
* updated configure.ac
* updated libcstring, libsystem, libuna, libbfio, libfdata, libfguid
20110309
* small changes
20110308
* small changes
20110306
* worked on support for MFT consisting of multiple data runs
20110305
* updated configure, common, array type, libcstring, liberror, libnotify,
libsystem, libuna, libbfio, libfdata, libfdatetime, libfguid, libfwnt
* 2011 update
20101216
* updated Makefile
20101214
* updated configure/Makefile
20101209
* added missing MFT entry flags debug output
* code clean up
* added initial gettext support
* updated common, libfdatetime
20101203
* updated common, array type, liberror, libnotify, libsystem, libuna, libbfio,
libfdata
20101129
* worked on txf data
20101128
* worked on txf data
20101127
* updated libfdatetime
* moved abort to IO handle
* worked on txf data
20101126
* worked on support for multiple index allocation attributes
20101125
* worked on support for multiple index allocation attributes
* updated libuna, libbfio, libfdata
20101124
* updated configure, libcstring, liberror, libbfio
* worked on support for an attribute list
20101113
* textual changes
20101112
* renamed library to libfsntfs
20101110
* worked on winsxs support
20101109
* worked on logged utility stream
* updated include/error.h
* updated libfdata, liberror, libbfio, libnotify, libsystem
* added support for directory index that only consists of index root attribute
* fixed bug in fsntinfo
* added support for directory index that has root and empty allocation index
attributes
20100912
* worked on reading attribute list
* updated libbfio
20100911
* improved handling data runs
20100910
* worked on reading directory entries
20100909
* worked on reading directory entries
20100908
* worked on file entry functions
* worked on reading directory entries
* added debug print of file name attribute namespace description
20100907
* worked on reading directory entries
20100906
* worked on reading indexes
20100905
* worked on reading indexes
* worked on data runs
20100904
* worked on attributes
* worked on reading indexes
* worked on fixup values
20100903
* worked on mft attribute
* updated libbfio, libfdata
* worked on file entry API functions
* added libfguid for $OBJECT_ID attribute
* worked on attributes
20100828
* worked on reading a MFT entry and attributes
20100827
* worked on reading a MFT entry and attributes
* added debug print of file attribute flag description
* added debug print of mft attribute type description
20100826
* worked on reading a MFT entry and attributes
20100825
* initial version
|