前几天朋友因电脑故障求助于我。
其系统是XPSP2,40G的硬盘,两个分区,一个NTFS(C盘),一个FAT32(D盘)。故障现象是开机时系统引导失败。系统报错:invalid partition table。
当时,猜到是硬盘分区表坏了,用手头的“三茗硬盘医生”,只为他解决了一半问题(系统能引导了,可以启动到WINDOWS,C盘所有文件完好无损,但D盘丢失)。进入系统后用卡巴斯基杀掉一只鸽子,再无其它病毒。但其卡巴斯基病毒库太陈旧(2005年11月的库),仍不放心。满盘搜索其出问题当天的所有文件,找到一个非常可疑的sexygirl.jpg.exe。收到我的U盘带回去研究研究!
朋友的本本与我的一样(IBM的),加上对我信任,才求我。没想到,我是个“半瓶子醋”!折腾半天,也没完全搞掂。朋友没说什么,我自己非常汗颜!为其丢失D盘问题,我曾在系统板发贴求助。一位朋友建议用Diskman试试。
于是,上网搜索,下载了Diskman。查毒——没有。
立即做了一张DOS启动盘,将Diskman.exe和Diskman.dat拷入其中。
次日,兴冲冲跑到朋友那里,大喊——你有救啦!
立即开机,以此软盘启动系统,运行diskman。经过一番折腾,取出软盘,按ctrl_alt_del,重启到WINDOWS——D盘找到了!其中全部文件完好无损!
问题是解决了。但是导致硬盘分区表损坏的元凶是不是那个sexygirl.jpg.exe?依然是个问题。
于是,将它拷到我的电脑上,用我的卡巴斯基查查看。结果,卡巴斯基报告——Trojan.Win32.KillDisk.x。从名字上看,破坏硬盘分区表的嫌犯可能就是它了。
先备份一下我的DPT,然后,运行这个木马。重启系统。
果然,系统不能引导,报错:invalid partition table!
有了为朋友解决问题的经历,自然可以轻易搞掂它。
来看看它到底干了些什么。点击diskman工具栏上的“工具”,再点击“重建分区表”,重建方式选择“交互式”。diskman开始搜索所有柱面中的DPT。找到隐含扇区的第一个DPT,看内容(图1)就知道是木马写入的。这马够阴险!居然在隐含扇区中写入了一个硬盘分区表(DPT),把硬盘分区搞乱。
再往下找,又找到一个DPT(图2),从内容看,是原来的C分区。接着找,在2063柱面,1磁头,1扇区找到了D盘(图3)。
至此,重演了朋友中招-数据恢复的全过程。将此DPT备份下来。再用事前备份的DPT恢复一下,以比对diskman交互式重建DPT的准确性。结果显示——完全正确!
最后,谈谈为什么选择“交互式”重建分区表。
“自动重建”,速度快,但有其局限性。这种重建方式只搜索“隐含扇区”。结果只搜到两个结果,一个是木马写入的,一个是原来正确的。此时,如果点击“保留”,diskman将不再往下搜索。这样,只能找到C盘。然后,根据正确的接续关系,后移一个柱面,作为D盘的“起始柱面”,D盘的起始磁头与起始扇区均选择“1”。这样重建的DPT也能工作,但是,你进入系统后,点击D盘,系统会告诉你——D盘未格式化!(这时,千万不要格式化D盘。一格,D盘中原来的数据就完蛋了!)。
而“交互式”重建则搜索所有扇区,搜到一个结果,马上报告用户,由用户判断是不是你要找的内容。交互式重建的缺点是——速度很慢。我这40G硬盘,有5000多个柱面,全部搜完,是要花一段时间的。
注1:这只木马不写注册表,也无其它文件释放。木马文件可直接删除。
严重的是——木马一旦运行过一次,下次系统启动时会引导失败,不能进入系统。
注2:发此帖后,曾经有人向我索取木马样本。鉴于此马导致的后果较为严重,恕不以任何方式向任何人提供此马样本。
______________
图1