当前位置: 首页 > news >正文

NTFS文件系统与隐写技术笔记

一、NTFS文件系统概述

NTFS(New Technology File System)是Windows从NT 3.1起一直使用的默认文件系统,负责硬盘数据的存储、读取与安全保护。

1. 核心特性

特性与说明

可靠性

支持事务日志,系统崩溃后能自动回滚到一致状态,减少文件系统损坏风险。

自我修复

自动检测并标记坏扇区,将数据迁移到健康位置,后台修复小规模损坏。

安全与权限

基于ACL(访问控制列表)的精细权限控制,支持BitLocker硬件级加密。

容量与文件名

最大卷大小8 PB(需较新系统),支持最长255字符的长文件名(Unicode)。

磁盘管理

默认4KB簇,支持磁盘配额、文件/文件夹透明压缩、卷挂载等。

2. 工作原理(MFT)

· 主文件表(MFT):NTFS将所有对象视为文件,MFT是核心数据库。

· MFT记录:每个文件/文件夹至少有一条1KB左右的记录,存储文件属性。

· 常驻与非常驻:小文件(<1500字节)内容直接存在MFT记录中(常驻);大文件属性指向外部数据区(非常驻)。

3. 优缺点

优点:

· 系统崩溃后恢复快

· 支持细粒度权限

· 大容量硬盘高效

· 日志减少数据丢失

缺点:

· 小卷开销大(不建议用于<400MB分区)

· 兼容性:macOS默认只读,Linux需额外软件

· 对内存和硬盘性能有一定要求(建议256MB以上内存,5400转以上硬盘)

二、NTFS文件隐写技术

隐写利用NTFS特性将数据隐藏于文件中而不易被察觉。

1. 交换数据流(ADS)

· 原理:NTFS文件可附带多个隐藏的备用数据流($DATA)。主文件流默认可见,ADS则不可见。

· 隐蔽性:普通文件管理器不显示ADS,文件大小不变;但ADS与宿主绑定,删除宿主则流丢失。

· 操作示例(以txt为例)

· 向ADS写入内容:

echo "隐藏内容" > 宿主.txt:隐藏.txt

· 独立ADS(不依赖宿主文件):

echo "独立内容" > :独立.txt

· 读取ADS内容:

notepad 宿主.txt:隐藏.txt 或 more < 宿主.txt:隐藏.txt

2. 底层MFT操作

· 直接修改MFT中文件的索引信息,将记录标记为“未使用”,数据仍在磁盘上但普通工具无法发现。

· 需要高级取证技术才能检测。

3. 时间戳隐写

· 利用文件时间戳的微秒位或未显示精度部分嵌入信息,视觉上时间正常。

· 需磁盘级分析工具检测。

4. 检测与防御

方法 命令/工具

列出文件所有流(CMD) dir /r 文件名

列出文件所有流(PowerShell) Get-Item -Path 文件路径 -Stream *

图形化工具 AlternateStreamView、NtfsStreamsEditor、Streams(微软)

预防建议 使用支持ADS扫描的杀毒软件;避免将含ADS的文件打包为不支持NTFS流的格式(如ZIP)

三、从压缩包中提取NTFS隐藏信息

当你有一个压缩包,其中包含的文件(以txt为例)可能携带ADS等隐藏信息时,按以下步骤提取。

核心原则:必须用支持NTFS数据流的工具解压(如WinRAR,zip),再进行提取。

方法一:图形化工具(推荐,简单直观)

工具:NtfsStreamsEditor

1. 使用 WinRAR 或 7-Zip(需启用“解压NTFS流”选项)将压缩包中的txt文件解压到本地文件夹。

· WinRAR默认支持。

· 7-Zip需在解压时勾选“解压NTFS流”(或使用 -snf 参数)。

2. 下载并运行 NtfsStreamsEditor。

3. 点击自定义磁盘/文件(夹),选择数据流名称匹配(可逐一尝试),点击搜索

4. 扫描完成后,勾选扫描出的数据文件,点击导出即可。

其他备选:AlternateStreamView。

方法二:命令行(原生Windows,无需安装)

1. 确保已解压(同上,必须用支持流的工具解压)。

2. 列出隐藏流:

```cmd

dir /r 文件.txt

```

或 PowerShell:

```powershell

Get-Item -Path "文件.txt" -Stream *

```

3. 查看隐藏流内容:

```cmd

more < "文件.txt:流名称"

```

4. 提取到新文件:

PowerShell:

```powershell

Get-Content -Path "文件.txt" -Stream "流名称" > 提取的内容.txt

```

方法三:Python自动化(适合批量处理)

前提:以管理员身份运行,安装 pywin32 (pip install pywin32)。

```python

import os

def read_ads(file_path, stream_name):

ads_path = f"{file_path}:{stream_name}"

try:

with open(ads_path, 'rb') as f:

return f.read()

except Exception as e:

return f"读取失败: {e}"

# 使用示例

file = r"C:\path\to\file.txt"

stream = "hidden_data"

data = read_ads(file, stream)

print(data)

```

特殊情况处理

· 压缩包本身为NTFS磁盘镜像(如VMDK、DD):需使用取证工具(FTK Imager、Arsenal Image Mounter)挂载或解析,再按上述方法提取。

· 隐藏信息采用MFT或时间戳隐写:需使用专业取证工具(如 analyzeMFT、Sleuth Kit)进行分析,普通ADS方法无效。

http://www.cnnetsun.cn/news/2764017.html

相关文章:

  • 扩散模型在风险样本生成中的应用与优化
  • PCIe扫盲:为什么你的显卡需要BAR?深入浅出聊聊内存映射与IO映射那点事
  • STM32实战:手把手教你用I2C读取SM9541压力传感器数据(附完整代码与避坑指南)
  • HsMod:炉石传说终极游戏增强插件,彻底改变你的对战体验
  • GPX Studio完整使用指南:5分钟掌握免费在线GPX轨迹编辑终极技巧
  • EGFR L858R 突变 NSCLC 治疗困境与突破方向
  • M2.7本地推理实战:llama.cpp+GGUF喂饭级部署指南
  • MiniMax-M2.7授权变更:开源模型商用合规指南
  • 别再只盯着CPU核心数了!聊聊手机芯片里AP、BP、CP那些事儿(附苹果A9与骁龙820对比)
  • RePKG:3步轻松提取Wallpaper Engine壁纸资源的终极指南
  • 从iPhone的基带到安卓的‘小核’:手把手拆解手机芯片AP、BP、CP的分工与协作
  • 从无人机悬停到恒温热水器:聊聊身边自动控制系统里的‘快’与‘稳’如何权衡
  • 别再乱装PyTorch/TensorFlow了!保姆级教程教你如何根据CUDA和Python版本选对组合
  • 蓝速科技 75 寸圆柱全息数字人舱深度评测
  • 服务的本质是状态契约:从systemd到K8s的服务全链路解析
  • Claude Code接入国产大模型的协议桥接方案
  • ROS 2 Jazzy变更解析:稳定性加固与C++17/Python类型现代化实践
  • 如何永久保存微信聊天记录:WeChatMsg完整解决方案与数据守护指南
  • 避开借贷不平的坑:SAP自动凭证开发中BAPI_CURRENCY_CONV_TO_EXTERNAL函数的正确用法
  • WPS 2019 烦人的稻壳商城弹窗,三步教你永久关闭(附恢复方法)
  • 从原理图到PCB布局:LDO和DC-DC实战避坑指南(以TI和MPS芯片为例)
  • 避开USB驱动开发的第一个坑:深入理解设备描述符中的Class/SubClass/Protocol
  • STC89C51单片机实测CAN通信资源:MCP2515驱动代码+Proteus原理图
  • 别再手动数字节了!LabVIEW串口接收的‘缓冲区读取’与‘字符串拼接’保姆级教程
  • 移远EC100Y Cat1模块开发环境搭建全记录:从DS-5安装到SDK编译避坑指南
  • STM32 CubeMX配置DFSDM驱动PDM麦克风避坑指南:从时钟树设置到DMA数据流不断流
  • TongWeb 7.x 部署后必改的5个 tongweb.xml 配置项(附端口修改、应用卸载教程)
  • 告别手动计数!用ImageJ的‘二值化+形态学操作’批量处理细胞图片
  • 稀土玻璃吸收光谱一键解析工具:自动算出Ω₂、Ω₄、Ω₆三个J-O强度参数
  • 别再只测网速了!用笔记本无线网卡和Wireshark抓取Beacon帧,实测Wi-Fi信号强度(附Python数据处理脚本)