这周第一次软件安全实验课题为“磁盘格式与数据恢复”,对于磁盘格式比较复杂,内容概念都比较多,且自己理解还不算透彻,等以后再试着归纳。这里就先从应用层角度通过对一个已删除文件的恢复实验来进行说明。

这里暂时只考虑文件系统为FAT32和NTFS的格式,下面也将分别对这两种文件系统的文件恢复进行演示。

FAT32

FAT32逻辑磁盘基本信息描述

用winhex打开一个FAT32分区格式的逻辑盘F盘,查看该逻辑盘的根目录区。

逻辑盘BPB

其中0200(蓝框)表示一个扇区512个字节,08(红框)表示每簇8个扇区,即每簇4kb。(查阅资料可得,FAT32分区当分区大小在260MB-8GB时,簇大小为4KB,符合事实)这里由F盘大小5GB及在FAT表中每簇占4个字节的记录可计算得每个FAT(FAT2为FAT1的备份)大小为5MB,与实际相同。

在F盘根目录下创建一个大概60kb的文本文档。

创建文件

在winhex找到该文件位置,查看目录项的信息。

文件目录项

由红框内目录项信息可分别知道首簇号高四位和第四位进而求得首簇号为10号,以及文件大小。经计算可得文件大小为58.9kb近似为文件大小。又因为每簇4kb,故共需15簇。

fat1(正常)

从第10号开始,形成一个簇链,直到FFFFFF0F结束。

FAT32数据恢复过程

将刚才的test.txt文件永久删除。

删除文件

找到文件目录项,修改对应第一位信息,并由目录项簇号信息及文件大小计算出首簇号为10,簇数为15。

修改第一位

分别将FAT1和FAT2的信息进行修改,从10号开始填补簇链到15个簇被填满,其中最后一个以FFFFFF0F结尾。

fat1(恢复)

保存后发现文件已恢复,内容完整。

恢复成功

至此,FAT32文件恢复已完成。

NTFS

NTFS数据恢复过程

同样,先在NTFS格式的E盘创建一个文本文档,再使用shift+delete进行删除。

创建文件.png

打开$MFT元文件。

查找文件名test的位置(MFT文件名是unicode形式),找到对应的MFT。

查找.png

文件MFT.png

16H为00H说明该文件被删除,系统根据这个标志来决定建立新文件时是否覆盖这个MFT而创建自己的MFT。

再向下找到80H处,往后八个字节为01,则找到相对80H处30H的EE0D00即0DEE为文件大小,经计算为3.48kb基本符合。再向后偏移10H,31表示往后一个字节01H为簇数1,再后三个字节638002即28063H为首簇号,换算成十进制为163939。

文件属性.png

选中$MFT元文件,根据刚才得到的簇号转到文件数据存储扇区。

转到扇区1.png

转到扇区2.png

将起始位置设为起始点,根据文件大小0DEE算出数据结尾处转到当前位置偏移,再设为终止点,即可选中所有数据。

选中数据区域.png

转到终止点.png

选中数据选择复制导入到新文件,我们选择恢复到E盘(其实最好不应选择恢复到原文件盘,但因无其他数据,经试验此次无影响),即可完成文件恢复。

生成文件.png

使用记事本打开发现数据已恢复无误。

恢复成功.png

至此,NTFS文件删除后恢复已完成。

以上便是两种文件系统的数据恢复方法,细节之处及磁盘格式相关内容之后再整理。

参考资料:

(NTFS部分)

如何使用WinHex恢复删除的文件(1)

如何使用WinHex恢复删除的文件(2)

