shift+delete删除文件,如何恢复shift+delete删除的文件?

      在FTA32文件系统中,用Shift+Delete删除根目录中文件或文件夹时,除把FAT中相关簇链清0,将文件目录项中将首字节改为E5外,还会目录项的中的起始始簇号的高二字节(偏移14、15两字节)改写为0。
       如果某个文件或文件夹的起始簇高二字节不是0,用Shift+Delete删除的是一个文件夹还可以查得到其起始簇号来手动改写目录项中的起始簇号,若删除的是一个文件,用软件扫描就会得到错误的起始簇号,从而导致该文件恢复错误。

        对于这个问题,很多人都做过试验,用了多种 数据恢复 软件,用删除恢复、格式化恢复等都试过,都恢复不了根目录中Shift+Delete删除的起始始簇号的高二字节不为0的正确文件。
       以上的问题,其实是关于首簇号高字节的恢复,思路还是有一些的。

       在讲思路之前,我们先说说首簇号低字节,首簇号低字节两个,最大无非就是0xFFFF,再大的话,就只能进位到高字节,如果每簇8扇区,那么,低字节所能表示的最大文件大小为0xffff * 8 = 65535 * 8 = 524280 扇区 = 256MB,这是低两个字节所能表示的最大文件大小。

        问题中提到FAT32中shift+delete删除文件时,首簇号的高两个字节清空,那么有三种恢复思路:
        1:高字节递增算法。在低字节的基础上,我们将高字节逐渐加1,每加一次就到对应的扇区去分析是否是对应文件的文件头。这种做法人的手工来做是不可能的,因为工作量太大,这需要写一个程序来自动完成,且程序要有足够的文件头来匹配。

        2:时间相近原则。两个创建时间相近的文件,它的首簇号的高两个字节理论上应该是相同或者是相近的,因为高字节每增加1,相当于文件就增大256MB,对于一些小的文件,时间创建相近,那么高字节应该相同或相似。这种思路可是用于手工分析,且是可行的方法。当然如果想提高分析的准确性,需要尽可能的对文件系统中所有的文件进行时间排序,这个就不是人手工能完成的,也是需要程序算法来实现。

       3:父目录取高原则。这个思路与思路2相似,但不同的是更加简单,就是将父目录首簇号的高字节取来作为文件的首簇号高字节,这里的关键就是目录下的文件容量不能太大,否则也是无效的,这种思路非常简单,在写程序的时候也是最容易实现的。

        我们目前已知的所有程序,似乎并没有采用这三种算法中的任何一种,且目前已知的所有数据恢复教程中,也只是只言片语。曾经在06年的敲诈者病毒爆发时,我们曾使用过思路3来编写过一个程序,当然也还加入了一些其它算法,因为敲诈者的破坏太严重,它是将所有文件的高字节一次清空,只有目录完好。

       所谓敲诈者,即删除的你的文件后,告知你给他打款即能恢复数据,呵呵,可笑的是有人打款后作者发来了finaldata。结果可想而知了。我们的看法是病毒作者本人应该也没有什么好的恢复思路,只是破坏,而且还不彻底,否则后来我们怎么可能恢复成功! 
       
       以上的方法只是一些恢复的思路,一般均需要手工操作,因此对于一般的用户,如你是shift+delete删除的数据,且恢复出来的数据不正确(当然首先你需要一些数据恢复软件,举例说winhex、R-Studio、Finaldata、Recovery My Fles等),那么你不妨来找我,也许你运气好,而我这点技术正好能解决你的问题。我的联系方式,QQ88252429 。
       这里还有一篇文章,是关于如何恢复分区丢失的(也就是ghost后分区丢失或者未知原因丢失的),写的非常的详细,如有需要请自行下载。
       http://www.intodata.org/read-htm-tid-209.html
     更多数据恢复的技术及软件,请到中国数据恢复联盟:   http://www.intodata.org

你可能感兴趣的:(算法,工作,qq,delete)