前段时间,发现电脑读硬盘异常,就不断去查找异常进程,结束了多个读硬盘数据较多的陌生进程,最后打开资源管理器,发现了大问题,自己电脑中的文件夹突然都变成了回收站。
打开后原本的文件都变成了回收站中的垃圾文件。清空回收站,再打开后,里面所有文件和文件夹都没有了。但是从文件属性中可以看到原来的数据还是在的。最后通过好压浏览到丢失文件,文件走在原来的地方,还发现每个文件夹里都多了一个名文desktop.ini的文件,尝试把它删除,删除后文件夹能够正常显示,但是属性变成了受操作系统保护,通过命令提示符把几个重要的文件夹恢复正常。
找到原来的文件后,却发现文件无法正常打开。无论是充满回忆的照片,辛辛苦苦写出来的代码,压缩包还是重要的文档无法幸免。还有在歌曲列表中歌曲都不存在,打开相应的文件夹,歌曲文件都存在。经过对比发现文件名尾,也就是小数点前多了个空格,导致文件名不同了,原有的文件路径都失效。
由于大部分文件夹包括子文件夹和文件都变成这样,一个一个修复工作量很大,根据病毒症状到网络上找解决方法,金山毒霸说可以解决这可问题,称电脑感染了一种新的木马病毒——“文档终结者2”,该类现象是由于“文档终结者2”感染电脑后,遍历电脑中的文件夹,将文件夹转变成为回收站,导致打开后直接显示回收站中的垃圾文件,并破坏文件夹中的非PE文件(如Word、Excel等)。可见无论怎样操作,电脑中的文件都无法正常使用。
装了个金山毒霸,结果金山毒霸只是杀了毒,把小部分文件夹修复了,但是被破坏的文件一个都没有修复。宝贵的数据就这样被毁灭了?没那么容易,肯定有方法的。尝试打开各个不同类型的文件,只有MP3文件,ZIP格式的压缩文件可以正常打开,文本文件可以打开,但存在乱码。
研究一下各类型的文本文档,得出了一个规律,所有的文本文档前几行乱码,剩下的正常。可以猜到病毒只是对文件做了一些少修改,具体算法有待进一步研究。
研究方法:找两个相同的的文件,一个完整没有被病毒损坏,一个被病毒破坏的,以二进制的形式打开,研究被破坏的文件被修改部分的每一位的变化。
准备工作:
1.二进制编辑器,推荐两个,winhex和 UltraEdit-32,winhex小巧灵活,打开文件速度快,修改文件很方便;而UltraEdit-32功能齐全,既是文本编辑器,十六进制编辑器,支持各种编程语言的编辑,同时有各种各样的功能,其中有一个很好用的功能就是文件对比功能,可以很快的发现两个文件之间相同和不相同的部分。
2.与被破坏的文件一样的文件,这个容易,找一个在网上下载到的又被损坏文件,然后再去网上下载一个,这样就得到两个来源有相同文件,但有一个是被病毒损坏的。
现在开始分析文件,用UltraEdit-32打开准备好的两个文件,然后使用UltraEdit-32的文件对比功能,打开之后发现两个文件的数据只有前0X64位是不相同的,其它部分都相同,也就是说病毒至修改了文件前0X64位的数据。
至于病毒是通过什么算法修改了文件,我们接下来就是分析两个文件不同部分的差异,还有这个病毒修改文件的算法比较简单,熟悉十六进制数的人分析这些数据,很快就可以发现,不同部分是按位取反的。
为了验证这个研究结果的正确性,我随便找了一个文件,用winhex打开,以十六进制方式编辑,把前文件的0X64位数据按位取反修改,最后发现文件修复好了,至此,我们已经找到了这个病毒破坏我们的文件的算法。
最后根据这个算法写了个修复程序,宝贵数据又回来