WinHex在我们之前的文章中已经介绍过,是在Windows下运行的十六进制编辑软件,有完善的分区管理功能和文件管理功能,能自动分析分区链和文件簇链,对硬盘进行不同方式不同成度的备份、克隆整个硬盘,能够编辑任何一种文件类型的二进制内容(用十六进制显示),其磁盘编辑器可以编辑物理磁盘或者逻辑磁盘的任意扇区,是手工恢复数据的首选工具软件。

基础知识

硬盘寻址方式

硬盘的常用寻址方式有CHS寻址和LBA寻址,早期的硬盘容量非常小,硬盘的每条磁道都具有相同的扇区数,早期常采用CHS寻址(Cylinder柱面、Header磁头、Sector扇区),随着硬盘容量的增大,不再划分柱面和磁头号,这些数据都由硬盘自身保留,所有的物理扇区都按照特定规则进行线性编号,目前普遍采用LBA这种抽象简单的寻址方式。

硬盘分区结构

所有硬盘在使用之前都需要进行分区,硬盘分区是针对一个硬盘进行操作的,可以分为主分区、扩展分区、逻辑分区,主分区也叫引导分区,系统一般安装在这个分区,是引导电脑开机读取文件的一个磁盘分区,一个硬盘最多可以同时创建4个主分区。扩展分区是一个概念,实际是看不到而且无法直接使用的,一般将除了主分区外的剩余磁盘空间叫做扩展分区,扩展分区可以继续被分为多个逻辑分区,具体结构如下图所示。

磁盘按照分区结构不同,一般分为MBR、EBR和GPT,分区后硬盘的第1个扇区为MBR(Master Boot Record)扇区,占512b,该扇区在计算机引导过程中起着举足轻重的作用,包括硬盘主引导程序代码(占446b)、硬盘分区表(占64b)和引导区结束标志“55AA”(占2b)3个部分。MBR的64b分区表最多可存储4个分区信息,每一个分区信息占16b,其具体结构如下图所示,DBR是由硬盘MBR装载的程序段,分区引导扇区DBR中包含文件系统扇区总数等数据,对于数据恢复有较大帮助。

由于MBR支持最多创建4个分区在实际情况下往往是不够用的,因此就引入了扩展分区的概念,扩展分区严格地讲并不是一个实际意义的分区,它仅仅是一个指向下一个分区的指针,扩展分区的数据存储在一个类似MBR的EBR(Extended Boot Record)中,每个EBR占一个扇区(512b),EBR的第一个分区表用于描述一个逻辑分区,第二个分区表用于指向下一个EBR,其具体结构如下图所示。

GPT磁盘分区的结构如下图所示,其包含保护MBR、GPT头、分区表、分区区域、分区表备份、GPT头备份六部分,其中保护MBR位于GPT磁盘的第一个扇区,由磁盘签名、MBR磁盘分区表和结束标志组成。GPT头位于GPT磁盘的第二个扇区,会定义分区表的起始位置、结束位置、每个分区表项的大小和个数等信息。分区表位于GPT磁盘的2~33号扇区,能够容纳128个分区表,GPT分区区域通常起始于34号扇区,由EFI系统分区(ESP)、微软保留分区(MSR)、LDM元数据分区、LDM数据分区、OEM分区、主分区等多个部分组成。分区表备份是对分区表32个扇区的完整备份,GPT头备份位于GPT磁盘的最后一个扇区,但GPT头备份并不是GPT头的简单复制,两者结构虽然一样,但其中的参数却有所不同。

GPT相对于MBR的优势主要体现在其允许每个磁盘多达128个分区,支持高达18EB的卷大小,GPT允许将主磁盘分区表和备份磁盘分区表用于冗余,且性能相对MBR更加稳定。

利用WinHex恢复

上文把有关数据恢复的硬盘寻址方式、硬盘分区结构等基础理论内容进行了阐述,下面就结合以上理论利用WinHex这款十六进制编辑器来实现对删除的图片和分区来实现恢复的效果。

恢复图片

首先我们在系统H盘存放一个cat.jpg的图片文件,通过WinHex挂载该磁盘驱动器,如下图所示文件浏览窗口红色框中就是该cat.jpg文件,通过十六进制查看器,该文件存放的位置对应偏移地址为0058B000,其中jpg图片格式文件头对应的十六进制码为FFD8FF,如图中十六进制查看器的红色框中所示就是该cat.jpg文件头,后面的十六进制数就对应该cat.jpg文件。