winhex数据恢复linux,使用winhex对已删除文件进行恢复相关推荐

  1. 对android手机已删除文件的恢复

    对android手机已删除文件的恢复 LOST.DIR文件夹中意外丢失文件的恢复方法 玩了一段时间Android系统了,大家都一定知道,LOST.DIR目录是Android系统下一个意外丢失的文件收集 ...

  2. 超级硬盘数据恢复软件v2.7.2.6_超级硬盘数据恢复软件的U盘存储卡删除文件的恢复方式...

    我觉得大家不论是学生党还是职业人,现在基本是人手一个备份式存储U盘吧.但是我们日常使用总会遇到不小心的时候,或许会造成U盘的文件被我们不小心误删除,或者想要存储更大的内容,不得不删除现在的一些内容,想 ...

  3. linux恢复fat文件系统,从FAT文件系统恢复已删除文件的数据

    介绍 尽管FAT32或FAT16是非常古老的文件系统,这反映出与其他文件系统替代产品相比,它们的性能较差,但它们仍被许多电子设备广泛使用.通常,这些设备包括USB memory 棒,数码相机,便携式摄 ...

  4. 手机内存卡数据恢复丢失删除文件如何恢复

    手机内存卡数据恢复丢失删除文件如何恢复 如果你忘记开启云端备份或者说你不知道如何开启自动云备份,那么还是有其他办法可以帮你找回丢失的数据的,网上有很多数据恢复的软件大家都可以下载下来尝试下,但是现在网 ...

  5. 恢复已删除文件的 10 种安卓数据恢复工具

    由于我们现在在智能手机上存储了大量重要文件,因此了解数据恢复工具变得很重要.您永远不会知道什么时候需要使用 安卓 数据恢复工具. 由于不乏 Windows 数据恢复工具,因此从崩溃的计算机中恢复文件很 ...

  6. Linux 中如何复制和删除文件夹中的所有文件?

    Linux 中如何复制和删除文件夹中的所有文件? 1.复制文件 目标文件目录必须存在 (1) 直接复制 cp /hone/user/temp/test.c /home/user/ (2) 复制并重命名 ...

  7. linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...

    Linux基础教程linux系统中的批量删除文件与空文件删除的命令介绍 Linux资料下面删除文件或者目录命令rm(remove): Linux培训功能说明:删除文件或目录. 语 法:rm [-dfi ...

  8. 2021-09-27 网安实验-文件恢复-DiskGenius恢复已删除文件

    第一题:基于DiskGenius恢复已删除文件 解压disk1.rar文件之后看到一个disk1.img文件,看起来像是一个磁盘镜像文件,我们使用DiskGenius打开看看是否可以直接浏览文件. 待 ...

  9. 学习Linux二(创建、删除文件和文件夹命令)

    学习Linux二(创建.删除文件和文件夹命令) 今天学习了几个命令,是创建.删除文件和文件夹的,在linux里,文件夹是目录,下面说下我学习的命令. 创建文件夹[mkdir] 一.mkdir命令使用权 ...

最新文章

  1. SQL 数据完整性 基础知识
  2. python集合类型的四种操作符_深入解析Python中的集合类型操作符
  3. java 可用内存_总可用内存java
  4. rpg人物制作软件_新机制和随机性的完美结合!新RPG《元素梦境》参上
  5. Shiro缓存使用Redis、Ehcache、自带的MpCache实现的三种方式实例
  6. uniapp自定义条件编译-定制化产品
  7. logs is not in the form of topic-partition or topic-partition.uniqueId-delete
  8. python 获取天气_Python实现从百度API获取天气的方法
  9. 《数据库系统概念》19-并发控制
  10. 【保研记录】预推免面试可能遇到的问题(偏计算机)
  11. 串口软件与uPs测试,智能化UPS的软件设计及串口通信实现
  12. python端口扫描
  13. 毕业论文参考文献格式设置(以GB/T 7714-2015为例)
  14. 计算机组成原理_选择
  15. linux权限750什么意思,chmod 777是什么意思?为您解释chmod 777及切勿使用chmod 777的原因...
  16. 【企业】零和博弈思维模式构建,互利共赢
  17. 3ds Max 2014安装SupperMap 插件
  18. Leetcode 387. 字符串中的第一个唯一字符
  19. LOFTER72D94FF8E0603DBE38066DB525285F1C
  20. P1291 SHOI2002 百事世界杯之旅

热门文章

  1. 对抗性训练(Adversarial training)
  2. 产品设计培训个人总结
  3. BatchFormer:有效提升数据稀缺场景的模型泛化能力|CVPR2022
  4. 计算机卸载目录不让它显示,电脑卸载软件时弹出“该软件安装目录为磁盘根目录”提示怎么办...
  5. 对于不同尺寸型号的液晶屏接口选择?
  6. 下雪了,想起童年的冬天
  7. 关于TypeScript 问号点 a?.b 的用法解释
  8. ubuntu 15.04 怎么安装搜狗输入法
  9. object的部分属性和方法 + 逗号操作符 + label语句 + with + switch + 参数 + typeof和instanceof检测类型 -- 大一下第十五周
  10. VMware装centos7开机黑屏死机问题