|
From: Joe Forster/STA <sta@c6...> - 2015-09-30 15:52:46
|
Hi guys, You really stirred me up with this exFAT discussion and Eric gave me a great idea with requesting LTOOLS. I connected the two, I delved into it and spent most of the last five days with implementing an exFAT file system processor. It is _very_ exciting! I have _not_ looked into any existing source, the software is written from scratch, according to the contents of a virtual disk image (created and filled with data under Windows 7 running in VirtualBox) and reverse engineering documentations at: - SANS Institute: Reverse Engineering the Microsoft exFAT File System http://www.sans.org/reading-room/whitepapers/forensics/reverse-engineering-microsoft-exfat-file-system-33274 - Paradigm Solutions: Extended FAT File System (1.4) https://paradigmsolutions.files.wordpress.com/2009/12/exfat-excerpt-1-4.pdf - NTFS.com: exFAT overview http://ntfs.com/exfat-overview.htm Currently it has the following limitations: - no physical disk access, only virtual disks (= files); - read only; - files can't be accessed yet, only the directory tree traversed; - cluster chains are not yet followed; - it's written in C (not assembly), too big; - there will probably be a couple of nasty tricks to handle integers larger than 32 bits in DOS (LBA48 support). Its nice features are: - it's written in C (not assembly) ;-) , should be portable; - disks, partitions, volumes, clusters are abstract, should be able to support other file systems; - I _really_ tried to follow C coding conventions; - I'm aware of DOS memory constraints and try not to rely on lots of megabytes of memory available; - it compiles under both Borland C++ (DOS, 16 bit) and MinGW/gcc (Windows, 32 bit), without errors or warnings (all gcc warnings enabled) - it outputs debug messages in _great_ detail; - it does an _insane_ amount of checks on the partition table, exFAT boot sector and exFAT directory structures, could also be used as (read-only) CheckDisk/fsck; - it supports (or is supposed to support at the end) all exFAT details except for TexFAT (transactions; switch DOS disk cache off instead! ;-) ) and ACL table (no documentation available). I also found a few errors in the documentations mentioned above. I plan to release it, with full source, as soon as it can read files, a piece of standalone software (DOS and Windows) in the style of LTOOLS: http://www2.hs-esslingen.de/~zimmerma/software/ltools.html . (If you'd like to help or are interested, E-mail me.) I'm not sure about licensing, as I was previously planning to donate _all_ my software into the public domain, but I've been seduced here to go for GPL instead. ;-) I've also been working on a Windows port of FATSort: http://fatsort.sourceforge.net . Actually, I've had it and been using every day for _years_, just haven't found time to apply all changes into the latest release. This software could also be extended to support exFAT. I just need more free time. (But who doesn't? :-) ) Joe -- KOVÁCS Balázs aka Joe Forster/STA; sta@...; http://sta.c64.org Don't E-mail spam, HTML or uncompressed files! More contacts on homepage |