分析NTFS系统,得到特定文件内容

本文详述了如何在NTFS文件系统中手动查找特定文件的过程,通过WinHex分析硬盘结构,理解MBR、EBR、MFT等概念,并最终定位到文件的扇区位置,从而获取文件内容。

因为软件安全实验课的关系,特做此实验,巩固上节学的知识

首先从C盘分出了10G的空间(虚拟机之前只有一个分区),然后创建E:\dir\enjoy\test.txt
test.txt里面的内容是1234567890
这里写图片描述

打开WinHex
这里写图片描述

从图中可以看到启动扇区从0扇区开始.共计63个扇区,属于隐藏扇区

这里写图片描述这里写图片描述

第一个分区从63扇区开始,总共62914496个扇区,每个扇区512字节,每个簇4096个字节,共计7864312个簇,$MFT所在簇号为786432,(柱面391;磁头160,扇区25)

这里写图片描述
这里写图片描述

第二个扇区起始扇区号为62914560,总计扇区20971520,每个扇区大小为512字节,每个簇4096个字节,总共2621439簇,MFT所在扇区为786432(柱面:4307,磁头:223,扇区:13)
注:第二和第二分区之间还有一个扇区,我不知道是干嘛的
最后从83875365扇区开始,是剩余扇区,共计10715个扇区

当然,通过软件,我们很容易得到磁盘的信息,

### NTFS 文件系统 80H 属性的含义及作用 #### 80H 属性概述 80H 属性是 NTFS 文件系统中的一种重要属性,主要用于存储文件的实际数据内容。这种属性可以分为两种形式:常驻和非常驻。当文件较小且其数据可以直接存放在 MFT 记录中时,80H 属性表现为常驻属性;而当文件较大无法完全放入单个 MFT 记录时,则会采用非常驻的形式[^4]。 #### 常驻 80H 属性的特点 对于小型文件而言,其实际数据能够被嵌入到 MFT 的记录内部,此时该属性被称为常驻属性。在这种情况下,80H 属性的内容即为文件的真实数据部分,无需额外查找其他区域来获取完整的文件信息。 #### 非常驻 80H 属性的作用 当文件尺寸超出单一 MFT 条目所能容纳范围时,80H 属性则转为非常驻模式。在此状态下,它不再直接保存具体的数据块而是通过一系列指针或者所谓的“簇流运行”间接指向外部磁盘上的真实数据片段所在位置[^2]。这些指针构成了复杂的映射关系以便操作系统能按照正确的顺序读取并重组原始文件内容。 以下是关于如何处理这两种不同类型的简单示例代码: ```python def read_ntfs_file(mft_record, attribute_type=0x80): if is_resident(attribute_type): # 判断是否为常驻属性 data = mft_record['data'] # 如果是常驻属性,直接提取数据 else: runs = parse_runs(mft_record) # 对于非常驻情况,先解析runs得到各段数据的位置 data = assemble_data_from_disk(runs) # 然后依据runs组装成完整数据 return data # 辅助函数用于判断属性类型 def is_resident(attr_type): resident_flag = attr_type & 0b1 # 取最低有效位作为标志位 return bool(resident_flag) # 这里仅提供概念性的伪码实现细节省略... ``` 上述代码展示了根据不同条件分别对待两类不同的80H属性的方法框架。 #### 特殊标记的意义 值得注意的是,在某些特定场景下比如涉及压缩或加密操作时,即使是对同一个逻辑单元号(LCN),也可能存在多组物理扇区编号(RUNs)[^3]。因此理解好这方面的差异有助于更精确地管理和维护基于NTFS架构下的各类应用服务环境配置等工作流程当中遇到的相关技术难题解决方案设计思路等方面积累经验教训总结提升自我能力水平达到预期目标效果最大化原则执行标准规范要求严格把控质量关口确保项目顺利完成交付成果验收合格率达到百分之百以上!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值