硬盘基地 门户 数据恢复 U盘/Flash 查看内容

数据恢复之U盘SD卡文件误删恢复

2014-2-11 16:58| 发布者: 大海11| 查看: 6261| 评论: 2|来自: csdn

摘要: U盘文件误删除了,想通过数据恢复软件修复,发现恢复回来的文件是损坏的。用winhex打开一看基本都是0,顿时对数据恢复软件很失望!想自己来恢复,同时一探究竟!说 明:操作系统:win7 旗舰版 64位U 盘:16G所有 ...
U盘文件误删除了,想通过数据恢复软件修复,发现恢复回来的文件是损坏的。用winhex打开一看基本都是0,顿时对数据恢复软件很失望!想自己来恢复,同时一探究竟!

说   明:
操作系统:win7 旗舰版 64位
U     盘:16G
所有地址均指物理地址
注意winhex软件与物理地址的相对性

1.0 文件的位置确定
1.1 引导扇区(DBR)
 数据恢复之U盘SD卡文件误删恢复
图1
这是我的U盘引导扇区截图,有用的数据均做颜色标记。

黑色(0x0B 0x0C)  :0x0200 (每个扇区512字节)

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

红色(0x0E 0x0F)  :0x08BE2238,保留扇区大小)

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

紫色(0x24~27    :0x00003BA115265FAT表所占用扇区数)

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

 
DBR具体参数说明:http://www.inhdd.com/1603448.html

数据恢复之U盘SD卡文件误删恢复

图2
我们需要确定数据区的起始地址 = 橙色 + 绿色 + 黄色
绿色和黄色的地址 = (0x08BE + 0x3BA1 * 2 )* 512 = 0x1000000
 
橙色  = 0x0400000 
 
数据区的起始地址 = 0x01400000 
 
这个地址也是根目录所在的位置
1.2 根目录文件查找
为了便于分析,这里专门在根目录下建了一个123456.txt的文件,跳转到0x01400000位置

 数据恢复之U盘SD卡文件误删恢复
图3
红色是文件名称
 
绿色是文件的存储簇号(0x00016AC6)
 
文件的位置存储内容如下图:

 数据恢复之U盘SD卡文件误删恢复
图4
1.3FAT表
图片中红色方框即为123456.txt文件存储的位置。
FAT表的起始地址为:0x000117C00
123456.txt存储地址为起始地址+偏移地址
0x000117C00  + 0x00016AC6 *4 = 0x0172718
 数据恢复之U盘SD卡文件误删恢复
图5
2.0 删除文件
现在人为删除123456.txt文件,然后来对比根目录和FAT表的变化。
首先看一下根目录:
 数据恢复之U盘SD卡文件误删恢复
图6
和图3对比会发现,红色和绿色都改变了,变化的数据标为蓝色。我们知道绿色部分为文件存储的起始簇,这个数据变化了,那么恢复文件的可能性就比较难了。我们再去看看FAT表做了哪些修改。
 数据恢复之U盘SD卡文件误删恢复
图7
和图5对比,发现原来的结束簇标志被清除了,变为0.
最后我们去看看文件数据是否也删除了!
(0x00016AC6-0x02) * 16 * 512 = 0x2D588000
公式说明:
0x00016AC6,簇的位置
0x2,簇从3开始有效
16 ,每个簇16个扇区
512 每个扇区512字节
这个地址是基于数据区的起始地址0x01400000 
所以123456.txt实际地址 = 0x01400000 +0x2D588000  = 0x02E588000
 数据恢复之U盘SD卡文件误删恢复
图8
3.0总结
根据分析发现和实际测试,发现电脑的删除操作清除了FAT表的簇号和目录的起始簇地址高16位,但是文件的实际数据还是存储在U盘当中,当然删除后再次写入除外。所以当起始簇有在高16位的文件,软件恢复的可能性不大,当起始簇只有低16位的,恢复起来比较容易。

开心

鄙视
1

鼓掌

愤怒

可怜

刚表态过的朋友 (1 人)

发表评论

最新评论

引用 supergmy 2018-7-25 17:03
请问MP4文件恢复回来,不能播放,是什么原因。。
引用 liu002 2018-6-11 11:10
谢谢分享吧 支持一下

查看全部评论(2)

返回顶部