Velocidex / go-ntfs

An NTFS file parser in Go
Apache License 2.0
64 stars 23 forks source link

Support LZX and XPRESS compression methods #70

Open mappu opened 1 year ago

mappu commented 1 year ago

Hi!

There's good support here for LZNT1 compression (created from Windows Compress contents to save space option or compact.exe /c).

In Windows 10 / Windows Server 2016, some extra compression algorithms XPRESS4K, XPRESS8K, XPRESS16K, and LZX were added (created from compact.exe /c /EXE LZX). These have higher compression ratios but do not support in-place modification.

On disk these files show up as reparse points, with the compressed data stored in a WofCompressedData ADS stream. In real Windows decompression is performed by a filesystem filter driver above ntfs. So it's arguable if it belongs in this project or not. But to correspond to the existing lznt1 support, there should be support for the other compression algorithms too.

Some links: