FAT文件系统简明教程

FAT12环境中文件删除、文件恢复原理实验(单簇文件) 这是之前在xl博客上写的计算机病毒原理课程实验二的续。 原理上,文件删除是将目录项的第一字节改为e5(删除文件),并将FAT表中链上每个FAT项还原为0(回收簇)。 该实验目的为验证并试验此原理。 因为完整实验的之前步骤已经在xl博客上实现了,这里就不再赘述,直接从删除文件这个步骤开始: 显而易见在根目录下有MUSIC目录,GAME目录和一个TXT文件,在这里删除这个TXT文件。 阅读详情

FAT文件系统简明教程

FAT文件系统是什么?

FAT是一个由微软发明的简单的文件系统,Linux系统和Windows系统都支持这种文件系统。

FAT文件系统的格式

一个FAT文件系统分为四个不同的部分。

  • 第一部分:保留扇区,第一个保留扇区(0号扇区)是记录磁盘的引导记录,分区信息等。

  • 第二部分:文件分配表(File allocation Table, FAT),由两部分组成,FAT1和FAT2,FAT2是FAT1的备份,一般情况下不会用到。一般情况下前两簇(0簇和1簇)是保留簇。

    文件分配表里会记录簇的使用信息,以及簇列表。文件分配的最小单位是簇,簇标记大小为连续的4个字节,簇的标记有五种:

    空闲簇(作用:说明这个簇是没有被占用的。)

坏簇标记0xF7FFFF(作用:说明这个簇不可用,避免将信息写到坏簇上,使得数据丢失。)
簇占用标记0xFFFFFF0F(其实表示该簇是一个文件的结束。)
下一簇的位置(每个文件可能有好多簇表示,用前一簇记录下一簇的位置,达到对整个文件的记录)

  • 第三部分:根目录区域,相当于一个目录表,用来记录文件和目录信息的。
  • 第四部分:数据区域:实际的文件和目录的存储区域。

文件的存储和删除

很多小伙伴可能会有这种体会,删除一个文件比复制或者下载一个文件要快的多。这是怎么回事呢?

  • 这其实是因为如果你普通删除一个文件,它并不会将文件的内容真的删除。

  • 同样当你重命名一个文件时,其实它并没有删除原本的目录项,而是新建了一个目录项,指向原来的文件内容。

这几句话话听着可能有点绕,没关系,我们通过一个例子来解释一下:

文件的存储

理解文件的安全删除必须先理解文件的存储。

我们这里还是以FAT文件系统来举例:

新建一个文件时,磁盘中发生了什么?
  1. 操作系统通过读取1号扇区表中的信息,找到剩余总簇数,以及下一个可用簇的编号。

  2. 然后在根目录区域记录文件信息,比如说文件大小,文件名,创建信息等,并且在其中记录文件的首簇号,并计算新的剩余总簇数(=之前的剩余总簇数-此文件占用的总簇数),和下一可用簇编号。

  3. 在FAT表中修改这个文件的簇列表。

  4. 在对应簇进行写数据。

  5. 操作系统重新读取磁盘信息,可以看到新建的文件了。

    举个例子:你要将自己攒的一千万(我可没这么多钱)放在自己家的柜子(FAT磁盘)里,而你又是一个办事有条理的人,你会将自己柜子里的抽屉总数(总簇数)记录一下,而且按照顺序为你的抽屉然后将每个抽屉的使用情况(FAT1)记录在抽屉记录清单上,比如说,0号抽屉不用(保留簇标记)5号抽屉坏了(坏簇标记),6号抽屉里有东西(簇占用标记)。而且,你怕自己将这个记录丢了,所以你又复制了一份一模一样的记录(FAT2),每次放东西都会在两份记录里都写进去。

    现在你要将这1000万放在自己的抽屉里(就是这么任性,有钱不存银行),然后,你找到了自己的记录表(FAT1),然后从里面查看还有多少个空抽屉(空闲簇)。

    现在你找到了下一个可以用的是7号抽屉。但是1个抽屉存不下你这些钱(文件大于1簇),所以你只好放几个抽屉了,而且你还想知道自己的钱到底是从哪开始放的(文件起始簇),用几个抽屉放(文件总大小),什么时候放的(文件创建时间)等,所以又写一张东西记录清单(根目录区域)。

    你为了让自己知道我的钱是放在哪些抽屉里的,然后在原来的抽屉记录清单(FAT1 和FAT2)上将抽屉记录上记录了下一个存钱的抽屉。当这是最后一个存钱抽屉时,你将这个记录改为结束(簇占用标记)。现在你可以把你的钱放在你规划好的抽屉里了(数据区)。

普通删除一个文件时,磁盘中发生了什么?
  1. 找到文件的目录项,将文件首簇记录的高位清0,将目录项记录的第一个自己改为E5,将文件占用的簇释放掉,也就是在FAT表中将之前占用的簇记录改为空闲,然后修改剩余总簇数,有必要的话,也修改下一可用簇。
 > 不难看出其实文件内容并没有被删除,所以说只要你新建的文件没有覆盖之前文件内容,这个文件是可以被恢复的。
怎么安全删除?

你可以用一些特定工具(比如WinHex)进行彻底删除,本质就是在文件实际内容用0比特或者随机比特进行填充。

​

FAT文件的隐写

什么是隐写?

百度百科定义:隐写术是关于信息隐藏,即不让计划的接收者之外的任何人知道信息的传递事件(而不只是信息的内容)的一门技巧与科学。隐写术英文作“Steganography”,来源于约翰尼斯·特里特米乌斯一本看上去是有关黑魔法,实际上是讲密码学与隐写术的一本书Steganographia中。此书书名来源于希腊语,意为“隐秘书写”。

本次实验采用的隐写可以说是最简单的隐写了,因为它只是让你从目录中查看不到这个文件信息,如果你用一些磁盘查看工具看到这些东西简直不要太容易!因为本文的重点不是介绍隐写术,而是FAT文件系统,所以不过多讨论。

隐写实验过程

本次实验环境:

操作系统:Windows 8.1 

实验工具:磁盘查看工具:WinHex(其他工具也可以)。

