U盘SD卡文件误删恢复探讨

今天把U盘的一个文件误删了,想通过修复软件修复,发现修复回来的文件是空的。用winhex打开一看基本都是0,顿时对修复软件很失望!想自己来恢复,同时一探究竟!

说   明:

操作系统:win7 旗舰版 64位

U     盘:16G

所有地址均指物理地址

注意winhex软件与物理地址的相对性

1.0 文件的位置确定

1.1 引导扇区(DBR)

图1

这是我的U盘引导扇区截图,有用的数据均做颜色标记。

黑色(0x1B 0x1C)  :0x0200 (每个扇区512字节)

绿色(0x1D)       :0x10 (一个簇包含16个扇区,既512 * 16 =8096)

红色(0x1E 0x1F)  :0x08BE(2238,保留扇区大小)

粉色(0x20~23)    :0x01DD7FFF(31293439,扇区总数)

紫色(0x24~27)    :0x00003BA1(15265,FAT表所占用扇区数)

黄色(0x2c~2F)    :0x00000002(2,根目录所在第一个簇的簇号)

DBR具体介绍参考前一篇博文:http://blog.csdn.net/mjx91282041/article/details/8904705

图2

我们需要确定数据区的起始地址 = 橙色 + 绿色 + 黄色

绿色和黄色的地址 = (0x08BE + 0x3BA1 * 2 )* 512 = 0x1000000

橙色  = 0x0400000

数据区的起始地址 = 0x01400000

这个地址也是根目录所在的位置

1.2 根目录文件查找

为了便于分析,这里专门在根目录下建了一个123456.txt的文件,跳转到0x01400000位置

图3

红色是文件名称

绿色是文件的存储簇号(0x00016AC6)

文件的位置存储内容如下图:

图4

1.3FAT表

图片中红色方框即为123456.txt文件存储的位置。

FAT表的起始地址为:0x000117C00

123456.txt存储地址为起始地址+偏移地址

0x000117C00  + 0x00016AC6 *4 = 0x0172718

图5

2.0 删除文件

现在人为删除123456.txt文件,然后来对比根目录和FAT表的变化。

首先看一下根目录:

图6

和图3对比会发现,红色和绿色都改变了,变化的数据标为蓝色。我们知道绿色部分为文件存储的起始簇,这个数据变化了,那么恢复文件的可能性就比较难了。我们再去看看FAT表做了哪些修改。

图7

和图5对比,发现原来的结束簇标志被清除了,变为0.

最后我们去看看文件数据是否也删除了!

(0x00016AC6-0x02) * 16 * 512 = 0x2D588000

公式说明:

0x00016AC6,簇的位置

0x2,簇从3开始有效

16 ,每个簇16个扇区

512 每个扇区512字节

这个地址是基于数据区的起始地址0x01400000

所以123456.txt实际地址 = 0x01400000 +0x2D588000  = 0x02E588000

图8

3.0总结

根据分析发现和实际测试,发现电脑的删除操作清除了FAT表的簇号和目录的起始簇地址高16位,但是文件的实际数据还是存储在U盘当中,当然删除后再次写入除外。所以当起始簇有在高16位的文件,软件恢复的可能性不大,当起始簇只有低16位的,恢复起来比较容易。

