浅议探索ntfs

浅议探索ntfs

ID:22298936

大小:80.50 KB

页数:12页

时间:2018-10-28

浅议探索ntfs_第1页
浅议探索ntfs_第2页
浅议探索ntfs_第3页
浅议探索ntfs_第4页
浅议探索ntfs_第5页
资源描述:

《浅议探索ntfs》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、浅议探索NTFSNTFS是etadata)。以下列出FT1$MFTMirr2$LogFile3$Volume4$AttrDef5.6$Bitmap7$Boot8$BadClus9$Secure10$UpCase11$ExtendicrosoftFT2000-04-2719:314,096$MFTMirr2000-04-2719:31131,072$UpCase2000-04-2719:310$Volume9个文件40,961,960字节1个目录51,863,552可用字节需要指出的是ntfs.sys将元数据文件以一种非凡的方式打开,所以在打开NtfsPro

2、tectSystemFiles后,假如使用ReadFile等产生IRP_MJ_READ等IRP包时将会导致PageFault(详见GaryNebbett的《FT中的FileRecord(inode)讨论的。为更好的继续以下的讨论,这儿我列出FileRecordHeader的结构:typedefstruct{ULONGType;USHORTUsaOffset;USHORTUsaCount;USNUsn;}NTFS_RECORD_HEADER,*PNTFS_RECORD_HEADER;typedefstruct{NTFS_RECORD_HEADERNtfs;U

3、SHORTSequenceNumber;USHORTLinkCount;USHORTAttributesOffset;USHORTFlags;//0x0001=InUse,0x0002=DirectoryULONGBytesInUse;ULONGBytesAllocated;ULONGLONGBaseFileRecord;USHORTNextAttributeNumber;}FILE_RECORD_HEADER,*PFILE_RECORD_HEADER;下面我将讨论如何定位$MFT。稍微有点操纵系统知识的人都会知道引导扇区(BootSector),其物理位

4、置为卷中的第一个扇区。以下由dskprobe.exe(bz1;USHORTMbz2;USHORTReserved1;UCHARMediaType;USHORTMbz3;USHORTSectorsPerTrack;USHORTNumberOfHeads;ULONGPartitionOffset;ULONGReserved2[2;ULONGLONGTotalSectors;ULONGLONGMftStartL;ULONGLONGMft2StartL;ULONGClustersPerFileRecord;ULONGClustersPerIndexBlock;UL

5、ONGLONGVolumeSerialNumber;UCHARCode[0x1AE;USHORTBootSignature;}BOOT_BLOCK,*PBOOT_BLOCK;#pragmapack(pop)各个字段的具体意义从字段名中即可大致清楚。在linux-ntfs的GNU工程(projects/linux-ntfs)中也有具体的文档,限于篇幅我不将其列出。可以使用如下代码读出卷中的第一个扇区:hVolume=CreateFile(drive,GENERIC_READ,FILE_SHARE_READ

6、FILE_SHARE_WRITE,0,OPEN_EX

7、ISTING,0,0);ReadFile(hVolume,%26amp;bootb,sizeof(bootb),%26amp;n,0);bootb是一个BOOT_BLOCK结构,在我的卷中如下格式(请对应Sector00.bin分析):DumpBootBlockatbeloberOfHeads:F0PartitionOffset:3FTotalSectors:41C090MftStartL:4Mft2StartL:41C09ClustersPerFileRecord:F6ClustersPerIndexBlock:1VolumeSerialNumber:E

8、8319D04BootSignature:AA55以上的MftStartL实在是$MFT在卷中的簇(Cluster)号。簇是NTFS的基本单位,最小单位。一个只有1Byte的文件也要占用一簇的空间。NTFS使用L(LogicalClusterNumber)来代表NTFS卷中的物理位置,其简单的从0到卷中的总簇数减一进行编号。对于一个特定的文件NTFS则使用V(VirtualClusterNumber)来映射L实现文件的组织。从MftStartL的值4可以知道$MFT的L为4和SectorsPerCluster、BytesPerSector的大小即可定位$M

9、FT的位置。得到$MFT的位置后,假如遍历$MFT中所有的File

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。