百度网盘下载:[WinHex](https://pan.baidu.com/s/1eIxsYH1qtuGw9C0egn1UOg)

工具安装:解压缩以后先打开keygen.exe是注册码生成器,复制注册码,然后点击setup.exe可以选择语言。然后点击winhex.exe 启动文件,再将注册码生成器里生成的内容复制到第一行帮助(help)选项卡中的注册(Register)内容中。

  1. 先格式化U盘,文件格式选择FAT32,分配单元大小(其实就是簇大小)选择(8192Byte=8KB)。

    **目的:**使得簇信息等查看起来简单,方便实验,但不是必须的。

    这里写图片描述

  2. 查看当前可用簇的总数(一般情况下在1号扇区偏移地址为0x1EB的连续四个字节),以及下一可用簇(在可用簇总数后面的连续四个字节,也就是在1号扇区偏移地址为0X1E的连续四个字节。)。以本次实验为例:A2 B2 18 00是可用簇总数的记录,实际大小为(0X0018B2A2),转化为10进制就是1618594个可用簇。同样地 05 00 00 00是下一可用簇的记录,实际大小为(0x00000005),转化为10进制就是第五簇。

    注意:高地址在右边,所以计算时要倒过来写。 ![外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OJSHt7Mk-1597573332627)(file:///C:\Users\斌\AppData\Local\Temp\ksohtml\wps1E57.tmp.jpg)]![img]](https://img-blog.youkuaiyun.com/20180610210735574?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1N0dWR5X2NvZGVy/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)(file:///C:\Users\斌\AppData\Local\Temp\ksohtml\wps1E58.tmp.jpg)
    这里写图片描述这里写图片描述

  3. 因为目的是要隐写,所以我们将第五簇用作隐写(在FAT的记录中随便找一项空闲簇都可以),然后将可用簇的总数减去1。然后在FAT1记录中找到第5簇的记录,将它修改为F7FFFFFF,也就是坏簇标记。(改为FFFFFF0F占用标记也可以)
    这里写图片描述这里写图片描述

  4. 找到第五簇,完成实际数据的写入。
    这里写图片描述这里写图片描述

  5. 保存修改,并重新插拔U盘。
    这里写图片描述这里写图片描述

  6. 验证是否成功。

重新插拔U盘,在U盘内随便新建一个文件,验证一下隐写文件是否会被覆盖。验证过程如下:重新用W inhex打开U盘,找到第五簇,看一下刚才写的数据是否还在。如果还在说明成功。不在的话,说明失败。
这里写图片描述这里写图片描述
这里写图片描述

经典FAT文件系统格式详解 FAT/FAT32曾经是windows下主流文件格式,虽然FAT已经这么多年了,也见识到一些缺点,但熟悉FAT,还是对文件系统认识有很大帮助。 一般来说,需要具备一些前期知识: 1. 文件存在flash或硬盘里,还是一个个字节进行存储的,存储介子本身不负责具体内容。如果要对硬盘的数据进行识别,必须需要一定格式,还需要一个驱动程序进行识别。 2. 文件格式最主要作用:格式化管理,快速查找文件 还有几个知识点: 扇区:一般为512,最小分割单位,但不是最小管理单位。 簇:管理最小单位,一.. 阅读详情

相关推荐

深入了解FAT文件系统

FAT文件系统由于其简单性和兼容性,仍然在许多领域广泛应用。了解其内部结构和工作原理有助于更好地管理和维护存储设备,同时在需要时也可以进行数据恢复和故障排除。希望这篇博客能够帮助你更好地理解FAT文件系统的运作机制。

qq_52010229的博客 3690

FAT32文件系统结构

FAT32文件系统结构: FAT32文件系统由DBR及保留扇区,FAT1,FAT2和数据区组成: DBR及保留扇区:DBR的含义是DOS引导记录,也称为操作系统引导记录,在DBR之后往往会有一些保留扇区。 FAT1:FAT的含义是文件分配表,FAT32一般有两份FAT,FAT1是第一份,也是主FAT。 FAT2:FAT2是FAT32的第二份文件分配表,也是FAT1的备份。 DATA:DA

yangyang031213的博客 3万+

FAT32文件系统详解

硬盘是用来存储数据的,为了使用和管理方便,这些数据以文件的形式存储在硬盘上。任何操作系统都有自己的文件管理系统,不同的文件系统又有各自不同的逻辑组织方式。例如:常见的文件系统有FAT,NTFS,EXT,UFS,HFS+等等。作者后面的文章会一一讲到,下面就来学习一下基于Windows的FAT32文件系统。 FAT32文件系统由DBR及其保留扇区,FAT1,FAT2和DATA四个部分组成,其机构如...

27Up的博客 4625

FAT32文件系统定位FAT文件分配表以及根目录

一、FAT1起始扇区 =  DBR的扇区号 + 保留扇区号 1.获取DBR的扇区号 磁盘的0号扇区的 0X1C6~0X1C9是第一个分区的起始扇区,这个扇区就是DBR 下图是本人的磁盘的0号扇区,可以看到DBR的扇区号是0X00 00 00 3F(小端格式) 2.得到保留扇区 打开DBR扇区,偏移0X0E~0X0F表示保留扇区 由图可知保留扇区数为0X00 26. F

Lydia的博客 2万+

FATFS基本入门教程(3)- FAT文件系统简介

作者注:FATFS应该是一个比较常用的嵌入式文件系统,支持FAT12/FAT16/FAT32/EXFAT格式,很多开发人员都用过。我在这里会写一系列文章来介绍FATFS的基本使用,欢迎感兴趣的同学关注。已发布的内容:(配套资料请见下方的第一篇文章中的介绍)为了深入地理解FATFS的使用,我们必须要对它支持哪些文件系统,以及这些文件系统的工作原理有所理解。这样才能在使用某些FATFS接口时,更好理解其特性,从而更加高效地使用这些接口。

李述铜的笔记 1877

【STM32单片机】FATS文件系统,写入字符串到文件,读取文件内容

基于正点原子的库函数版本的FATS文件系统,实现向文件写入字符串,读取文件内容,这里是指txt文件,其余文件其实也一样,读取成字节。

q742971636的博客 3007

FAT32文件系统介绍

FAT32文件系统(一)为什么要有文件系统(二)FAT32文件系统组成(三)分步介绍各部分(1) 首先介绍一下MBR(2)DBR介绍(3)FAT表介绍(4) 数据区 (一)为什么要有文件系统 文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构,即在存储设备上组织文件的方法。如果没有文件系统,那我们想找到在硬盘上保存的数据会是一件很麻烦的事情,文件系统的作用是,它负责为用户建立文件、读出、修改,控制文件的读取,我们常说的格式化硬盘就是写入文件系统。文件系统的种类有很多,而且有各自的特点,本文主要

水枂的博客 2万+

FAT文件系统详解与应用

文件分配表(File Allocation Table,FAT)文件系统是一种早期的文件系统,最初由微软和IBM共同开发,并广泛应用于多种操作系统中。FAT文件系统以其兼容性强、管理简单、易于实现等优势,在嵌入式系统、USB闪存驱动器、SD卡等存储介质上被广泛使用。FAT文件系统的演变历程展示了从简单的磁盘文件管理到更高效、灵活的存储解决方案的设计理念转变。FAT12是最早期的版本,适用于小型存储设备,如软盘。它采用12位索引,支持的最大存储容量为2^12个扇区。

weixin_42360846的博客 1923

详解FAT12文件系统

目录 1、详解FAT12文件系统 2、实验 1、向虚拟软盘写入文件 2、读取软盘文件系统信息 3、在根目录中查找目标文件 4、读取目标文件到内存 3、小结 1、FAT12文件系统 文件系统 -存储介质上组织文件数据的方法(数据组织的方式) 文件系统示例 -FAT12是DOS时代的早期文件系统 -FAT12结构非常简单,一直沿用于软盘 ...

洋葱汪的博客 2万+

倍福ADS通讯协议深度解析——从握手到数据包的完整旅程

本文以工程师视角,通过Wireshark抓包实战,深度解析了倍福ADS通讯协议的完整工作流程。从TCP三次握手建立连接,到拆解AMS/TCP信封、AMS Header地址与命令解析,再到ADS Data读写请求的载荷构成,完整呈现了一次数据通讯的“旅程”。文章重点剖析了协议包格式,并结合实际案例,提供了基于协议分析的故障排查思路,帮助开发者深入理解并精准调试工业自动化系统通讯。

weixin_29231725的博客 152

嵌入式学习之QT学习---14 QT跨平台运行之把QT程序交叉编译到ARM开发板

想要把qt工程放到开发板上运行,就需要用到交叉编译。由于qt是跨平台的,所以只需要换个编译器编译一下就可以。 以“定时器”的例子为例,在移植之前还需要进行一个准备工作,在windows下运行的时候,电脑屏幕很大,但是运行的窗口只有一点点大,开发板也有外接屏幕,如何让运行窗口自动适配开发板的外接屏幕呢?令其占满屏幕显示,而不是一小块。 第一步:需要设置一下,先给ui布局,如果不布局,控件就不会随着屏幕的大小的变化而变化。 第二步:利用代码来获取屏幕的大小,给widget.cpp文件下添加如下代码 #inclu

qq_42822743的博客 5457

硬盘文件系统系列之FAT

文件系统FAT介绍

存储随笔 1万+

VC Spyglass实战指南:从零开始掌握CDC约束配置与调试

本文详细介绍了如何使用VC Spyglass进行CDC约束配置与调试,从基础环境搭建到典型CDC问题调试实战,帮助开发者快速掌握跨时钟域验证技术。通过TCL脚本和SDC约束的深度解析,提升CDC验证效率,避免常见设计风险。

weixin_26757925的博客 298

FAT文件系统详解

微软FAT文件系统详解bytefilesectorclusterpartitionvolume。

surfaceyan的博客 1963

nnDetection实战:手把手教你用Python在自家电脑上跑通第一个肺结节检测模型

本文详细介绍了如何使用nnDetection框架在普通电脑上实现肺结节检测模型的搭建与运行。从环境配置、数据预处理到模型训练与推理,手把手教你完成医学图像检测的全流程,特别适合初学者入门医学AI领域。

weixin_32377497的博客 331

FAT32文件系统学习

FAT32文件系统

程序员的规则 4788

十、Teigha.Net示例的源代码下载链接,以及英文的chm说明文件和相关案例

目录官方案例demo下载Teigha.net 英文版手册下载Teigha.net Entity实体中文翻译Teigha4.0 解决闪烁问题demo下载Teigha4.0 收录demo案例类似CAD看图王软件无AutoCAD环境下操作显示CAD文件的功能源码,整个示例模块源码 官方案例demo下载 在之前找到的官方案例3_03版本中包含32位与64位dll 其中的chm的说明文件内容也不完全,后面有更为详细的英文版的chm; 示例项目中,主要包括一个winfrom程序与控制台程序,OdWriteExMgd

... 3521

FAT文件系统

FAT文件系统学习

KD9999的博客 2915

Azure AI-102 认证全攻略: (二十八) 设置 Azure AI 服务 API

在本文中,您学习了如何通过 Azure 门户设置和管理 Azure AI 服务,以及如何通过编程方式访问这些服务。在这篇文章中,我们将深入探讨如何设置 Azure AI 服务,特别是如何通过 Azure API 来进行编程访问,以实现自动化和集成。通过本篇文章的学习,您不仅能够顺利完成 Azure AI-102 认证中的 API 配置和集成内容,还能高效地管理和优化 Azure AI 服务,构建稳定、可靠的 AI 应用。在成功设置并测试了 API 后,接下来要管理和维护您的 Azure AI 服务。

高校图书馆高级系统架构师/研究馆员,推动高校AI从概念演示到可评审、可交付、可运维:路线图与立项评审、PoC交付、评测回归与上线运维(Baseline/Eval/Ops)。 1448

代谢组数据分析(三):代谢组降维分析

本文详细介绍了代谢组学中常用的降维分析方法,包括PCA、PLS-DA和OPLS-DA。PCA通过线性变换降低数据维度,便于数据可视化和异常值检测;PLS-DA是一种有监督的模式识别方法,适用于分类和预测;OPLS-DA通过正交分解避免过拟合,更准确地筛选差异代谢物。降维分析在揭示样本间差异和发现生物标志物方面具有重要意义

专注生信领域 3792

FAT12文件系统

FAT12文件系统 转载自 https://blog.youkuaiyun.com/begginghard/article/details/7284834 感谢 一、 FAT12 FAT12是DOS时代就开始使用的文件系统(File System),直到现在仍然在软盘上使用,FAT12软盘的被格式化后为:有两个磁头,每个磁头80个柱面(磁道),每个...

zhangji 4933

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

FAT16文件系统之FAT表浅谈(三)

FAT16文件系统的FAT表分析

一个专研技术的小蜜蜂的博客 8892

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

FAT32文件系统简明了解

导语 了解文件在硬盘中的存放方式有利于我们更加简便简介的了解计算机系统。今天简述FAT32。 FAT32文件系统结构 如图 动手实践 MBR 管理员启动winhex,选择tools->open disk即可打开磁盘。 首先映入眼帘的是DBR。它占据512字节,描述了卷的各种性质。 0x00~0x02:3字节,跳转指令。 0x03~0x0A:8字节,文件系统标志和版本号。 0x0B~0x0C:2字节,每扇区字节数 0x0D~0x0D:1字节,每簇扇区数 0x0E~0x0F:2字节,保留扇区数 0x1

bbszhenshuai的博客 857

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

FAT文件系统结构

FAT文件系统详解 FATFS是一个简单的文件系统,本质上说它是一个巨大的表-簇的链表。是目前最常使用的文件系统之一。 1、FATFS的分类

qq_40040716的博客 3582
上一篇: Linux的磁盘和文件系统
下一篇: 操作系统的启动与硬盘分区基本知识
Coder_Stephen
博客等级 码龄9年 16粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值