FAT32系统硬盘的数据恢复实例
软件:win hex(16进制的编辑器)
恢复内容:在FAT32中恢复一张图片
1.首先我们格式化一个分区为空,让分区的系统选为FAT32系统格式化。如下:

psb.jpg

psb (1).jpg

系统变成FAT32的文件系统了。。。
2.存入G盘一张图片,再把这张图片永久删除。
操作如下图:

psb (2).jpg

psb (3).jpg

3.我们用win hex打开磁盘来找丢失的图片,G盘是第5个分区,我们用win hex选择第5个分区。
如下图:

psb (4).jpg

4.接下来我们用,win hex自带的模板来分析DBR中的BPB参数,从BPB中找出:DBR保留扇区数、每FAT扇区数、FAT表的个数(一般值2)。根据这几个数值计算出FDT的位置,也就是文件目录表。
公式:DBR保留扇区数+FAT表的个数*每FAT扇区数

psb (5).jpg

psb (6).jpg

以图中可以看出:
DBR的保留扇区数:798
FAT的个数:2
FAT的扇区数:15985
FDT的位置=798+215985=32768

psb (7).jpg


然后把32768转换成16进制数为8000H。
8000H就是FDT的相对于DBR的位置,
向下跳8000H个扇区,就是FDT的位置了
文件目录表。
操作如下图:

psb (8).jpg


点OK

psb (9).jpg


这就是FDT的位置了
5.在FDT中分析那个被删除的图片的位置,然后还原数据。
如图:

psb (10).jpg


E5表示已经删除的文件。然后分析E5两行文件记录是长文件名还是短文件名,
后面没有0F代表这条记录是短文件记录。选择win hex自带的短文件名模板,找出:簇号、文件的大小。
如下图分析:

psb (11).jpg


分析结果:
簇号:3
文件大小:52577
然后算出DATA的位置,利用公式:(簇号-2)
每簇的扇区数=DATA
得出结果:(3-2)*16=16=DATA
提醒:一般每个扇区数为16,不行的话去BPB中分析去。
得出这个扇区的相对位置,然后向下跳16个扇区,16转换成16进制为10H所以向下跳10H。如下图

psb (12).jpg

点击OK

psb (13).jpg

得到DATA的数据扇区后。向下偏移单位为字节,偏移52577(分析的文件的大小)
转换为16进制为CD61H,向下偏移CD61H个字节。

psb (14).jpg

psb (15).jpg

然后从偏移的起始位置到偏移的位置的中间的数据就是那个被删除的图片的数据了,把他保存到桌面上就行了

psb (16).jpg

psb (17).jpg

psb (18).jpg

保存了桌面了

psb (19).jpg

检验结果:

psb (20).jpg

psb (21).jpg

恢复完成了。。。
------------------------超级怪蜀黍-UncleFreak的日志----------------------
-----------------------QQ:2206691630----------------------
---------------------博客地址:blog.z88j.com-----------------

