微软工具DISKEDIT.EXE是一个直接读写原始磁盘数据的低级工具。你应该能够加载包含该文件目录条目的群集,然后将违规的’?‘字符改为无害的东西,然后将其写回磁盘。
据我所知,微软的diskedit工具(不是同名的Norton Utilities工具,它只适用于FAT卷)最后一次出现在Windows 2000 SP4中。但是有一个链接可以找到它这里。
要找到正确的群集,你可以下载试用版的 DiskExplorer for NTFS 。
你可以从File->Drive…开始打开包含这个坏文件的驱动器。选择Goto->>Root Directory来获得一个目录视图。通过使用MFT#链接导航到包含坏文件的目录。当你到达那里时,窗口的顶部会显示类似 “MFT# x12345 DIR: 'dirname’, ……等等等等…….从集群x9302AE开始,……等等等等 ”
现在移到Microsoft diskedit。首先执行File-\Open… 并指定卷名C:(如果文件在C:驱动器上)。把卷宗文件名留空。将起始群集号输入到Diskedit的Read->NTFS Clusters…->Starting Cluster(以十六进制数字输入)。
现在用方向键向下滚动到坏文件名。它是以unicode为单位的,所以你要找的是类似 “W.h.e.r.e. .H.a.v.e. .A.l.l. .t.h.e. .C.o.w.b.o.y.s. .G.o.n.e.?…o.g.g."。将光标定位在坏的 "3F "字符上,然后输入一些安全的字符,比如5F(’_‘)。选择Write-/>It将其写回磁盘。
还有一个地方要打(不知道是需要一个还是两个)。现在,回到DiskExplorer中,点击坏文件的Mft#。你会看到一个屏幕,左边有一个树状的东西,上面写着 "结构"。点击树上的 "属性"。它会显示出一个属性列表,其中一个属性会是类似30元……$FILE_NAME的东西。所以,30元有文件名。点击Structures树中30美元节点下的Body节点。选择菜单View-/>as Hex。几行下来,你应该又能看到文件名W.h.e.r.e. .H.a.v.e…等等。在屏幕的左侧,你会看到扇区栏,它显示了你正在查看的磁盘扇区。
回到磁盘编辑界面。执行Read->Sectors…然后从DiskExplorer中输入扇区号。像之前一样,向下滚动,用上面的字符替换 "3F "字符。选择Write-/>It将其写入磁盘。
我做了这一切,工具告诉我我已经改变了字符,但是explorer没有。这个目录一定是被缓存在某个地方了。重启后,更改就会显现出来。