按住Shift+Ctrl键彻底删除cat.jpg文件后,如下图所示在WinHex的文件浏览窗口已经看不到该cat.jpg文件,但是通过十六进制查看器在0058B000位置,仍然可以看到cat.jpg文件原本占据的位置数据没有变,这也证明了基础理论中删除的数据没有立刻被覆盖,只是文件索引标识为已删除,给后续数据恢复做好了准备。

WinHex在工具-磁盘工具-通过文件类型恢复中支持多种文件类型的数据恢复,如下图所示,仅图片类型就支持包括JPEG、PNG、GIF、TIFF等多种类型,此处选择恢复文件的输出位置,一定不要与已删除文件在一个盘符,防止已删除文件的存储位置被不小心覆盖,点击确定即可得到恢复文件,如下图。

恢复分区

通常情况下,EBR不会遭到破坏,或者被破坏的几率极低,因此实践中对MBR的修复比较常见,例如某硬盘的MBR由于病毒的破坏被删除了,针对分区的恢复,这里举个比较有代表性的例子,即针对分区表的恢复。
我们这里有一块测试磁盘如下图所示,提示异常分区未分配没有初始化,但是我们之前使用时这块磁盘有两块分区,存储的也都有数据,现在利用WinHex挂载起来看一看。

挂载之后在winhex的文件浏览窗口看到如下图所示该磁盘有I和J两个分区,但是该磁盘的分区表已经损坏,如图中红色框中,该分区表数据都变为0,这也是出现无法识别分区的主要原因。

下面就利用DBR分区数据来尝试恢复这两个分区,NTFS系统的DBR标志为EB 52 90在WinHex中搜索得到如下图结果其在第128扇区,dbr的28至2f保存的是文件系统扇区总数,通过数据解释器查看该分区扇区总数为409,599,这里使用当前扇区128加上409,599再加上1得到下一个分区的位于第409,728扇区。

跳转至第409,728扇区,该扇区头部发现DBR标志EB 52 90,验证了我们计算的扇区大小的正确性,如下图所示,查看该dbr的28至2f保存的是文件系统扇区总数,通过数据解释器查看该分区扇区总数为608,255,这里使用当前扇区409,728加上608,255再加上1得到结果1,017,984,第1,017,984扇区已经非常接近磁盘总扇区数1024000,通过WinHex查看后续也没有DBR了,则可验证该磁盘有两个分区。

后面利用上文找到的两个分区的起始扇区和分区包含的扇区总数来恢复MBR的分区表,分区1的起始扇区为128,分区1包含409,599个扇区,转换为十六进制起始扇区为80 00 00 00,扇区总数为FF 3F 06 00,分区2的起始扇区为409,728,分区2包含608,255个扇区,转换为十六进制起始扇区为80 40 06 00,扇区总数为FF 47 09 00,两个分区均为NTFS格式,对应标志为07,如图中红色框部分。

保存以上修改,重新挂载该磁盘后即可看到该磁盘两个分区恢复正常,分区中的文件也正常,如下图所示。

以上对数据恢复中涉及的基础知识,包括硬盘的寻址方式、分区结构以及WinHex的用法等进行了介绍,同时结合实际恢复删除的图片和被破坏的分区来进一步阐述理论的正确性,后续将展开对数据恢复的更多学习内容,大家一起学习交流。

转载声明:如果希望转载请于公众号(安全fun)后台联系,或者邮件至anquanfun@163.com,转载时请保留原作者(安全fun)及出处信息,转载文章禁止声明原创,更多合作也可邮件至anquanfun@163.com,搜索微信公众号:安全fun,扫码可关注。

免责声明:本公众号所涉及内容仅供安全研究与教学使用,如出现其他风险,后果自负。