U盘SD卡文件误删恢复探讨相关推荐

  1. 误删sd卡文件怎么恢复

    误删sd卡文件怎么恢复?在我们日常的数据读写中,SD卡已经成为了一个必不可少的存储介质.不论是在手机.相机.行车记录仪等各种电子设备中都能看到它的踪影.但在使用SD卡中,不可避免地会出现误删文件的情况 ...

  2. sd卡文件莫名其妙消失怎么恢复呢?

    在日常生活中,相机可以帮助我们拍摄一些难忘的照片,记录着我们生活的起起落落.经常存储一些重要的数据,如照片和视频之类的.但有时候存储卡中的照片可能因为不知道的原因而莫名其妙消失了.碰到这样的事,那些s ...

  3. html文件损坏怎么恢复,SD卡文件损坏怎么办?数据恢复教程来了

    SD卡文件损坏怎么办?SD卡是一种性价比相对而言比较高的存储设备,现在常常被应用于手机.相机和行车记录仪等设备中,但在使用过程中也会遇到SD卡损坏的情况,且损坏的原因有很多种,下面就一起来了解下如何修 ...

  4. SD卡文件无法删除怎么办?看完你就明白了

    SD卡文件无法删除怎么办?SD卡常应用于手机.数码相机等设备中,但在使用的过程中也会遇到数据无法删除的情况,这是什么原因造成的呢?下面就给大家分享一下详细的内容. 通常而言,当SD卡的文件数据出现了无 ...

  5. 连接手机、PC后,SD卡文件不显示怎么解决?

    文章来源:https://www.reneelab.com.cn/sd-card-files-not-showing.html 目录 一.SD卡上文件不显示的原因 二.如何恢复SD卡中丢失的数据 三. ...

  6. android 视频开发sd卡,Android开发之SD卡文件操作分析

    本文实例讲述了Android开发之SD卡文件操作.分享给大家供大家参考,具体如下: 前面的文章中写过直接操作手机自带存储器的程序,这次就接着上次文章协议下对sd卡的文件操作.与自带存储不同的是使用sd ...

  7. 一键加速索尼相机SD卡文件的复制操作,文件操作批处理教程

    前言 索尼的文件系统很迷,微单是延续DC的文件管理,所以也就造成了DCIM文件夹下就是专门存些照片,视频又在另一个文件夹而普通人的话,又是用不上XML文件的,每次复制都很麻烦,像是之前我用佳能全画幅时 ...

  8. 3-SII--Android的SD卡文件读写

    零.前言 [1]读写SD卡需要运行时权限. [2]如果对运行时权限不清楚的童鞋,可以看一下我的封装:TI--安卓运行时权限完美封装 一.使用:SD卡文件读写 FileHelper fileHelper ...

  9. android 对象存储sd卡,Android网络与数据存储——File存储(实现SD卡文件浏览器)...

    Java提供了一套完整的IO流体系,包括FileInputStream.FileOutPutStream等,通过这些IO流可以非常方便的访问磁盘上的文件内容.Android同样支持以这种方式来访问手机 ...

最新文章

  1. Vim 下使用 Slimv(类似Slime) 轻松调试 Common Lisp
  2. Vue.js-Day03-PM【组件通信(安装Vetur插件、父子组件通信、子父组件通信)、项目发送与启动(项目发给别人、启动别人的项目)】
  3. ActiveMQ的queue以及topic两种消息处理机制分析
  4. python僵尸进程和孤儿进程_python学习笔记——孤儿进程和僵尸进程
  5. 论文发表在什么期刊上_医学论文发表期刊论文范文
  6. js动态创建元素和删除
  7. Github图片无法打开的问题解决【2020.07.20更新】
  8. JavaWeb——swagger使用
  9. Vim 实用技术,第 2 部分: 常用插件(转)
  10. matlab函数grid,Matlab基本函数-grid、box函数
  11. Linux sublime设置中文,Sublime Text 3 设置为Ubuntu 14.04默认编辑器并支持中文
  12. [维修案例] 艾美特电风扇(FS4085R)不能调风量维修
  13. AI 科研入坑指南—中国人民大学赵鑫
  14. android 9.0打开文件管理器,安卓 通过intent调用系统文件管理器打开指定路径目录...
  15. Python实现文件则自动分类
  16. 黑鲨会升级鸿蒙吗,黑鲨游戏手机2系统更新好吗?
  17. opensips3.0之新工具opensips-cli
  18. ionic3实现app启动时进行网络监测功能
  19. vSphere中Storage vMotion的流程详解
  20. 【A021】Axure制作气泡闪动图

热门文章

  1. 【阅读笔记】《人月神话》思想提炼
  2. 录音 linux 监听,如何在Linux下设置录音笔时间
  3. android---后台代发短信
  4. 求职计算机科学,计算机科学*求职信
  5. 2021美亚杯资格赛
  6. IDEA 快捷键占用问题
  7. Win10系统下“Ctrl+空格键”热键冲突的解决方法
  8. Python核心编程朱红庆_朱红庆作品_朱红庆简介_朱红庆作品大全-当当网
  9. 《庶女:明兰传》知否知否应是绿肥红瘦 epub格式下载
  10. anki 2.0 wordQuery 插件安装失败解决方法