NTFS 手工文件恢复

简介:利用winhex手工恢复

一、winhex简介

    winhex 是一个以16 进制编辑器为核心,检查和修复各种文件、恢复删除文件、硬盘损坏造成的数据丢失等的软件(挺牛逼)


二、NTFS

    是windows使用的文件系统

     1.特点

       (1) 安全性较高 ,NTFS文件系统有日志容错功能,所以安全性比FAT文件系统高。

       (2)NTFS文件系统可以给文件设置访问权限

       (3) 支持文件压缩和文件加密

       (4)可以磁盘配额

       (5) NTFS文件系统支持大分区(在MBR磁盘最大支持2T,在GPT磁盘支持的分区更大)

       (6)NTFS文件系统支持大文件(大于4G)

    2.说明

       关于NTFS文件系统的结构等其他知识详见

NTFS 文件系统介绍 - 简书

三、准备工作

        在进行恢复之前咱们创建一个虚拟磁盘VHD在,在里面进行恢复,其好处是不会对系统造成损害,且在$MFT中文件记录少,方便查找

    1.创建vhd

        (1)右击“此电脑”点击管理


        (2)点击磁盘管理

        (3)右击“磁盘管理”,点击创建VHD

    (4)选择路径和大小(按自身决定)


        这底部会有进度提醒


(5)初始化磁盘



        (6)分配磁盘,这里总共就2G全部分配

            新建卷






(7)分配完成


四、手工恢复

    这里展示两种常驻属性和非常驻属性恢复。

   (1) 常驻属性:直接在MFT项中记录属性体

                        优点:访问速度快

                        缺点:只能记录少量的数据

    (2)非常驻属性:在MFT之外的区域记录属性体

                        优点:用簇流记录文件存储的数据区域,可以记录很大的数据

                        缺点:访问速度较慢

    1.常驻属性恢复

       (1)在新建的vhd中创建一个文件,并写入较少内容

        (2)打开winhex,加入磁盘



可以看到刚刚创建的文件

       (3)删除



      (4)重新载入磁盘


    (5)因为winhex以16进制为核心,咱们先把文件名字转为16进制,在网页上搜索字符转16进制的在线工具即可,我给出一个网址

十六进制编码 - 在线六角编码器

https://www.convertstring.com/zh_CN/EncodeDecode/HexEncode

    (6)输入文件名以及定界符,得到结果


        (7)回到winhex中,搜索16进制数据,注意这里要从$MFT开始搜索,MFT主文件表,每个文件的信息都在这个MFT中有记录



    (8)可得到文件在MFT中的索引名

        (9)复制这16进制值,并搜索

得到123.txt的MFT表,


·其中80属性里保存了文件的内容

·00代表的常驻属性

·相对于80属性偏移10-13的地方,即蓝色框的地方是文件的大小 17H

·相对于80属性14-15的地方,即黄色框的地方是文件的起始偏移量18H

这块的偏移量位置可以用工具确定,按住alt+g,选择80位置从当前位置偏移10即可找到文件大小的位置。


(10)恢复文件

       得到文件的大小和起始簇的偏移量,直接跳转到起始位置

    相对于80偏移的18的地方是6A

            右击6A,点击选择起始位置


  在以64位起始位置偏移17

 得到00位,并选择尾部


右击编辑——复制选块——致新文件



至此恢复成功



 2.非常驻属性恢复

        这里就省略一些不必要的步骤

    (1)创建一个文件,并删除




    (2)重新载入winhex


    (3)字符转为16进制


    (4)搜索MFT表



    (5)复制16进制值


    (6)搜索存储此文件的MFT表



(7)查看信息


·其中80属性里保存了文件的内容

·01代表的非常驻属性

·这里的黄框是簇流信息,表示着文件的内容存在的位置

    21 10 46 08 


    (8)恢复

      这里要倒着看起始簇,为0846h,转换为10进制为


        或者直接用winhex自带的数据解释器


    ctrl+g调转簇区



        选择起始位置

           尾部位置=起始簇+簇流大小=2118+16(16进制的10转为10进制为16)=2134





右击编辑——复制选块——致新文件


恢复成功

如有错误的地方还请各位多多指教,谢谢

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。

推荐阅读更多精彩内容