1. 背景
本文主要介绍$Root元文件属性的解析。先介绍元文件各属性的属性体构成,然后结合读取到的元文件内容,对测试磁盘中目标分区的根目录进行展示。
2. $Root元文件属性的解析
使用每个属性头偏移0x04-0x07处的值可以从第一个属性开始依次定位下一个属性,即30H属性的开始位置为10H属性的开始位置加上10H属性头偏移0x04-0x07处的值,40H属性的开始位置为30H属性的开始位置加上30H属性头偏移0x04-0x07处的值,依此类推。
(1)10H属性
10H属性体的偏移0x00-0x07表示文件创建时间;偏移0x08-0x0F表示文件最后修改时间;偏移0x10-0x17表示文件的MFT修改的时间;偏移0x18-0x1F表示文件的最后访问时间;偏移0x20-0x23表示DOS文件属性;偏移0x24-0x27表示文件可用的最大版本号;偏移0x28-0x2B表示文件版本号;偏移0x2C-0x2F表示类ID;偏移0x30-0x33表示文件所有者ID;偏移0x38-0x3F表示本文件所占用的字节数;偏移0x40-0x47表示更新序列号。
结合下图所示的$Root元文件内容,10H属性头偏移0x08处的值为00,表示该属性为常驻属性;属性头偏移0x14-0x15处的值为18 00(即0x0018),表示属性体开始于偏移0x18处;属性体偏移0x00-0x07处的值为06 67 3D 2E EC 41 CA 01;偏移0x08-0x0F处的值为EA D4 59 F8 76 64 DA 01;偏移0x10-0x17处的值为EA D4 59 F8 76 64 DA 01;偏移0x18-0x1F处的值为92 40 1A C8 73 64 DA 01;偏移0x20-0x23处的值为06 00 00 00(即0x00000006),表示本文件为隐藏的(0x02)系统(0x04)文件;偏移0x24-0x27处的值为00 00 00 00,表示禁用;偏移0x28-0x2B处的值为00 00 00 00;偏移0x2C-0x2F处的值为00 00 00 00,表示类ID为0。