winHex数据恢复(第一篇)相关推荐

  1. MySQL技术总结第一篇

    (答辩完成,接下来一段时间会抓紧学习,月底回国.) 拿两三篇总结MySQL的知识点,补上之前的坑.这里第一篇主要讲粗略讲一下MySQL体系结构和存储引擎,通过对MySQL大体的认识,连带补充一些关于I ...

  2. 聊聊后端程序员的知识体系-第一篇

    聊聊后端程序员的知识体系-第一篇 原文链接:https://www.fpthinker.com/backend_knowledge_architecture/knowledge.htmll 亲爱的读者 ...

  3. 第一篇 Nosql讲解之Redis,Memchche,MongoDb的区别

    第一篇 Nosql讲解之Redis,Memchche,MongoDb的区别 本篇文章主要介绍Nosql的一些东西,以及Nosql中比较火的三个数据库Redis.Memchache.MongoDb和他们 ...

  4. 第一篇WP:攻防世界MISC 功夫再高也怕菜刀)

    第一篇WP:攻防世界MISC 功夫再高也怕菜刀 题目 功夫再高也怕菜刀 题目描述 题目来源 附件 第一步 第二步 第三步 第四步 第五步 题目 功夫再高也怕菜刀 题目描述 菜狗决定用菜刀和菜鸡决一死战 ...

  5. 属于窄带噪声的是热噪声_时钟201系列: 非相位噪声的情况 (第一篇)

    欢迎来到Silicon Labs(亦称"芯科科技")的新系列博客文章"时钟201"的第一篇内容-非相位噪声的情况-第一部分.我们之前的系列博文"时钟1 ...

  6. linux的自定义input,Linux Input子系统之第一篇(input_dev/input_handle/input_handler)

    Input子系统是linux kernel中与部分外围器件驱动联系比较紧密的模块,常用于Sensor,TP(touch panel),power key等器件的驱动.这类模块有个共同特点:字符设备,且 ...

  7. 第一篇文章,做个纪念

    第一篇文章,做个纪念,这个blog好吗?拭目以待! 转载于:https://blog.51cto.com/197536/88241

  8. 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇

    本节书摘来自华章出版社<Ansible权威指南 >一书中的第1章,第1.1节,李松涛 魏 巍 甘 捷 著更多章节内容可以访问云栖社区"华章计算机"公众号查看. 第一篇 ...

  9. 研究生第一篇科研论文常犯问题总结

    ↑ 点击蓝字 关注视学算法 作者丨喻海良,中南大学教授,博士生导师 来源|http://blog.sciencenet.cn/blog-117889-1018759.html 极市导读 本文作者为中南 ...

  10. Webpack系列-第一篇基础杂记

    系列文章 Webpack系列-第一篇基础杂记 Webpack系列-第二篇插件机制杂记 Webpack系列-第三篇流程杂记 前言 公司的前端项目基本都是用Webpack来做工程化的,而Webpack虽然 ...

最新文章

  1. Neurala与CSDN宣布战略合作,将一站式AI平台BrainBuilder带给中国开发者
  2. Apache服务器多站点配置
  3. 基于MATLAB的Okumura-Hata模型的仿真
  4. ansible加密敏感数据
  5. python词云代码简单_Python 简单实现标签词云
  6. Acwing 309. 装饰围栏
  7. linux查询内存条个数,linux下查看内存条数及每根内存大小的实现方法(推荐)
  8. consul 日志配置_Go语言微服务架构实战:第十一节 启动Consul
  9. Java反射机制(Reflection)
  10. 在eclipse上搭建springBoot
  11. UVa 12206 (字符串哈希) Stammering Aliens
  12. Linux基础系列4(ls,cp命令详解)
  13. 二进制“==”: 没有找到接受“Point”类型的左操作数的运算符(或没有可接受的转换)
  14. 证券业大数据与人工智能发展现状与应用趋势
  15. three.js视频教程2022最新
  16. 【科研作图】软件推荐资源汇总PPT瑞思拜!
  17. ext4文件系统布局
  18. 电气器件系列二十二:调速电机
  19. WPF界面工具Telerik UI for WPF入门级教程 - 设置一个主题(二)
  20. 采众家之长 凯翔软件定义存储能够后来居上吗?

热门文章

  1. 中台详解(上)-什么是中台
  2. C# 多线程造成CPU占用率高解决办法
  3. 计算机网络实践项目(大学宿舍网络部署)
  4. ckfinder php 配置,PHP中配置Ckeditor+Ckfinder 完成图片上传
  5. VmWare中虚拟机桥接无线网卡使用静态ip
  6. vue 身份证格式校验
  7. 教你分割视频,用多个视频随机合并,添加音频
  8. 分数排名 leecode 学习笔记
  9. 什么是Base64 编码,Base64 编码有哪些优缺点?
  10. wordpress企业站模板