File: ChangeLog

package info (click to toggle)
libfsntfs 20240501-1
  • links: PTS, VCS
  • area: main
  • in suites: sid, trixie
  • size: 19,292 kB
  • sloc: ansic: 317,006; sh: 6,577; makefile: 2,322; python: 1,284; cpp: 244; sed: 16
file content (462 lines) | stat: -rw-r--r-- 12,127 bytes parent folder | download
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