【原创】FAT32系统硬盘的数据恢复实例,这篇文章也是从自己QQ空间的,转移过来的的更多相关文章

  1. 好用的APS系统是什么样的?这篇文章来告诉你!

    APS系统除了为生产部门提供生产制造的依据,还关系采购计划.安全库存.订单交付等各环节,管理起来十分复杂.一款好用的APS系统,不仅能全面集成生产相关的业务流程,确保生产计划顺畅进行,还能大大提升生产 ...

  2. (免量产,免格式化)手动将PE安装到移动硬盘/U盘或无系统硬盘!

    在一台没有装系统的电脑上,只要把XP系统启动文件,及引导菜单文件(ntldr,boot.ini,”bootfont.bin这个可有可无,主要作用是显示中文菜单”)和GRUB引导文件和PE系统文件复制到 ...

  3. 怎样给win7系统硬盘分区

    怎样给win7系统硬盘分区 步骤 一.鼠标右击“计算机” 二.选择“管理”标签 三.打开“计算机管理”窗口 四.选择“磁盘“>>”存储管理“,打开”磁盘管理“页面 如图: 五.右键单击选择 ...

  4. DELL EqualLogic PS存储硬盘故障数据恢复成功案例分享

    DELL EqualLogic PS4000采用虚拟ISCSI SAN阵列,为远程或分支办公室.部门和中小企业存储部署带来企业级功能.智能化.自动化和可靠性.以简化的管理.快速的部署及合理的价格满足了 ...

  5. logstash快速入门 (这篇文章很不错 ) | 两种方式往logstash传输数据实例:Apache 日志(从文件获取)、Syslog方式

    原文地址:http://www.2cto.com/os/201411/352015.html 原文地址:http://logstash.net/docs/1.4.2/tutorials/getting ...

  6. 海康威视频监控设备Web查看系统(二):服务器篇

    声明:本系列文章只提供交流与学习使用.文章中所有涉及到海康威视设备的SDK均可在海康威视官方网站下载得到.文章中所有除官方SDK意外的代码均可随意使用,任何涉及到海康威视公司利益的非正常使用由使用者自 ...

  7. Android native进程间通信实例-binder篇之——HAL层访问JAVA层的服务

    有一天在群里聊天的时候,有人提出一个问题,怎样才能做到HAL层访问JAVA层的接口?刚好我不会,所以做了一点研究. 之前的文章末尾部分说过了service call 可以用来调试系统的binder服务 ...

  8. 织梦CMS(dedecms)栏目属性及系统封面模板、列表模板、文章模板区别和路径设置解答

    问题一:(织梦"栏目管理"的"常规选项"中3个栏目属性分析?) 织梦CMS的栏目属性分成三种, -->最终列表栏目 -->频道封面 -->外部 ...

  9. redis 实例2 构建文章投票网站后端

    redis 实例2 构建文章投票网站后端   1.限制条件 一.如果网站获得200张支持票,那么这篇文章被设置成有趣的文章 二.如果网站发布的文章中有一定数量被认定为有趣的文章,那么这些文章需要被设置 ...

随机推荐

  1. C、C++、Java异或运算交换变量变量值的区别

    今天看到一位大神的博客,深受感触.决定也发一篇博客,证明一下我还活着. 于是我翻看以前学习时做的一些笔记,整理了一下,得到了一个关于异或运算交换变量变量值的笔记. 首先来看下面三组表达式,看起来他们都 ...

  2. objective-c基础教程

    command+shift+c foundation框架包含的头文件 /system/library/frameworkks/foundation.framework/headers/

  3. 用汇编语言研究C语言的全局变量、局部变量、参数、返回值放在哪里

    前提知识 c0s调用main函数的地址: 11ah main函数的连接地址: 01fah 一.全局变量与局部变量 测试程序 int a1,a2,a3; void f(void); void g(voi ...

  4. JSP HTML区别

    1.最简单的区别就是,HTML能直接打开,jsp只能发布到Tomact等服务器上才能打开2.定义上HTML页面是静态页面可以直接运行,JSP页面是动态页它运行时需要转换成servlet.3.他们的表头 ...

  5. BZOJ 1037 生日聚会

    Description 今天是hidadz小朋友的生日,她邀请了许多朋友来参加她的生日party. hidadz带着朋友们来到花园中,打算坐成一排玩游戏.为了游戏不至于无聊,就座的方案应满足如下条件: ...

  6. 栈和队列的面试题Java实现

    栈和队列: 面试的时候,栈和队列经常会成对出现来考察.本文包含栈和队列的如下考试内容: (1)栈的创建 (2)队列的创建 (3)两个栈实现一个队列 (4)两个队列实现一个栈 (5)设计含最小函数min ...

  7. WordPress BulletProof Security插件多个HTML注入漏洞

    漏洞名称: WordPress BulletProof Security插件多个HTML注入漏洞 CNNVD编号: CNNVD-201308-023 发布时间: 2013-08-06 更新时间: 20 ...

  8. ♫【JS】offsetParent

    This property will return null on Webkit if the element is hidden (the style.display of this element ...

  9. Qt入门(16)——组装窗口部件

    这个例子显示了创建几个窗口部件并用信号和槽把它们连接起来,和如何处理重新定义大小事件. #include <qapplication.h> #include <qpushbutton ...

  10. Seasar2框架:AOP

    Seasar2是由日本人开发的一个框架.它通过自己定义的规约,很大程度上地减少了设定代码.但是由于这个原因,导致了框架学习初期会有比较大的跨越. AOP例子: Greeting.java packag ...