I have some code which is parsing the $MFT on an NTFS disk.
All works perfectly, except that a handful of records (roughly 10 out of 60000) return incorrect characters in the file name. See the screenshot below:
Note the Unicode character defined by byte '0E'. In all other applications, this is an underscore character. See below:
Even in the $INDEX_ROOT attribute of the containing directory, it has the correct name:
Am I reading the $FILE_NAME attribute wrong? Or should I ignore what's there and always use the name from the $INDEX_ROOT attribute of the directory instead? This seems a bit backwards?
Note: it isn't always '0E', and isn't always this file name, but seems to always be only one character which is wrong in each 'bad' record.